Un aperçu des techniques de gestion d’état offertes par ASP.NET

1

Il existe une contrainte commune qui peut être observée dans le fonctionnement de presque toutes les applications Web, ce qui ajoute à leur comportement sans état. C'est la connexion intermittente entre le Serveur et le Client.

Ce qui se passe, c'est que lors de la mise en œuvre du protocole HTTP (Hyper Text Transfer Protocol) pour communiquer sur le Web, un modèle particulier est suivi, appelé requête et réponse. Ce modèle est en fait de nature sans état car il ne conserve pas l'état d'une requête ou sa réponse correspondante. Par conséquent, chaque fois qu'un client initie une demande au serveur Web, le serveur Web crée un tout nouvel objet de la demande. Cela provoque finalement une interruption de la connexion et crée des goulots d'étranglement dans les performances.

Heureusement, ASP.NET offre une excellente solution pour surmonter ce problème avec plusieurs techniques de gestion d'état efficaces pour les applications Web.

Réfléchissons aux offres incroyables d'ASP.NET et comprenons comment cela aide à conserver l'état des contrôles.

Il a été observé que lorsque le modèle de demande et de réponse crée les allers-retours, la valeur de contrôle du serveur est en quelque sorte vendue au détail tandis que la valeur de contrôle HTML disparaît. En effet, les Sever Controls implémentent implicitement la technique de State Management (View State), qui lui a permis de conserver les états.

ASP.NET propose un certain nombre de méthodes de gestion d'état brillantes, toutes destinées à différentes applications. Ils sont essentiellement séparés en deux grandes catégories, à savoir la gestion d'état basée sur le client et la gestion d'état basée sur le serveur. Voici une brève introduction à plusieurs techniques.

Gestion d'état basée sur le client

Dans cette approche, les données sont stockées sur la machine du client ou sur la page sans impliquer les ressources du serveur. Ces données stockées comprennent toutes les informations relatives à l'interaction entre le client et le serveur. Étant donné que les données sont stockées chez le client, elles sont plus vulnérables au piratage, ce qui rend les techniques moins sécurisées tout en étant plus évolutives.

Avec cette approche, ASP.NET facilite les méthodes mentionnées ci-dessous :

1) Afficher l'état :

Cette méthode au niveau de la page permet de stocker les informations sur une page particulière jusqu'à ce qu'elle soit active. Autrement dit, dès que l'utilisateur redirige vers une autre page, toutes les informations stockées disparaîtront. Il aide ainsi à maintenir l'état au niveau de la page. Dans cette technique, les données sont stockées dans le formulaire d'objet de dictionnaire (dans la paire d'une clé et d'une valeur). Toutes les informations sont stockées dans un format haché sur la page elle-même, mais dans un champ masqué. Il peut consommer une valeur de chaîne mais seulement jusqu'à un certain, si la valeur dépasse, un autre champ caché est consommé.

Avec ASP.NET, l'état d'affichage est la méthode par défaut suivie pour stocker l'état des applications Web. Il est assez simple à mettre en œuvre et est idéal pour une utilisation lorsqu'un utilisateur est redirigé vers la même page, et nous devons donc conserver les informations persistantes jusqu'à ce qu'il redirige lui-même vers une autre page.

Avantages de l'utilisation de l'état d'affichage :

  • Sécurisez les informations stockées du profane en les stockant au format haché. En fait, pour le protéger des pirates, vous pouvez conserver les informations dans un format crypté.
  • Vous pouvez le personnaliser au fur et à mesure de vos envies.
  • C'est une excellente option lorsque vous souhaitez implémenter plusieurs publications dans une même page Web.

Inconvénients de l'utilisation de l'état d'affichage :

  • Ce n'est pas une approche sûre, donc les données sensibles ne peuvent pas être stockées avec.
  • Cela peut entraîner des problèmes de surcharge ou augmenter le temps de chargement, en alourdissant la page avec beaucoup d'informations.
2) Cookies :

Il offre une grande facilité de personnalisation côté client, car les cookies sont stockés soit dans la mémoire pendant la session de navigation du client, soit sur le système du client. En fait, on peut même stocker les informations relatives aux utilisateurs et suivre l'utilisation. Il possède un petit fichier texte d'une taille maximale de 4096 octets, et une machine cliente peut afficher jusqu'à 300 cookies, tandis qu'un domaine ou un serveur peut prendre en charge un maximum de 20 cookies.

Les cookies sont en outre divisés en deux catégories, à savoir :

Cookie persistant – Ce type de cookies présente une date d'expiration et est enregistré de manière permanente sur le disque dur disponible sur la machine du client. S'il n'y a pas de date d'expiration correspondant au cookie persistant, il sera considéré comme un cookie transitoire ou non persistant.

Cookie non persistant ou cookie transitoire – Étant donné que ce type de cookies est stocké dans la mémoire du navigateur côté client pendant une durée temporaire, après cette durée spécifique, le cookie sera perdu.

Avantages de l'utilisation de cookies :

  • Il ne consomme que quelques octets de mémoire par cookie.
  • Facile et assez simple à utiliser.

Inconvénients de l'utilisation de cookies :

  • Il n'offre pas une approche sûre car il stocke les informations dans la machine du client et, par conséquent, le stockage de données sensibles n'est pas un choix viable.
  • Tout utilisateur peut désactiver les cookies en effectuant les réglages appropriés dans les paramètres du navigateur.
3) Champs masqués :

Il s'agit essentiellement d'un contrôle serveur, qui permet de gérer la valeur au niveau de la page et qui ressemble un peu à un état d'affichage. Sa valeur est envoyée via la collection de formulaires HTTP et, avec elle, la valeur des autres contrôles est également envoyée.

Avantages de l'utilisation des champs cachés :

  • Il est assez simple à utiliser.
  • Comme la valeur est stockée uniquement sur la page, les ressources du serveur ne sont pas du tout utilisées. Ainsi, les champs cachés économisent les ressources du serveur.

Inconvénients de l'utilisation des champs masqués :

  • Si plusieurs champs masqués seront implémentés sur une page, cela finira par ajouter du poids à la page et la rendre plus volumineuse et ainsi augmenter le temps de chargement de la page.
  • Cette approche n'est pas idéale pour stocker les données sensibles. Comme elle ne stocke pas les données dans un format crypté ou haché, cette technique n'est pas entièrement sécurisée.
4 État de l'application :

Cet état est parfait pour stocker les données qui doivent être accessibles dans l'ensemble de l'application. Il occupe les ressources du serveur, car il stocke les données dans la mémoire du serveur. L'état de l'application n'est pas limité à un utilisateur ou à une session en particulier, mais s'applique à toutes les sessions et à tous les utilisateurs. Cependant, dans ce cas, les données ne seront conservées que pendant le temps jusqu'à ce que l'application soit en cours d'exécution, dès que l'application sera terminée ou redémarrée, toutes les données stockées seront perdues. En fait, il sera également gaspillé lors du redémarrage d'un serveur Web, car les données sont stockées à la fin du serveur.

Dans l'état d'application, un objet de la classe HttpApplicationState est utilisé pour stocker les données. Cette classe est une collection d'objets nommés, ce qui signifie qu'elle inclut les données de n'importe quel type. Il peut s'agir d'une partie d'une paire clé/valeur.

Avantages de l'état de l'application :

  • L'état de l'application a une portée globale. Les données sont accessibles à tout moment lorsque l'application est en cours d'exécution.
  • Il n'y a pas de délai d'expiration par défaut.

Inconvénients de l'état de l'application :

  • L'état de l'application nécessite des ressources de serveur pour stocker les données. Cela peut entraîner des problèmes d'évolutivité s'il n'est pas géré correctement.
  • L'état de l'application n'est pas thread-safe, nous devons donc implémenter des verrous.
  • En cas de panne ou de redémarrage de l'application, toutes les données stockées sont perdues.
5 État de la session :

Cette méthode est la plus couramment utilisée par plusieurs développeurs pour maintenir l'état de l'application. Dans cette approche, la valeur est stockée sous la forme d'une collection de dictionnaires, c'est-à-dire qu'elle est associée en tant que clé et valeur. Ici, les ressources du serveur sont entièrement utilisées pour stocker l'état de l'application. Étant donné que les données stockées ne sont pas transmises aux clients, cette technique offre une méthode sûre et hautement sécurisée.

Dans cette approche, une session distincte avec un identifiant unique est générée pour chaque utilisateur. Comme cet identifiant est enregistré sur le système du client, des cookies sont utilisés pour son stockage. La Session est tuée dès que l'utilisateur se déconnecte de l'application, et s'il revient dans l'application dans le futur, une nouvelle session est alors créée.

Il peut être utilisé dans l'un des quatre modes. Voici les modes :

  • OFF – Pour désactiver la session, c'est-à-dire si vous ne souhaitez pas inclure l'état de la session dans votre application, vous pouvez activer le mode OFF.
  • InProc – Les variables de session sont stockées dans ce mode par défaut. Ici, la valeur est stockée dans le même processus où l'application ASP.NET est en cours d'exécution. Il offre ainsi des performances exceptionnelles.
  • Serveur d'état – Dans ce mode, les données sont stockées dans un processus séparé à l'intérieur du service Windows. Il isole ainsi les deux processus, l'un où l'application est en cours d'exécution et le second où les données sont stockées. Par conséquent, ses performances ne sont pas aussi bonnes que celles du mode InProc.
  • SQL Server – Ici, les données de session sont stockées dans SQL Server. Il est difficile à gérer en mode InProc avec plusieurs machines serveurs. Pour cela, il est préférable de stocker les données uniquement dans le serveur SQL, cela rendra les données accessibles de manière centralisée à toutes les machines. Ce mode offre une sécurité maximale, cependant, il offre des performances dégradées.

Ces cinq sont les techniques de gestion d'état les plus couramment utilisées pour les applications ASP.NET. Intégrez cette technique dans votre application qui peut assurer une sécurité complète des données et des performances rapides.

This website uses cookies to improve your experience. We'll assume you're ok with this, but you can opt-out if you wish. Accept Read More