Ultime notizie
Home » Programmazione » .Net Framework » Cache con dipendenza da SQL Server 2005 e ASP.NET 2.0

Cache con dipendenza da SQL Server 2005 e ASP.NET 2.0

SQL Server 2005 offre un supporto nativo alla dipendenza su database di oggetti salvati in Cache, una delle novità offerte dall’infrastruttura di cache di ASP.NET 2.0.

Questa possibilità consente di sfruttare gli HttpListener di ASP.NET, così che sia SQL Server ad inviare le notifiche sui cambi nei risultati della query, anzichè essere ASP.NET a farne una ad intervalli regolari per verificare che i dati siano cambiati.

Tra l’altro questo consente di limitare di molto la fase di configurazione della dipendenza, che si limita ad abilitare il supporto del Service Broker sul database e dare l’accesso all’utente, il tutto eseguendo questi comandi:

ALTER DATABASE mioDatabase SET ENABLE_BROKER
GRANT SUBSCRIBE QUERY NOTIFICATIONS TO mioNome

Per tenere in cache il risultato di una query fino a che la stessa non avrà modificato i propri dati è sufficiente associare il SqlCommand utilizzato ad una nuova istanza di tipo SqlCacheDependency, così che il risultato venga monitorato e l’oggetto in cache venga poi invalidato e rimosso in automatico.

C#

using (SqlConnection conn = new SqlConnection(miaStringaConnessione))
{
// query da eseguire
SqlCommand cmd = new SqlCommand("SELECT campo1, campo2 FROM miaTabella", conn);
SqlDataAdapter da = new SqlDataAdapter();
da.SelectCommand = command;
// definizione della dipendenza
SqlCacheDependecy dep = new SqlCacheDependency(cmd);
// caricamento dei dati
DataTable mioDataTable = new DataTable("nomeDataTable");
da.Fill(mioDataTable);
// aggiunta in cache
Cache.Insert("nome", nomeDataTable, dep);
}

Fino alla modifica della tabella mia Tabella , i dati risultati dalla query rimarranno nella cache e pertanto l’elemento non verrà rimosso.



About Luigi Melisi

Analista Programmatore Senior, Team Leader in svariati progetti, con esperienza decennale in analisi, progettazione e sviluppo di software gestionale desktop e web, di E-Commerce e sistemi di Content Management System.In questi anni ho utilizzato in prevalenza tecnologie Microsoft (Visual C#, ASP.NET, SQL Server, Visual Studio, Windows Mobile, ecc.) e programmazione orientata agli oggetti, ma ho maturato esperienza anche in altre tecnologie come Java e PHP.Attualmente mi occupo di consulenza informatica, di sviluppo software gestionale personalizzato, realizzazione di Siti Web, di sistemi di Content Management System. ed E-Commerce su misura del cliente.

Check Also

Come ricavare l’ID univoco di un Windows Phone

Se durante lo sviluppo di un’applicazione ti si presenta la necessità di capirecome ricavare l’ID …

Lascia un commento

%d blogger hanno fatto clic su Mi Piace per questo: