Le ViewState est un système de maintien de la persistance des données ajouté dans le FrameWork .NET pour les pages ASP.NET.
Ainsi dans chaque page ASP.NET où l'on a un formulaire, il existe un objet particulier que je vais essayer de présenter maintenant.
Le ViewState est un concept ajouté dans le FrameWork .NET afin d'améliorer les possibilités de développement dans le cas d'applications WEB imitant du Client-Serveur.
En effet, les différentes méthodes possibles pour stocker de l'information entre deux états lors d'une navigation sur un Site Internet étaient :
Les Variables de Sessions
Les Cookies
Le Stockage en Base de données
Chacune de ces trois méthodes était intéressante mais possédait ses propres limites :
Les cookies ne sont pas fiables, car on a aucune garantie sur la configuration du client quand à l'acceptation de ces cookies.
Les variables de Session sont destinées à être temporaires et ne doivent pas perdurer de par l'utilisation du temps de la session du client.
Le stockage en Base de Données est coûteux en conception et développement, car relativement compliqué à mettre en place et à maintenir.
De plus, on sait que l'HTML est capable de stocker de l'information sans qu'elle soit forcément visible par l'utilisateur (sauf s'il consulte le code source), c'est déjà une astuce utilisée dans de nombreux développements plus ou moins complexes en ASP.
On sait aussi que le FrameWork .NET utilise énormément le XML et donc la "Serialisation" XML. En combinant les deux, on obtient le ViewState.
Ainsi Microsoft a créé un concept qui est le stockage de l'ensemble des informations de tous les composants contrôlés par le serveur dans un champ HIDDEN de la page en utilisant la "Serialisation" XML et surtout une classe développée pour cet usage : le StateBag.