Application, cache, variabili globali

martedì 11 maggio 2004 - 16.44

pynthu Profilo | Junior Member

Ciao
necessito chiarezza su questo punto:
Cache, Application, variabili globali nel global.asax: oggetti a confronto! Vantaggi e svantaggi, differenze, presrtazioni: suggerimenti...

Grazie

Ciao

Brainkiller Profilo | Guru

Ciao Pynthu,
hai fatto una domanda che richiederebbe una risposta di alcune pagine.
Tanto di quello che chiedi è già contenuto nel Framework SDK che ti da' delle informazioni vitali per capire come funziona un po' il tutto.
Per esperienza ti posso dire che di variabili globali nel global.asax non ne ho mai usate, utilizzo invece delle key all'interno del file web.config che posso poi recuperare da tutte le pagine della mia applicazione.
L'oggetto/classe Cache serve per "cachare" pagine intere della tua applicazione o anche solo parti (moduli) o oggetti. Più naturalmente vai in dettaglio cioè cachando parti di pagina e più diventa complessa la gestione. In questo caso si può parlare di prestazioni perchè ci sono grossi vantaggi. Se tu costruisci un modulo e lo inserisci in una pagina e lo metti in cache per 300 secondi questo visualizzerà le informazioni senza richiedere ogni volta l'accesso al DB. Vien da sè che se hai su quella pagina un traffico di 10 utenti al secondo risparmi decine di interrogazioni al database. il risultato è che la tua applicazione diventa molto scalabile e supporterà molti più utenti contemporaneamente.

Fammi sapere.
Se se più preciso e riduci il campo d'azione posso suggerirti risorse o percorsi d'apprendimento.
Nel campo del caching infatti c'è tantissimo materiale ed è impossibile spiegarti tutto in un post del forum :)

ciao
david

pynthu Profilo | Junior Member

Ciao
Innanzitutto grazie pel la disponibibilità e il supporto!!!
Ho già passato in rassegna un po' di materiale e mi sto convincendo sempre + che conviene utilizzare la Cache, soprattutto per la flessibilità e le prestazioni che offre.

Grazie

Ciao

Giulz Profilo | Newbie

Domanda: Ma l'oggetto cache ha un tempo di vita pari all' Application, o muore con la sessione?
Thanks

pynthu Profilo | Junior Member

La Cache, per quanto riguarda il contesto, è legata all'applicazione
piuttosto che alla sessione, a meno che non si lega la chiave dell'oggetto in Cache all'ID di sessione!!
Per quanto riguarda la durata, questa dipende dalla politica di scadenza che vuoi adottare.
Se inserisci un'oggetto in cache semplicemente con:
Cache(key) = value
l'oggetto rimarrà in cache finchè l'applicazione è "running", a meno che non venga richiesta memoria dal processo.
Invece con gli overload del metodo Cache.Insert(....) , è possibile specificare l' 'expiration' Date dell'oggetto in cache e persino la priorità dell'oggetto (in caso di necessità di memoria, vengono rimossi dalla Cache prima gli oggetti con priorità + bassa).

Spero di esserti stato di aiuto.

Ciao

Giulz Profilo | Newbie

..ho capito, grazie pynthu
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5