Le applicazioni basate sull'utilizzo di database richiedono dei controlli di routine periodici sullo stato e sulla correttezza dei dati elaborati, al fine di evitare errori e generare risultati non validi. La classe
SqlChangeMonitor fornisce il
monitoraggio delle modifiche per tutti i database SQL Server di Microsoft, lavorando da connettore tra l'oggetto
SqlDependency di ADO.NET e lo spazio dei nomi
System.Runtime.Caching, che consente l'impiego di funzionalità di memorizzazione nella cache di output se si utilizza il framework .NET versione 4.
L'uso di
SqlChangeMonitor, in simbiosi con la classe
MemoryCache, può offrire notevoli vantaggi nelle operazioni di controllo e manutenzione della base di dati. A causa della
mancanza di una chiara documentazione in merito all'utilizzo di queste due classi,
Rick Bassham ha proposto un
articolo in cui spiega, nei dettagli, come adoperare i due strumenti e verificare quale comportamento deve intraprendere la propria applicazione.
Il codice presente nell'articolo è, in realtà, molto semplice e consiste in poche righe di istruzioni SQL per abilitare il
SQL Server Service Broker allo scopo di ottenere una modalità di notifica nel caso in cui ci sia un cambiamento nei dati, oltre alla scrittura della funzione
IsInMaintenanceMode() che non fa altro se non effettuare un ciclo di controllo continuo, e salvare un valore predefinito per valutare se l'applicazione è entrata (o dovrebbe entrare) o meno in modalità di manutenzione.