Caching

There are 10 entries for the tag Caching

ASP.NET Caching - System.Web.Caching.CacheDependency

ASP.NET ci da la possibilità di creare le nostre CacheDependecy, facendo derivare la nostra classe dalla CacheDependecy. Grazie a questa classe abbiamo possiblità di creare una dipendenza anche per un web service da noi creato. Il processo è alquanto semplice, bisogna creare una classe che deriva dalla CacheDependecy e far partire un processo asincrono che controllerà se le dipendenze sono cambiate. Se queste cambiano, chiameremo il metodo CacheDependency.NotifyDependencyChange() in automatico la classe CacheDependecy aggiornerà le proprietà HasChanged e UtcLastModified. Le tecniche più usate per implementare il controllo delle risorse sono 3: Timer: un timer che effettua un poll sulle risorse...

ASP.NET Caching - Cache notification SQL Server 2005 e SQL Server 2008

SQL Server 2005 e SQL Server 2008 usano una soluzione di notifica molto simile fra loro e integrata nel database con un sistema di messaggistica chiamato Service Broker. Service Broker si occupa di gestire la coda dei messaggi di notifica di un database. .NET offre un modello integrato con ADO.NET in modo tale da istruire SQL Server per mandare una notifica per qualsiasi operazione che modifica il risultato di una query da noi registrata. ASP.NET offre un modello che si integra perfettamente con il precedente e ci permette di invalidare gli oggetti in cache automaticamente. Per questo esempio, creiamo un nuovo database (TestDB) con...

ASP.NET Caching - Dipendenze

ASP.NET supporta la cache dependencies; questa feature permette di relazionare un oggetto che abbiamo in cache con un'altra risorsa, in modo tale che, quando questa risorsa cambia, l'oggetto in cache verrà rimosso automaticamente. Esistono tre tipi di dipendenza: Con un'altro oggetto in cache Con un file o una directory Query su database Per creare una dipendenza nella cache, bisognerà creare un oggetto CacheDependency ed usarlo quando inseriremo un oggetto in cache. Per esempio, il codice seguente, creerà una dipendenza con un file XML. Se il file verrà cambiato, cancellato o sovrascritto,...

ASP.NET Caching - Data Source Controls

SqlDataSource, ObjectDataSource e XmlDataSource supportano nativamente il caching. Usare il caching con questi controlli è altamente consigliato, perchè ad ogni postback la sorgente dati viene richiesta. In più i dati vengono richiesti per ogni controllo in bound, quindi se avremo 3 controlli in bound, ad ogni refresh, partiranno 3 query. In questo caso mettendo in cache questi dati si ridurranno drasticamente i tempi di caricamento. Questi controlli offrono un insieme di proprietà utili per attivare comodamente la cache: EnableCaching: true per attivare il caching. CacheExpirationPolicy: può essere di due tipi Absolute o Sliding (guardare i post...

ASP.NET Caching - Data caching

Il Data caching è il sistema di caching più flessibile, ma anche quello dove bisogna scrivere più codice per implementarlo. Il concetto alla base del Data caching è molto semplice: inserire in una speciale collezione di oggetti (Cache), tutti quegli oggetti che per esser creati utilizzano un certo quantitativo di risorse. Questa collection è simile alla collection Application, comunque esistono un paio di differenze: Thread-Safe: a differenza dell'Application non avremo bisogno di attivare un sistema di lock/unlock sulla collection Cache quando andremo a rimuovere/aggiungere oggetti, pur essendo anche questa a scope globale. ...

ASP.NET Caching - Web.config

In tutti i precedenti post, per attivare il caching sulla pagina, è stato inserita la direttiva: <%@ OutputCache %> Finchè si parla di esempi o finchè si lavora su una singola pagina possiamo inserire quest'opzione. Ma se dovessimo lavorare su dozzine di pagine e poi magari modificarle, ciò comporterebbe un lavoro estenuante. ASP.NET, tramite la feature chiamata cache profiles, ci da la possibilità di applicare gli stessi settaggi ad un gruppo di pagine. Per usare questa caratteristica definiremo i settaggi della cache in un web.config file, assoceremo un nome a questi settaggi e applicheremo i settaggi alle pagine da tenere in cache: ...

ASP.NET Caching - Fragment e Post Caching

Spesso tornerà utile non copiare in cache l'intera pagina ma una parte di questa. Per ottenere questo risultato abbiamo due tecniche: Fragment caching: Prendiamo i dati che vogliamo copiare in cache e li spostiamo all'interno di uno user control creato appositamente; copiamo in cache solo lo user control creato. Post-cache substitution: Identifichiamo il contenuto dinamico che non vogliamo copiare in cache e cambiamo il contenuto con il controllo Substitution. Il Fragment caching è il più semplice dei due. Comunque bisogna basarsi sulla quantità dei dati da tenere in cache, per...

ASP.NET Caching - Output Caching

Tramite l'Output Caching, quando una pagina viene richiesta per la seconda volta, non verrà ricreata, il page life cycle non partirà e nessuna parte del codice verrà eseguita; invece verrà presa la copia in cache e verrà mandata al client. Non avremo bisogno di preoccuparci delle altre risorse statiche che sono contenute in una pagina ASP.NET (come le immagini). IIS automaticamente creare una copia in cache di questi files; e lo fa meglio della cache di ASP.NET. Creiamo una pagina ASP.NET di questo tipo: <form id="form1" runat="server"> <div> <asp:Label...

ASP.NET Caching - Introduzione, parte 2

ASP.NET da ha disposizione due tipi fondamentali di caching che le applicazioni possono/devono usare in quanto complementari: Output caching: Il tipo più semplice.  Registra la copia della pagina HTML che viene mandata al client. Il client successivo che richiederà la pagina riceverà la copia in memoria. Data caching: Questo tipo di cache sarà implementato nel nostro codice. Registreremo nella cache importanti informazioni le quali richiedono...

ASP.NET Caching - Introduzione, parte 1

A volte ci troviamo con applicazioni mal strutturate che iniziano a soffrire, sin da subito o con l'andare del tempo, sotto l'aspetto prestazionale e di scalabilità. Ciò si traduce in applicazioni così lente che perderanno alcuni secondi, se non minuti, prima d'esser completamente renderizzate dal nostro browser. Solitamente ciò capita perchè nel nostro applicativo ci sono dei colli di bottiglia difficili da evitare. La bellezza del caching, a differenza di tante altre tecniche, è l'alto livello di performance e scalabilità. Le Performance miglioreranno perchè il tempo impiegato per la richiesta delle informazioni sarà drasticamente diminuito. La Scalabilità è migliorata perchè lavoreremo attorno quei colli di...