¿Cuál es la diferencia entre SessionState y ViewState?

¿Cuál es la diferencia entre SessionState y ViewState en ASP.NET?

El estado de la sesión contiene información que pertenece a una sesión específica (por un cliente / navegador / máquina particular) con el servidor. Es una forma de rastrear lo que el usuario está haciendo en el sitio … en varias páginas … en medio de la apatridia de la Web. por ejemplo, el contenido del carrito de compras de un usuario en particular es información de la sesión. Las cookies se pueden usar para el estado de la sesión.
Ver estado, por otro lado, es información específica de una página web en particular. Se almacena en un campo oculto para que no sea visible para el usuario. Se usa para mantener la ilusión del usuario de que la página recuerda lo que hizo la última vez: no le proporcione una página limpia cada vez que publique mensajes. Mira esta página para más .

El estado de la sesión se guarda en el servidor, ViewState se guarda en la página.

El estado de la sesión generalmente se borra después de un período de inactividad del usuario (no se realizó ninguna solicitud que contenga la identificación de la sesión en las cookies de solicitud).

El estado de la vista se publica en una publicación posterior en un campo oculto.

SessionState

  • Puede persistir en la memoria, lo que la convierte en una solución rápida. Lo que significa que el estado no se puede compartir en Web Farm / Web Garden.
  • Puede persistir en una base de datos, útil para Web Farms / Web Gardens.
  • Se borra cuando la sesión muere, generalmente después de 20 minutos de inactividad.

ViewState

  • Se envía y recibe entre el servidor y el cliente, ocupando ancho de banda.
  • No tiene fecha de vencimiento
  • Es útil en una Web Farm / Web Garden

Uso: si va a almacenar información a la que desea acceder en diferentes páginas web, puede usar SessionState

Si desea almacenar información a la que desea acceder desde la misma página, puede usar Viewstate

Almacenamiento El Viewstate se almacena dentro de la página misma (en texto cifrado), mientras que el estado de sesión se almacena en el servidor.

SessionState se borrará en las siguientes condiciones

  1. Aclarado por el progtwigdor
  2. Autorizado por el usuario
  3. Se acabó el tiempo

Ver estado:

- 1.View state is maintained in page level only. - 2. View state of one page is not visible in another page. - 3. View state information stored in client only. - 4. View state persist the values of particular page in the client (browser) when post back operation done. 

Estado de la sesión:

  1. Session state is maintained in session level. 2. Session state value is available in all pages within a user session. - 3. Session state information stored in server. - 4. Session state persist the data of particular user in the server. This data available till user close the browser or session time completes. - 5. Session state used to persist the user-specific data on the server side 

La sesión se usa principalmente para almacenar datos específicos del usuario [datos específicos de la sesión]. En el caso de la sesión, puede usar el valor de toda la sesión hasta que la sesión expire o el usuario abandone la sesión. Viewstate es el tipo de datos que tiene scope solo en la página en la que se usa. No puede tener valores viewstate accesibles a otras páginas a menos que transfiera esos valores a la página deseada. También en el caso de viewstate, todos los datos de control del lado del servidor se transfieren al servidor como par de valores clave en __Viewstate y se transfieren de vuelta y se procesan al control apropiado en el cliente cuando se produce la devolución de datos.

Ver estado : ViewState es utilizado principalmente por los controles del servidor para retener el estado solo en las páginas que publican datos en ellos. La información se pasa al cliente y vuelve a leerse en una variable oculta. ViewState es una sobrecarga innecesaria para las páginas que no lo necesitan. A medida que ViewState crece, afecta el rendimiento de la recolección de basura.

Estado de la sesión : una sesión se define como un período de tiempo que se comparte entre la aplicación web y el usuario. Cada usuario que está usando la aplicación web tiene su propia sesión. Los Objetos / Objetos se pueden colocar en la Sesión que solo definiría estos objetos para ese usuario. La sesión contiene variables clave que ayudan a identificar los valores relacionados. Esto se puede considerar como una tabla hash.

SessionState persiste los datos de un usuario particular en el servidor. Esta información está disponible hasta que el usuario cierre el navegador o complete el tiempo de la sesión. Los estados de vista son válidos principalmente durante las devoluciones y la información se almacena solo en el cliente. Viewstate es válido solo para datos serializables. Además, Viewstate no está protegido ya que los datos están expuestos al cliente. aunque podemos configurar la directiva de página y la clave del equipo para hacer que el estado de la vista esté encriptado. Donde en el caso de la sesión, estos son datos específicos del usuario que se almacenan en la memoria del servidor. El estado de sesión es válido para cualquier tipo de objeto. Podemos tomar la ayuda de la sesión a través de diferentes páginas web también.

Estado de la sesión:

1. Las variables de estado de la sesión están disponibles en todas las páginas, pero solo para una sesión determinada. Las variables de sesión son como datos globales de un solo usuario.

2. Las variables de estado de la sesión se almacenan en el servidor web.

3. Las variables de SessionState se borran cuando la sesión del usuario expira. El valor predeterminado es 20 minutos. Esto es configurable en web.config

Estado de aplicación:

1. Las variables de estado de la aplicación están disponibles en todas las páginas y en todas las sesiones. Las variables de estado de aplicación son como datos globales multiusuario.

2. Las variables de estado de la aplicación se almacenan en el servidor web.

3. Las variables de estado de la aplicación se borran cuando se reinicia el proceso que aloja la aplicación.