2013-02-01 12 views
5

spesso usiamo sessione, cache e profilo nel progetto webform di asp.net. spesso archiviamo dati in sessione, cache e profilo nel progetto webform di asp.net ma mi piacerebbe sapere quando dobbiamo archiviare i dati in sessione o quando dovremmo archiviare nella cache e nel profilo. qual è lo scopo della cache o del profilo. questo due anche sessione specifica di tempo di vita o applicazione specifica.qual è la differenza tra sessione, cache e profilo in asp.net

supponiamo che se memorizzo dei dati nella cache o nel profilo dalla sessione 1, posso accedere a tali dati da session2 o meno. guidami semplicemente con l'esempio & quando dovremmo memorizzare i dati in sessione, cache e profilo. grazie

+0

hai visto questo? Http: //forums.asp.net/t/983735.aspx –

risposta

14

Si utilizza cache in genere quando si desidera migliorare le prestazioni del sito: ridurre le chiamate di database, l'accesso ai file su file system, chiamando i servizi esterni, ecc

Scenario 1: Si supponga v'è un programma che ha una pagina che elenca tutti prodotti memorizzati nel database. Gli utenti hanno bisogno nella funzionalità di filtraggio dell'elenco dei prodotti (ad esempio su ebay o amazon). Inoltre, è noto che l'elenco di prodotti e funzionalità del prodotto sta cambiando raramente rispetto alla frequenza dell'utilizzo della pagina dell'elenco dei prodotti.

Solution 1: Qui è possibile utilizzare cache per ridurre le chiamate al database. È possibile impostare l'elenco prodotti e le funzionalità del prodotto su cache per eseguire il filtraggio in memoria ed evitare chiamate di database ridondanti. Cache deve essere invalidato ogni volta che l'elenco dei prodotti o le funzionalità cambiano. Questa soluzione dovrebbe essere OK fino a quando la gestione del consumo di memoria è meno costosa del guadagno in termini di prestazioni.

Come buona risorsa, suggerisco di leggere l'articolo MSDN ASP.NET Caching: Techniques and Best Practices.


In profile in genere salvare i dati, che è specifico per utente concreto e dovrebbero essere disponibili in ogni momento utente si sistema.

Scenario 2: Si consideri la stessa applicazione di Scenario 1 ma ora è necessario fornire agli utenti la possibilità di salvare le proprie preferenze di filtro (tipo di elenco di filtri preferiti).

Solution 2: È possibile creare un tipo di classe dello stato del filtro e memorizzarlo nell'utente profile. Di conseguenza gli utenti non saranno disturbati nella specifica ancora e ancora parametri di filtro e queste preferenze sarebbero disponibili ogni utente tempo log in.


Session viene utilizzato per memorizzare informazioni specifiche dell'utente che potrebbe essere accessibile da tutti i web la prossima volta che l'utente effettua il login.

Scenario 3: Si presume che ci siano applicazioni di e-commerce e marketing che vogliono vedere ciò che sta accadendo sul sito in tempo reale, ovvero vedere quali pagine sono state visitate da alcuni utenti mentre erano connessi. Considerare questo scenario come un'istantanea dell'attività degli utenti selezionata.

Solution 3: Qui è possibile utilizzare session per registrare quali URL sono stati visitati dagli utenti e quindi generare report per gli addetti al marketing.

Per quanto riguarda la gestione dello stato, è inoltre possibile fare riferimento a un altro articolo MSDN ASP.NET State Management Overview.


Another good answer che evidenzia la differenza tra oggetti che gestiscono stato dell'applicazione asp.net.


Spero che questo ti abbia aiutato un po '.

+0

profilo è sessione specifica ... se non poi come possiamo accedere a un profilo dati da un'altra sessione. puoi guidarlo con un codice di esempio. – Thomas

+1

@Thomas Profile è un dato specifico dell'utente che può essere mantenuto per non essere perso tra le sessioni. Il provider del profilo predefinito memorizza i dati del profilo nel database. Dai un'occhiata a http://stackoverflow.com/questions/426609/how-to-assign-profile-values. Questa domanda ha esempi di codice. –

Problemi correlati