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

El View State de ASP.NET es una característica integrada que gestiona el estado del lado del cliente, conservando los valores de las páginas y los controles entre ciclos completos de solicitudes del cliente. Esto proporciona capacidad de programación con estado completo sobre un protocolo sin estado como HTTP.

Este estado se almacena en un campo oculto de la página como una cadena Base64 codificada, como parte de cada respuesta enviada al cliente. El cliente lo devuelve al servidor como parte de un postback.

<input id = "__VIEWSTATE"
       type = "hidden"
       name = "__VIEWSTATE"
       value = "/wEPDwUJNzg0MDMxMDA1D2QWAmYPZBYCZg9kFgQCAQ9kFgICBQ9kFgJmD2QWAgIBD
              xYCHhNQcm2aW91c0NvbnRyb2xNb2RlCymIAU1pY3Jvc29mdC5TaGFyZVBvaW50Lld
              lYkNvbnRyb2xzLlNQQ29udHJbE1vZDA1XzRlMjJfODM3Y19kOWQ1ZTc2YmY1M2IPD
              2...=="/>

Si bien es muy útil, el View State de ASP.NET presenta algunos problemas que deberá resolver. Estos se describen a continuación.

  1. El estado de vista de ASP.NET suele ser pesado: Cuando su aplicación ASP.NET tiene muchos controles y widgets complejos y complejos en sus páginas, se transfieren muchos datos entre el navegador y el servidor web. Esta carga excesiva provoca una degradación del rendimiento de la aplicación ASP.NET y un alto consumo de ancho de banda.
  2. El estado de vista de ASP.NET plantea riesgos de seguridad: También puede suponer un riesgo de seguridad al enviar datos confidenciales al cliente como parte del estado de vista. Estos datos son vulnerables a ataques y los atacantes pueden manipularlos. Si bien es posible cifrar los datos del estado de vista de ASP.NET, esto también tendrá un impacto negativo en el rendimiento.

NCache para ASP.NET View State

Una forma de resolver estos problemas de ASP.NET View State es almacenando el estado real. Estado de vista de ASP.NET En el servidor web, se envía un token (o ID) único al navegador. De esta forma, el navegador puede devolver este token al servidor web la próxima vez. El servidor web utiliza este token para encontrar el estado de vista ASP.NET correcto en su almacén. A continuación, se muestra un ejemplo del uso de dicho token.

<input type = "hidden"
       name = "__VIEWSTATE"
       id = "__VIEWSTATE"
       value = "vs:cf8c8d3927ad4c1a84da7f891bb89185" />

Si bien el estado de vista de ASP.NET se puede almacenar en el servidor web, no es lo ideal cuando la aplicación se ejecuta en una granja de servidores web con balanceo de carga, ya que la siguiente solicitud HTTP podría dirigirse a otro servidor web. Por lo tanto, es necesario almacenar el estado de vista de ASP.NET en un almacén compartido accesible desde todos los servidores web.

Caché distribuida que almacena el estado de vista de ASP.NET - NCache
Figura 1: Caché distribuida que almacena el estado de vista de ASP.NET

El mejor lugar para almacenar el estado de vista de ASP.NET en el servidor es 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 una caché distribuida extremadamente rápida y escalable para .NET, Java, Python y Node.js. También permite almacenar Estado de vista de ASP.NET para resolver los problemas descritos anteriormente.

Configurar el estado de la vista de ASP.NET en NCache

Para configurar ASP.NET View State, necesita instalar el AspNet.ViewState.NCache Paquete NuGet como requisito previo. Luego, debe configurar el navegador de aplicaciones archivo con NCache Conecte los adaptadores de página. A continuación, necesita... configurar el archivo web.config En su aplicación, registre el estado de vista para la configuración y especifique los ajustes de la sección de configuración previamente registrada. Consulte NCache Documentación de ASP.NET View State 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 utilizando la etiqueta NC_ASP.net_viewstate_data como:

Hashtable allViewStateData = cache.SearchService.GetByTag(new Tag("NC_ASP.net_viewstate_data"));

Ventajas de almacenar en caché el estado de las vistas de ASP.NET en el servidor.

Obtendrá los siguientes beneficios al almacenar en caché el estado de su vista ASP.NET en 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 implica una reducción significativa en el consumo de ancho de banda. Esto podría ahorrarle mucho dinero.
  3. Seguridad: Ahora que la cadena codificada del estado de vista de ASP.NET no se envía al navegador, ya no existen riesgos de seguridad.
  4. Almacenamiento de estado de vista rápido y escalable para ASP.NET: NCache Es una caché distribuida extremadamente rápida y escalable. Esto significa que ASP.NET nunca se enfrenta a cuellos de botella de escalabilidad debido al almacenamiento del estado de vista de ASP.NET.
  5. Fiabilidad del estado de vista de ASP.NET mediante replicación: NCache Replica de forma inteligente todos los datos en la caché distribuida. Esto significa que no perderá ningún estado de vista de ASP.NET, incluso si un servidor de caché falla.

Características avanzadas de almacenamiento en caché del estado de vista de ASP.NET en NCache

NCache Le ofrece un amplio conjunto de funciones para el almacenamiento en caché y la gestión del estado de vista de ASP.NET. A continuación, se muestra una lista de ellas.

  1. Umbral de tamaño mínimo: NCache le permite especificar un tamaño mínimo de ASP.NET View State, es decir, viewstateUmbral. Cualquier estado de vista menor que este no se almacena en caché. Esto le permite almacenar en caché solo estados de vista pesados.
  2. Vincular el estado de vista de ASP.NET con el estado de sesión: Puedes vincular un estado de vista de ASP.NET con tu estado de sesión (caducarViewstateWithSession). De esta manera, cuando la sesión del usuario expira, todos los estados de vista se eliminan automáticamente de la memoria caché.
  3. Umbral de conteo máximo a nivel de página: Puede configurar cuántos estados de vista conservar para una página determinada mediante FIFO. De esta forma, el estado de vista más antiguo se elimina al crear uno nuevo para esta página. Esto optimiza el consumo de memoria en el servidor de caché al evitar el almacenamiento de estados de vista innecesarios.
  4. Umbral de conteo máximo de nivel de sesión: De manera similar al nivel de página, puede especificar el recuento máximo de estados de vista para una sesión de usuario de manera FIFO con estados de vista máximos por sesión. 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 Permite almacenar en caché el estado de vista de ASP.NET en el servidor para optimizar su rendimiento. Además, ofrece un amplio conjunto de funciones para gestionar el estado de vista de ASP.NET de forma más eficiente en la caché. Esto permite desarrollar aplicaciones complejas y utilizar estas funciones para abordar diversos escenarios.

¿Qué hacer a continuación?

Contáctenos

TELÉFONO

+1 214-619-2601 (EE.UU.)

+44 20 7993 8327 (Reino Unido)

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