Afficher la mise en cache de l'état pour l'optimisation des performances ASP.NET

ASP.NET View State est une fonctionnalité puissante d'ASP.NET qui fournit un mécanisme de gestion d'état côté client. Il aide à préserver les valeurs de page et de contrôle entre les allers-retours complets pour les demandes des clients. Cela donne une capacité de programmation complète d'état sur un protocole sans état tel que HTTP.

ASP.NET View State est stocké dans un champ masqué sur la page sous la forme d'une chaîne Base64 codée, dans le cadre de chaque réponse envoyée au client, et est également renvoyé au serveur par le client dans le cadre d'une publication.

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

Bien que très utile, ASP.NET View State vient avec quelques problèmes que vous devez comprendre et résoudre. Ils sont discutés ci-dessous.

  1. ASP.NET View State est souvent lourd : Lorsque votre application ASP.NET contient de nombreux contrôles et widgets riches et lourds sur ses pages, de nombreuses données transitent entre votre navigateur et le serveur Web. Cette lourde charge utile entraîne une dégradation des performances de l'application ASP.NET et un coût élevé de la bande passante.
  2. ASP.NET View State est un risque de sécurité : Cela peut également poser un risque de sécurité lors de l'envoi de données confidentielles dans le cadre de l'état d'affichage au client. Ces données sont vulnérables aux attaques et peuvent être tempérées par un attaquant qui constitue une menace sérieuse pour la sécurité. Vous pouvez crypter le ASP.NET View State données, mais cela va encore une fois avoir un coût de performance.

NCache en ASP.NET View State

Une façon de résoudre ASP.NET View State problèmes est de stocker le réel ASP.NET View State sur le serveur Web et en envoyant un jeton (ou ID) unique à sa place au navigateur afin que le navigateur puisse renvoyer ce jeton au serveur Web la prochaine fois. Le serveur Web utilise ensuite ce jeton pour trouver le bon ASP.NET View State dans son magasin. Vous trouverez ci-dessous un exemple d'un jeton utilisé à la place de ASP.NET View State.

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

Bien que ASP.NET View State peut être stocké sur le serveur Web, ce n'est pas idéal lorsque votre application ASP.NET s'exécute dans une batterie de serveurs Web à charge équilibrée, car la prochaine requête HTTP peut être envoyée à un autre serveur Web. Par conséquent, vous devez stocker le ASP.NET View State dans une boutique mutualisée accessible depuis tous les serveurs web.

Le meilleur endroit pour stocker ASP.NET View State sur le serveur est dans un cache distribué. De cette façon, non seulement vous pouvez disposer d'un magasin commun pour tous les serveurs Web, mais vous disposez également d'un magasin en mémoire rapide et évolutif par rapport à la base de données SQL Server ou à d'autres options de stockage.

Stockage de cache distribué ASP.NET View State - NCache
Figure 1 : Stockage du cache distribué ASP.NET View State

NCache est un cache distribué extrêmement rapide et évolutif pour .NET/.NET Core, Java et Node.js. Il vous permet également de stocker ASP.NET View State pour résoudre les problèmes décrits ci-dessus.

Configurer ASP.NET ViewState dans NCache

Configurer ASP.NET View State vous devez installer le AspNet.ViewState.NCache Package NuGet comme pré-requis. Ensuite, vous devez configurer le fichier App_browser avec NCache Branchez les adaptateurs de page et configurer le fichier web.config dans votre application pour enregistrer la section de configuration pour l'état d'affichage et spécifier les paramètres de la section de configuration enregistrée. Se référer au NCache ASP.NET View State docs pour une configuration pas à pas.

Si le même cache est utilisé pour la mise en cache de l'état d'affichage et d'autres données, vous pouvez récupérer les données d'état d'affichage en utilisant NC_ASP.net_viewstate_data étiqueter comme :

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

Avantages de la mise en cache ASP.NET View State sur le serveur

Vous bénéficiez des avantages suivants en mettant en cache votre ASP.NET View State in NCache.

  1. Améliorez les performances ASP.NET : NCache réduit la charge utile de requête/réponse, ce qui améliore le temps de requête global.
  2. Réduisez le coût de la bande passante : Une charge utile plus petite signifie également une réduction significative du coût de consommation de bande passante. Cela pourrait vous faire économiser beaucoup d’argent.
  3. Sécurité : Maintenant que ASP.NET View State chaîne encodée n'est pas envoyée au navigateur, il n'y a plus de risques de sécurité.
  4. Rapide et évolutif ASP.NET View State Stockage: NCache est un cache distribué extrêmement rapide et évolutif. Cela signifie que votre ASP.NET ne rencontre jamais de goulots d'étranglement en raison de ASP.NET View State espace de rangement.
  5. ASP.NET View State Fiabilité grâce à la réplication : NCache réplique intelligemment toutes les données du cache distribué. Cela signifie que vous n'en perdez rien ASP.NET View State même si un serveur de cache tombe en panne.

Avancé ASP.NET View State Mise en cache des fonctionnalités dans NCache

NCache vous offre un riche ensemble de fonctionnalités pour la mise en cache et la gestion ASP.NET View State. Voici une liste d'entre eux.

  1. Seuil de taille minimale : NCache vous permet de spécifier une taille minimale de ASP.NET View State. Tout état d’affichage inférieur à cela n’est pas mis en cache. Cela vous permet de mettre en cache uniquement les états d'affichage lourds.
  2. Lien ASP.NET View State avec état de session : Vous pouvez lier un ASP.NET View State avec votre état de session. De cette façon, lorsque la session utilisateur expire, tous ses états d'affichage sont automatiquement supprimés du cache.
  3. Seuil de comptage maximal au niveau de la page : Vous pouvez configurer le nombre d'états d'affichage à conserver pour une page donnée de manière FIFO. De cette façon, l'état d'affichage le plus ancien est supprimé chaque fois qu'un nouvel état d'affichage est créé pour cette page. Cela optimise votre consommation de mémoire dans le serveur de cache en ne mettant pas en cache les états d'affichage dont vous n'auriez jamais besoin.
  4. Seuil de comptage maximal au niveau de la session : Comme au niveau de la page, vous pouvez spécifier le nombre maximal d'états d'affichage pour une session utilisateur en mode FIFO avec maxViewStatesParSession. De cette façon, l'état d'affichage le plus ancien est supprimé chaque fois qu'un nouvel état d'affichage est créé.
  5. Paramètres au niveau de la page et de la session : Vous pouvez spécifier tous les paramètres ci-dessus différemment pour chaque page ou les garder communs à toutes les sessions.

Résumé

Comme vous l'avez vu, NCache permet de mettre en cache ASP.NET View State sur le serveur pour optimiser vos performances ASP.NET. En outre, NCache vous offre un riche ensemble de fonctionnalités pour gérer votre ASP.NET View State plus efficacement dans le cache. Cela vous permet de développer des applications complexes et d'utiliser ces fonctionnalités pour gérer une variété de scénarios.

Que faire ensuite?

© Copyright Alachisoft 2002 - . Tous droits réservés. NCache est une marque déposée de Diyatech Corp.