ASP.NET View State es una característica poderosa de ASP.NET que proporciona un mecanismo de administración de estado del lado del cliente. Ayuda a conservar la página y los valores de control entre viajes completos de ida y vuelta para las solicitudes de los clientes. Esto brinda una capacidad de programación completa de estado sobre un protocolo sin estado como HTTP.
ASP.NET View State se almacena en un campo oculto en la página como una cadena codificada en Base64, como parte de cada respuesta enviada al cliente, y el cliente también la devuelve al servidor como parte de una publicación.
<input id = "__VIEWSTATE"
type = "hidden"
name = "__VIEWSTATE"
value = "/wEPDwUJNzg0MDMxMDA1D2QWAmYPZBYCZg9kFgQCAQ9kFgICBQ9kFgJmD2QWAgIBD
xYCHhNQcm2aW91c0NvbnRyb2xNb2RlCymIAU1pY3Jvc29mdC5TaGFyZVBvaW50Lld
lYkNvbnRyb2xzLlNQQ29udHJbE1vZDA1XzRlMjJfODM3Y19kOWQ1ZTc2YmY1M2IPD
2…=="/>
Aunque muy útil, ASP.NET View State viene con algunos problemas que debe comprender y resolver. Se discuten a continuación.
Una forma de resolver ASP.NET View State problemas es almacenando el ASP.NET View State en el servidor web y enviar un token único (o ID) en su lugar al navegador para que el navegador pueda enviar este token al servidor web la próxima vez. El servidor web luego usa este token para encontrar el derecho ASP.NET View State en su tienda. A continuación se muestra un ejemplo de un token que se utiliza en lugar de ASP.NET View State.
<input type = "hidden"
name = "__VIEWSTATE"
id = "__VIEWSTATE"
value = "vs:cf8c8d3927ad4c1a84da7f891bb89185" />
Aunque ASP.NET View State se puede almacenar en el servidor web, no es ideal cuando su aplicación ASP.NET se ejecuta en una granja web con equilibrio de carga, ya que la siguiente solicitud HTTP podría llegar a otro servidor web. Por lo tanto, debe almacenar la ASP.NET View State en una tienda compartida accesible desde todos los servidores web.
El mejor lugar para almacenar ASP.NET View State en el servidor está en un caché distribuida. De esta manera, no solo puede tener un almacén común para todos los servidores web, sino que también tiene una almacén en memoria rápido y escalable en comparación con la base de datos de SQL Server u otras opciones de almacenamiento.
NCache es un caché distribuido extremadamente rápido y escalable para .NET/.NET Core, Java y Node.js. También te permite almacenar ASP.NET View State para resolver los problemas descritos anteriormente.
Para configurar ASP.NET View State necesitas instalar el AspNet.ViewState.NCache Paquete NuGet como requisito previo. Entonces necesitas configurar el archivo App_browser NCache Enchufe los adaptadores de página y configurar el archivo web.config en su aplicación para registrar la sección de configuración para View State y especificar la configuración para la sección de configuración registrada. Referirse a NCache ASP.NET View State documentos para la configuración paso a paso.
Si se utiliza el mismo caché para el almacenamiento en caché del estado de visualización y otros datos, puede obtener los datos del estado de vista mediante el uso NC_ASP.net_viewstate_data etiquetar como:
Hashtable allViewStateData = cache.GetByTag(new Tag("NC_ASP.net_viewstate_data"));
Obtiene los siguientes beneficios al almacenar en caché su ASP.NET View State in NCache.
NCache le proporciona un amplio conjunto de características para el almacenamiento en caché y la gestión ASP.NET View State. A continuación se muestra una lista de ellos.
Como has visto, NCache te permite almacenar en caché ASP.NET View State en el servidor para optimizar el rendimiento de ASP.NET. Además, NCache le proporciona un amplio conjunto de funciones para administrar su ASP.NET View State más eficientemente en el caché. Esto le permite desarrollar aplicaciones complejas y usar estas características para manejar una variedad de escenarios.