Ver almacenamiento en caché de estado para la optimización del rendimiento de ASP.NET

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.

  1. ASP.NET View State es a menudo pesado: Cuando su aplicación ASP.NET tiene muchos controles y widgets ricos y pesados ​​en sus páginas, una gran cantidad de datos viajan de un lado a otro entre su navegador y el servidor web. Esta pesada carga da como resultado una degradación del rendimiento de la aplicación ASP.NET y un alto costo de ancho de banda.
  2. ASP.NET View State es un riesgo de seguridad: También puede representar un riesgo de seguridad al enviar datos confidenciales como parte del estado de vista al cliente. Estos datos son vulnerables a los ataques y pueden ser manipulados por un atacante, lo que representa una grave amenaza para la seguridad. Puede cifrar el ASP.NET View State datos, pero esto nuevamente tendrá un costo de rendimiento.

NCache para ASP.NET View State

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.

Almacenamiento de caché distribuida ASP.NET View State - NCache
Figura 1: almacenamiento de caché distribuida ASP.NET View State

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.

Configurar ASP.NET ViewState en NCache

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"));

Beneficios del almacenamiento en caché ASP.NET View State en el servidor

Obtiene los siguientes beneficios al almacenar en caché su ASP.NET View State in NCache.

  1. Mejore el rendimiento de ASP.NET: NCache reduce la carga útil de solicitud/respuesta, lo que mejora el tiempo total de solicitud.
  2. Reducir el costo del ancho de banda: Una carga útil más pequeña también significa una reducción significativa en el costo del consumo de ancho de banda. Esto podría ahorrarle mucho dinero.
  3. Seguridad: Ahora que ASP.NET View State cadena codificada no se envía al navegador, ya no hay riesgos de seguridad.
  4. Rápido y Escalable ASP.NET View State Almacenamiento: NCache Es un caché distribuido extremadamente rápido y escalable. Esto significa que su ASP.NET nunca enfrenta cuellos de botella de escalabilidad debido a ASP.NET View State almacenamiento.
  5. ASP.NET View State Fiabilidad a través de la replicación: NCache replica todos los datos en la caché distribuida de forma inteligente. Esto significa que no pierdes nada. ASP.NET View State incluso si un servidor de caché deja de funcionar.

Avanzado ASP.NET View State Funciones de almacenamiento en caché en 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.

  1. Umbral de tamaño mínimo: NCache le permite especificar un tamaño mínimo de ASP.NET View State. Cualquier estado de vista menor que este no se almacena en caché. Esto le permite almacenar en caché solo estados de vista pesados.
  2. Enlace ASP.NET View State con estado de sesión: solicite vincular un ASP.NET View State con su estado de sesión. De esta manera, cuando la sesión del usuario expira, todos sus estados de vista se eliminan automáticamente del caché.
  3. Umbral de conteo máximo a nivel de página: Puede configurar cuántos estados de vista se deben mantener para una página determinada de manera FIFO. De esta forma, el estado de vista más antiguo se elimina cada vez que se crea un nuevo estado de vista para esta página. Esto optimiza su consumo de memoria en el servidor de caché al no almacenar en caché los estados de vista que nunca necesitaría.
  4. Umbral de conteo máximo de nivel de sesión: Similar al nivel de página, puede especificar el número máximo de estados de vista para una sesión de usuario en forma FIFO con maxViewStatesPerSession. De esta forma, el estado de vista más antiguo se elimina cada vez que se crea un nuevo estado de vista.
  5. Configuración a nivel de página y de sesión: Puede especificar todas las configuraciones anteriores de manera diferente para cada página o mantenerlas comunes para todas las sesiones.

Resumen

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.

¿Qué hacer a continuación?

© Copyright Alachisoft 2002 - Todos los derechos reservados. NCache es una marca registrada de Diyatech Corp.