En un curso que dicto sobre AspNet, una pregunta recurrente es "como maneja el lenguaje la falta de estado en el entorno web?".
Digamos que en un programa Windows local, el usuario interactúa con una aplicación que está ejecutandose ininterrumpidamente, la cual almacena su información en una porción de la memoria del computador. En una aplicación Web esto no es así, si bien un sitio desarrollado con ASP NET pueda verse como “ejecución ininterrumpida”, esto es solo una ilusión.
En un típico Web Request, el cliente se conecta al Web Server y solicita una página, cuando ésta es enviada la conexión se cierra y el Web Server abandona cualquier información que posea del cliente. Por lo cual cuando el cliente recibe la página solicitada, la aplicación ya ha parado su ejecución. Por este motivo Asp Net nos dota con las siguientes posibilidades para manejar el almacenamiento de los datos (mantener el estado):
Tenemos 4 posibilidades, aquí las 2 primeras, ViewState y QuieryString
Por último, cookies y session state: