ASP.Net  »  Guide  »  Guida ASP.NET 2.0 

Caching nei controlli ASP.NET



Cache, tradotto letteralmente, è un termine che indica un nascondiglio o un deposito segreto, in informatica sta ad indicare un contenitore (un'area di memoria o una cartella temporanea) in cui copiare dati per accedervi più rapidamente.

Un sistema di cache è particolarmente utile quando abbiamo a che fare con un accesso dispendioso ai dati in termini di risorse come ad esempio una richiesta ad un database.

Facciamo un semplice esempio. Spesso accade che si acceda più volte ad una base di dati per richiedere le stesse informazioni, la stessa tabella, spendendo banda e tempo di calcolo ogni volta. Memorizzando invece la tabella in una memoria locale (la cache), possiamo fare un solo accesso al database ed usare i dati memorizzati per tutte le altre volte. La cache viene aggiornata solo quando i dati richiesti non corrispondono più a quelli memorizzati.

La cache del controllo Data Source, quindi, impedisce un aggiornamento continuo di dati, se questi non è necessario, riducendo al minimo indispensabile gli accessi al database. I controlli SqlDataSource ed AccessDataSource, che interagiscono rispettivamente con basi di dati Sql Server e Access, supportano il caching dei dati.

Realizziamo un esempio in cui, con un piccolo intervento sul codice, implementiamo la cache di cui abbiamo parlato.

Apriamo quindi un nuovo progetto e costruiamo una GridView che riporti i dati memorizzati nella tabella authors del database PUBS. Abbiamo già visto come si fa, per cui procediamo. Abilitiamo la sola visualizzazione per semplificare l'esempio.

Il codice prodotto dovrebbe essere simile al seguente (salvo formattazione) :

Listato 34. DESCRIZIONE

<form id="form1" runat="server">
<div>

<asp:GridView
 ID="GridView1" runat="server"
 DataSourceID="SqlDataSource1">
</asp:GridView>

<asp:SqlDataSource
 ID="SqlDataSource1" runat="server"
 ConnectionString="<%$ ConnectionStrings:PUBSConnectionString %>"
 SelectCommand="SELECT * FROM [authors]"
 
 EnableCaching="True"
 CacheDuration="30"
>
</asp:SqlDataSource>

</div>
</form>

Gli attributi in rosso indicano che abbiamo abilitato caching per una durata di 30 secondi.

Per testare la nostra applicazione dobbiamo visualizzare la tabella, operare una modifica ai dati e fare l'aggiornamento sul browser. Se il caching funziona, il browser non aggiornerà i dati finché non passeranno 30 secondi.

Innanzitutto ci dobbiamo preparare a modificare i dati dall'esterno della nostra applicazione. Per fare questo, nel VWD, dal menu "Visualizza>Esplora database", abilitiamo la visualizzazione delle risorse di database. Nell'impostazione standard del VWD, si apre una finestra che si sovrappone a Esplora Soluzioni.

Se in "Connessione dati" non è già presente creiamo la connessione al database PUBS.MDF cliccando con il tasto destro su "Connessione dati e selezionando "Aggiungi connessione". Poi seguiamo la solita procedura per connettersi al database PUBS.MDF.

Alla fine dovremmo otteniamo una visualizzazione di questo tipo:

Figura 1. Visualizzazione di Esplofa Database

Visualizzazione di Esplofa Database

A questo punto, apriamo la cartella "Tablle" e clicchiamo col pulsante destro su "authors". Nel menu che appare, clicchiamo su "Mostra dati tabella"

Appare un'area di lavoro con i dati della la tabella "authors". Questa maschera ci permette di modificare i dati nella tabella.

Figura 2. Visualizzare i dati della tabella

Visualizzare i dati della tabella

Siamo ora pronti per effettuare il nostro test: lanciamo l'applicazione con F5 sulla Default.aspx. Operiamo una modifica ai dati nell'area di lavoro e verifichiamo che aggiornando il browser, la modifica viene riportata solo dopo 30 secondi.

L'esempio realizzato nel corso di questa lezione può essere scaricato da qui.

Ultimi articoli ASP.Net

LINQ e la trappola della 'deferred execution'

Una "trappola" in cui si può incappare utilizzando il risultato di...

C#, le Custom Type Conversion

Conversioni personalizzate tra classi, creare metodi particolari per...

Introduzione a Entity Framework

Il framework ORM messo a disposizione da .NET

Repeater: visualizzare un feed RSS

Utilizzare il controllo XMLDataSource e sfruttare il metodo XPath()...

Repeater, il server control "semplice"

Cos'è e come funziona il controllo Repeater

Altri articoli

Guide ASP.Net

Guida ASP.NET MVC Best Practices

Un workflow dettagliato e ricco di suggerimenti pratici per...

Guida ASP.NET Starter Kit

Un modo semplice per imparare ad utilizzare le tecnologie Microsoft...

Guida Visual Studio 2010

L'ambiente di sviluppo di riferimento per sviluppare applicazioni su...

Altre guide

Newsletter @Microsoft Dev

Ogni giovedì, direttamente nella tua e-mail: articoli, guide, tutorial e script ASP, ASP.Net, SQL server e IIS.

Iscriviti alla newsletter

Altre newsletter

Corsi in aula

Corso Progettazione database

11 Maggio 2012 a Milano
Disponibilità: 6 Posti

Amministratore di Reti Windows Server 2008

11 Giugno 2012 a Milano
Disponibilità: 5 Posti

Nessun corso previsto