Nessun risultato. Prova con un altro termine.
Guide
Notizie
Software
Tutorial

Caching nei controlli ASP.NET

Come risparmiare risorse con il caching dei controlli SqlDataSource ed AccessDataSource
Come risparmiare risorse con il caching dei controlli SqlDataSource ed AccessDataSource
Link copiato negli appunti

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.

Ti consigliamo anche