Introducción al almacenamiento en caché en ASP.NET

El almacenamiento en caché en ASP.NET es la capacidad de almacenar una página web o datos en la memoria para un acceso rápido. En ASP.NET no necesita presionar al servidor para obtener la misma respuesta una y otra vez. Guárdelo en la memoria de la computadora y recójalo más rápido. Por supuesto, esto solo funciona con datos estáticos porque los datos dinámicos varían con cada solicitud realizada al servidor.

¿Qué es el almacenamiento en caché en ASP.Net?

El marco .Net también proporciona la función de almacenamiento en caché para que se pueda mejorar el rendimiento de su aplicación. Ahora pregunta, ASP .Net se utiliza para crear páginas web dinámicas dependientes del usuario, entonces, ¿cómo almacena en caché el contenido?

Comprendamos esto con dos escenarios: primero donde la página es el tablero del usuario y segundo donde tiene listados de productos. El escenario dos es independiente del usuario, los productos son los mismos con cada solicitud al servidor y, por lo tanto, se puede almacenar en caché toda la página. Nuevamente, el precio y la disponibilidad de los productos son variables, lo que se puede manejar actualizando oportunamente el caché. El escenario uno depende del usuario, el tablero para un usuario puede no ser similar a otro usuario. Pero todavía hay algunos componentes como imágenes, leyendas, encabezados y pies de página que se pueden almacenar en caché para mejorar el rendimiento. ASP.Net permite a los desarrolladores manejar ambos tipos de escenarios de manera eficiente en su aplicación.

¿Cómo funciona el almacenamiento en caché en ASP.Net?

Es muy importante comprender el proceso de almacenamiento en caché de páginas web o datos de ASP.Net. Para comprender esto, necesitaríamos comprender el proceso de compilación .Net, de modo que podamos comprender cuándo y dónde almacenar en caché las páginas para un rendimiento óptimo. El código de la página ASP.Net se compila en dos etapas, la etapa MSIL y la etapa JIT. En la etapa MSIL, el código de la página escrito en idiomas de alto nivel se compila en el lenguaje intermedio de Microsoft. Esto sucede cada vez que construimos nuestro proyecto. Todo el sitio web o proyecto se compila en MSIL cada vez que construimos. En la etapa JIT, el compilador Just In Time convierte el código MSIL en código máquina nativo. Esto ocurre durante la ejecución de la página. Sin embargo, no todo el proyecto se convierte en código nativo todo el tiempo. Solo las páginas solicitadas por el usuario se convierten de MSIL a código nativo durante la ejecución. Esto ahorra mucho ancho de banda de red y mejora el rendimiento.

Ahora, ¿qué código debemos almacenar en caché, cuándo debemos almacenar en caché y dónde?

ASP.Net tiene un motor con todas las funciones dedicado al almacenamiento en caché. Tiene características como dependencia de tiempo, dependencia de archivos y claves, caducidad, eliminación de datos, etc. No detallaremos estos detalles en este artículo. Lo que debemos entender es que podemos almacenar en caché nuestras páginas y datos en dos ubicaciones para mejorar el rendimiento de nuestra aplicación ASP.Net. La primera ubicación es la sección Caché de página que reside en el servidor ASP.Net. Esta página almacena cachés de salida y cachés de fragmentos de página, básicamente páginas ASPX. Cada vez que se solicita una página mayormente estática, se almacena una copia del código nativo generado en la sección Caché de página. Esto ahorra el tiempo de compilación JIT durante las solicitudes de página posteriores. La segunda ubicación es la caché de datos. Esto almacena los datos obtenidos de los servidores de datos u otros servidores. Almacenar una copia de estos datos ayuda a salvar futuras llamadas de red a los servidores de bases de datos u otros servidores de terceros. Algunos ejemplos de los datos almacenados en caché son datos de SQL Server, datos XML, datos JSON, respuestas API de terceros, etc.

Tipos de almacenamiento en caché en ASP.Net

1. Caché de salida de página

Caché de salida de página significa almacenar en caché la salida completa de la página solicitada. Cada vez que un usuario solicita una página ASP.Net, el compilador JIT compila el código MSIL relevante y genera la salida del código nativo que se enviará como respuesta al cliente. Esto significa que cada vez que se solicita la página, el compilador JIT tiene que generar el código nativo. ¿Qué pasa si la página es de naturaleza estática? ¿Qué pasa si el resultado de la página es el mismo después de cada compilación? Podemos ahorrar mucho tiempo de compilación y recursos si almacenamos el código nativo generado dentro de la caché de página. En su lugar, las solicitudes posteriores para la misma página se pueden obtener del caché. Esto se denomina almacenamiento en caché de salida de página. Para lograr el Caché de resultados de página, debemos especificar la directiva OuputCache en el código ASP.Net con duración en segundos.





2. Caché de fragmentos de página

Hemos visto cómo almacenar en caché una página estática. ¿Qué pasa si la página es dinámica y varía con los usuarios? Aquí viene el almacenamiento en caché de fragmentos de página. Permite a un desarrollador almacenar en caché secciones específicas de la página. Esto ayuda cuando desea almacenar en caché el encabezado y el pie de página, que es principalmente estático para cada usuario. Para lograr el almacenamiento en caché de fragmentos de página en ASP.Net, debe encapsular el código de fragmento en un control de usuario separado. Luego agregue la misma directiva OuputCache en el control del usuario. Cuando el control de usuario se carga junto con la página, se mantiene una copia del mismo en la memoria caché. Por lo tanto, todas las referencias posteriores al mismo control de usuario en la misma página o en una página diferente se obtendrían de la memoria caché.





3. Almacenamiento en caché de datos

El almacenamiento en caché de datos es el mecanismo para almacenar los datos requeridos, a los que se accede con frecuencia, en la memoria caché. Esto puede mejorar drásticamente el rendimiento de la aplicación. Esto se debe a que el almacenamiento en caché de datos guarda las llamadas de ida y vuelta de la base de datos, que son conocidas por consumir la mayor cantidad de tiempo. Cuando los datos de acceso frecuente y rara vez modificados se almacenan en caché, el servidor obtiene los datos del caché en lugar de realizar llamadas a la base de datos. Esto también puede ahorrarle dinero, ya que las llamadas a la base de datos a los servidores de datos alojados en la nube le cobran por solicitud. El almacenamiento en caché de datos en ASP.Net es un motor completo en sí mismo. Para lograr el almacenamiento en caché de datos en nuestra página web ASP, necesitamos usar el objeto Cache.

Cache("ProductName")="My Product";
Label1.Text= Cache("ProductName").ToString();

¿Por qué necesitamos el almacenamiento en caché en ASP.Net?

Habiendo entendido el proceso de almacenamiento en caché en ASP.Net, veamos algunos ejemplos prácticos donde el almacenamiento en caché se implementa en escenarios en tiempo real.

  • Hay una página informativa que genera informes basados ​​en los datos de la base de datos. Las tablas de la base de datos se actualizan cada pocas horas.
    El almacenamiento en caché de salida de página se puede utilizar en un escenario de este tipo con una duración del conjunto de caché para que coincida con la frecuencia del trabajo de actualización de datos.
  • Hay una página que muestra varias tablas y datos que cambian constantemente. Sin embargo, las leyendas y la explicación de los datos sigue siendo la misma.
    El almacenamiento en caché de fragmentos de página solo se puede utilizar para almacenar en caché la leyenda estática y los datos de explicación.
  • Hay un panel de usuario que es personalizado por el usuario y genera gráficos y cuadros en las solicitudes de los usuarios. Los datos utilizados para generar los gráficos y cuadros cambian con poca frecuencia.
    El almacenamiento en caché de datos puede usarse para almacenar en caché los datos y generar dinámicamente cuadros y gráficos solicitados por el usuario.

Conclusión

Por lo tanto, hemos aprendido que el almacenamiento en caché ayuda mucho a mejorar el rendimiento de nuestra aplicación ASP.Net. Este fue un artículo de nivel introductorio sobre el almacenamiento en caché en ASP.Net. Hay más para explorar. Se recomienda obtener más información sobre el almacenamiento en caché para mejorar aún más el rendimiento de la aplicación.

Artículo recomendado

Esta ha sido una guía para el almacenamiento en caché en ASP.NET. Aquí discutimos la Introducción al almacenamiento en caché en ASP.NET y su funcionamiento junto con los tipos de almacenamiento en caché. También puede consultar nuestros otros artículos sugeridos para obtener más información:

  1. Marco ASP.NET
  2. Controles de validación de ASP.Net
  3. Carrera en ASP.NET
  4. Preguntas de la entrevista .NET