Ieri nel pomeriggio mi dedico di testare in modo più adeguato questa grande novità di Asp.net 2.0 e di sql server 2005. Ammettoche avevo affrontato l'argomento con leggerezza parecchi mesi fa quando mi era capitata tra le mani una versione decente di Yukon. Ma com'è il Sql dependecies? Per quelle poche persone che non lo sapessero, è la possibilità di creare dipendenze a sql server dalla cache di asp.net. Se da un qualsiasi strato della nostra applicazione modifichiamo il contenuto di una tabella, possiamo invalidare la cache di un oggetto o di un'intera pagina web.
Prima approccio negativo: mi accorgo che qualsiasi tentativo con XP pro dove avevo iniziato i test, va a vuoto. Non so il perché, e sinceramente non mi ero mai chiesto se questa cosa funzionasse solo su win 2003 e non su xp (su 2000 non ho provato).
Ok, passo a 2003. Primi test. Ancora nulla. Allora nasce in me la convinzione che non è periodo visti anche le mie ultime bloggate. Il mio codice non è nulla di complesso:
<%@ Page Language="C#" %> <%@ OutputCache Duration="600" VaryByParam="None" SqlDependency="CommandNotification" %> <asp:GridView id="GridView1" runat="server" DataSourceID="SqlDataSource1" /> <asp:SqlDataSource id="SqlDataSource1" runat="server" ConnectionString="Data Source=.\SQLEXPRESS; AttachDbFilename=|DataDirectory|\prova.mdf; Integrated Security=True;User Instance=True" SelectCommand="SELECT * FROM tabella" />
Scritto cacchiate? Non so. Provo anche da codice... nulla. Prima dell'esasperazione inizio a documentarmi in rete. "Forse sono io che non ho capito nulla", penso. Trovo subito questo blog di Marco Bellinaso. Allora mi accorgo che la fantomatica novità che doveva cambiare il nostro modo di fare cache, non è tutto rosa e fiori come avevo immaginato (così io avevo capito). Limitazioni:
- Non è possibile utilizzare * per definire tutti i campi (si devono riscrivere tutti i campi interessati).
- Si deve inserire il nome della tabella completo.
- Non funziona con query che contengono "SUM", "AVG" e così via.
- Se in una stored procedure utilizziamo "set nocount on".
- ...
Non proseguo perché sarebbe una ripetizione del blog di Marco. Non so se anche la versione finale avrà queste limitazioni. Ma per ora vedo ancora l'uso di una cache personalizzata per i dati ancora la scelta migliore, tutte queste affermazioni dettate dalla mia limitata visione.
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
- Un po' di benchmark tra Linq, Entity Framework e Nhibernate, il 12 ottobre 2008 alle 14:46
- UrlRewriting con trabocchetti vari, l'11 dicembre 2007 alle 21:00
- Windows Forms - DataGridView e validazione, il 23 settembre 2007 alle 20:08
- ControlParameter e masterpage... bug?, il 23 dicembre 2006 alle 15:58
- Se Visual Studio 2005 non accetta più la tastiera, il 16 dicembre 2006 alle 20:45
- Service Pack 1 di Visual Studio 2005, il 16 dicembre 2006 alle 20:35