Visualizza la memorizzazione nella cache dello stato per l'ottimizzazione delle prestazioni di ASP.NET

ASP.NET View State è una potente funzionalità di ASP.NET che fornisce un meccanismo di gestione dello stato lato client. Aiuta a preservare la pagina e controllare i valori tra viaggi di andata e ritorno completi per le richieste dei clienti. Ciò offre una capacità di programmazione completa dello stato su un protocollo senza stato come HTTP.

ASP.NET View State viene memorizzato in un campo nascosto nella pagina come una stringa Base64 codificata, come parte di ogni risposta inviata al client, e viene anche restituito al server dal client come parte di un postback.

<input id = "__VIEWSTATE"
       type = "hidden"
       name = "__VIEWSTATE"
       value = "/wEPDwUJNzg0MDMxMDA1D2QWAmYPZBYCZg9kFgQCAQ9kFgICBQ9kFgJmD2QWAgIBD
              xYCHhNQcm2aW91c0NvbnRyb2xNb2RlCymIAU1pY3Jvc29mdC5TaGFyZVBvaW50Lld
              lYkNvbnRyb2xzLlNQQ29udHJbE1vZDA1XzRlMjJfODM3Y19kOWQ1ZTc2YmY1M2IPD
              2…=="/>

Sebbene molto utile, ASP.NET View State viene fornito con alcuni problemi che è necessario comprendere e risolvere. Sono discussi di seguito.

  1. ASP.NET View State è spesso pesante: Quando la tua applicazione ASP.NET ha molti controlli e widget ricchi e pesanti nelle sue pagine, molti dati viaggiano avanti e indietro tra il tuo browser e il server web. Questo carico utile pesante comporta un degrado delle prestazioni dell'applicazione ASP.NET e un costo elevato della larghezza di banda.
  2. ASP.NET View State è un rischio per la sicurezza: Può anche rappresentare un rischio per la sicurezza quando si inviano dati riservati come parte dello stato di visualizzazione al client. Questi dati sono vulnerabili agli attacchi e possono essere temperati da un utente malintenzionato che rappresenta una seria minaccia alla sicurezza. Puoi crittografare il ASP.NET View State dati, ma questo avrà di nuovo un costo in termini di prestazioni.

NCache per ASP.NET View State

Un modo per risolvere ASP.NET View State problemi è memorizzando l'effettivo ASP.NET View State sul server Web e inviando un token (o ID) univoco al suo posto al browser in modo che il browser possa inviare questo token al server Web la prossima volta. Il server web utilizza quindi questo token per trovare quello giusto ASP.NET View State nel suo negozio. Di seguito è riportato un esempio di un token utilizzato al posto di ASP.NET View State.

<input type = "hidden"
       name = "__VIEWSTATE"
       id = "__VIEWSTATE"
       value = "vs:cf8c8d3927ad4c1a84da7f891bb89185" />

Sebbene il ASP.NET View State può essere archiviato sul server Web, non è l'ideale quando l'applicazione ASP.NET è in esecuzione in una Web farm con bilanciamento del carico poiché la successiva richiesta HTTP potrebbe arrivare a un altro server Web. Pertanto, è necessario memorizzare il ASP.NET View State in un negozio condiviso accessibile da tutti i server web.

Il posto migliore per conservare ASP.NET View State sul server è in a cache distribuita. In questo modo, non solo puoi avere un negozio comune per tutti i server web, ma hai anche un estremamente negozio in-memory veloce e scalabile rispetto al database di SQL Server o ad altre opzioni di archiviazione.

Memorizzazione della cache distribuita ASP.NET View State - NCache
Figura 1: archiviazione della cache distribuita ASP.NET View State

NCache è una cache distribuita estremamente veloce e scalabile per .NET/.NET Core, Java e Node.js. Ti consente anche di archiviare ASP.NET View State per risolvere i problemi sopra descritti.

Configura ASP.NET ViewState in NCache

Da configurare ASP.NET View State devi installare il AspNet.ViewState.NCache Pacchetto NuGet come prerequisito. Allora è necessario configurare il file App_browser con NCache Collegare gli adattatori di pagina e configurare il file web.config nell'applicazione per registrare la sezione di configurazione per Visualizza stato e specificare le impostazioni per la sezione di configurazione registrata. Fare riferimento al NCache ASP.NET View State docs per la configurazione passo passo.

Se la stessa cache viene utilizzata per la memorizzazione nella cache dello stato di visualizzazione e altri dati, puoi farlo recuperare i dati dello stato di visualizzazione utilizzando NC_ASP.net_viewstate_data tagga come:

Hashtable allViewStateData = cache.GetByTag(new Tag("NC_ASP.net_viewstate_data"));

Vantaggi della memorizzazione nella cache ASP.NET View State sul Server

Ottieni i seguenti vantaggi memorizzando nella cache il tuo ASP.NET View State in NCache.

  1. Migliora le prestazioni di ASP.NET: NCache riduce il carico utile della richiesta/risposta migliorando il tempo complessivo della richiesta.
  2. Ridurre il costo della larghezza di banda: Un carico utile inferiore significa anche una significativa riduzione dei costi di consumo della larghezza di banda. Questo potrebbe farti risparmiare un sacco di soldi.
  3. Sicurezza: Ora che ASP.NET View State la stringa codificata non viene inviata al browser, non ci sono più rischi per la sicurezza.
  4. Veloce e scalabile ASP.NET View State Memoria su disco: NCache è una cache distribuita estremamente veloce e scalabile. Ciò significa che ASP.NET non dovrà mai affrontare colli di bottiglia di scalabilità dovuti a ASP.NET View State Conservazione.
  5. ASP.NET View State Affidabilità attraverso la replica: NCache replica in modo intelligente tutti i dati nella cache distribuita. Ciò significa che non ne perdi nessuno ASP.NET View State anche se un server cache si interrompe.

Tecnologia ASP.NET View State Funzionalità di memorizzazione nella cache NCache

NCache fornisce un ricco set di funzionalità per la memorizzazione nella cache e la gestione ASP.NET View State. Di seguito è riportato un elenco di loro.

  1. Soglia dimensione minima: NCache consente di specificare una dimensione minima di ASP.NET View State. Qualsiasi stato di visualizzazione inferiore a questo non viene memorizzato nella cache. Ciò consente di memorizzare nella cache solo lo stato di visualizzazione pesante.
  2. Link ASP.NET View State con stato della sessione: Puoi collega un ASP.NET View State con lo stato della sessione. In questo modo, quando la sessione dell'utente scade, tutti i suoi stati di visualizzazione vengono automaticamente rimossi dalla cache.
  3. Soglia di conteggio massimo a livello di pagina: È possibile configurare quanti stati di visualizzazione devono essere conservati per una determinata pagina in modalità FIFO. In questo modo, lo stato di visualizzazione meno recente viene rimosso ogni volta che viene creato un nuovo stato di visualizzazione per questa pagina. Ciò ottimizza il consumo di memoria nel server di cache non memorizzando nella cache gli stati di visualizzazione di cui non avresti mai bisogno.
  4. Soglia di conteggio massimo a livello di sessione: Simile al livello di pagina, puoi specificare il conteggio massimo dello stato di visualizzazione per una sessione utente in maniera FIFO con maxViewStatesPerSession. In questo modo, lo stato di visualizzazione meno recente viene rimosso ogni volta che viene creato un nuovo stato di visualizzazione.
  5. Impostazioni a livello di pagina e di sessione: Puoi specificare tutte le impostazioni precedenti in modo diverso per ciascuna pagina o mantenerle comuni a tutte le sessioni.

Sommario

Come hai visto NCache ti consente di memorizzare nella cache ASP.NET View State sul server per ottimizzare le prestazioni di ASP.NET. Inoltre, NCache ti offre un ricco set di funzionalità per la gestione del tuo ASP.NET View State più efficientemente nella cache. Ciò consente di sviluppare applicazioni complesse e utilizzare queste funzionalità per gestire una varietà di scenari.

Cosa fare dopo?

© Copyright Alachisoft 2002 - . Tutti i diritti riservati. NCache è un marchio registrato di Diyatech Corp.