Cómo utilizar la API de Caché en ASP.NET para mejorar el rendimiento de tu aplicación

Índice de Contenido
  1. Técnicas de caching en ASP.NET
  2. API de Caching
  3. Trabajando con la caché
  4. Dependencias de la caché
  5. Usando el objeto Response
  6. Reutilización de datos a través de la caché
  7. ¿Te perdiste una columna?

Técnicas de caching en ASP.NET

La caché de datos frecuentemente accedidos o costosos en memoria mejora el rendimiento de las aplicaciones al reducir el número de consultas a la base de datos para obtener los datos. ASP.NET proporciona dos técnicas básicas de caché: caché de página (Page Output y Page Fragment) y caché programática. En mi artículo anterior, cubrí los conceptos básicos de la caché de página. En este artículo, nos enfocaremos en la caché de datos utilizando tu lenguaje .NET favorito y la API de Caching, que te permite agregar y eliminar elementos de la caché según sea necesario.

API de Caching

La API de Caching está disponible a través del espacio de nombres System.Web.Caching. Contiene el objeto Cache, que contiene métodos para manipular elementos en la caché. Los siguientes métodos están disponibles:

  • Add: te permite agregar un elemento específico a la caché.
  • Get: recupera un elemento específico de la caché utilizando un valor de clave.
  • Insert: agrega un elemento específico a la caché.
  • Remove: elimina un elemento específico de la caché designado por un valor de clave.
Recibe consejos .NET semanales en tu correo electrónico
El boletín gratuito de .NET de Newsmatic, enviado cada miércoles, contiene consejos útiles y ejemplos de código sobre temas como servicios web, ASP.NET, ADO.NET y Visual Studio .NET.

¡Inscríbete automáticamente hoy!

Los métodos Add e Insert aceptan parámetros para definir las siguientes propiedades:

  • Un valor de cadena para la clave del elemento (utilizado para acceder al elemento).
  • El objeto real que se almacenará en la caché.
  • Establecer una dependencia (a través del objeto CacheDependency) que define una condición que borra la caché cuando una dependencia particular (archivo, directorio, claves u otros objetos) cambia.
  • Definir una fecha de expiración absoluta que establece cuándo caducará el objeto y se eliminará de la caché. Acepta un objeto DateTime.
  • Definir una fecha de expiración deslizante que especifica la cantidad de tiempo (después de que un objeto fue accedido por última vez) que se debe esperar antes de que se elimine un elemento de la caché. Acepta un objeto TimeSpan.
  • Asignar una prioridad al elemento a través de un objeto CacheItemPriority. Los valores legales incluyen NotRemovable, High, AboveNormal, Normal, BelowNormal y Low.
  • Especificar un delegado para una función de devolución de llamada que se notificará cuando se elimine un elemento.

Tanto los métodos Add e Insert aceptan todos estos parámetros, pero el método Insert incluye dos firmas sobrecargadas que aceptan un subconjunto de la lista. La primera firma acepta el valor de clave y el objeto real, mientras que la otra versión acepta todo excepto la prioridad y el delegado. El método Insert se utiliza con frecuencia ya que los otros parámetros no se utilizan tanto.

Trabajando con la caché

Si utilizas los métodos proporcionados por la clase Cache, es fácil utilizar la caché de datos en una aplicación. El código en C# en Listing A utiliza la caché para almacenar un objeto DataSet. El objeto DataSet se utiliza para poblar un control DataGrid en la página ASP.NET. Si el objeto DataSet no se encuentra en la caché, se realiza una consulta a la base de datos. El método Get se utiliza para verificar su existencia en la caché antes de agregarlo. Listing B contiene el equivalente en VB.NET.

Guía completa: Instala y configura un servidor DNS en Windows Server 2008

Otro detalle que puedes observar es la necesidad de convertir el objeto a su tipo adecuado al recuperarlo de la caché. Este código agrega el objeto a la caché indefinidamente. Puedes utilizar los métodos Insert o Add para asignar una fecha de caducidad al elemento.

Podrías reemplazar la línea Cache.Insert("TestDS", ds) del código anterior con la línea en Listing C para que expire en 30 minutos. Listing D contiene la versión en VB.NET. Por otro lado, podrías usar una ventana de expiración deslizante con la línea en Listing E. La versión en VB.NET se encuentra en Listing F. Puedes observar que esta segunda línea utiliza una prioridad normal, pero no hay diferencia ya que normal y default son iguales.

Dependencias de la caché

Una de las características más interesantes es vincular la caché a una fuente externa como un archivo. Las dependencias de la caché te permiten hacer que un elemento en caché dependa de otro recurso para que cuando el recurso cambie, el elemento en caché se elimine automáticamente. El elemento dependiente puede ser otro elemento en caché, un archivo del sistema o una carpeta.

El uso de una dependencia de caché requiere una instancia del objeto CacheDependency que apunte al elemento utilizado. El fragmento de código en VB.NET en Listing G crea un objeto que apunta a un archivo local.

Una gran característica de ASP.NET 2.0 es la adición de una consulta a SQL Server como una dependencia de caché. Antes de esta mejora, los desarrolladores a menudo utilizaban archivos y disparadores de base de datos con el disparador escribiendo en el archivo cuando cambia una fuente de datos.

Usando el objeto Response

Al acceder al objeto Response.Cache, obtienes una instancia de la clase HttpCachePolicy. Esta clase contiene métodos para establecer encabezados HTTP específicos de la caché y controlar la caché de salida de la página ASP.NET. La siguiente lista contiene algunos de los métodos disponibles:

Qué es un DNS CNAME y cómo puede beneficiar a tu infraestructura
  • SetCacheability: establece el encabezado HTTP Cache-Control. El encabezado HTTP Cache-Control controla cómo se deben almacenar en caché los documentos en la red.
  • SetNoServerCaching: detiene la caché del servidor de origen para la respuesta actual.
  • SetVaryByCustom: especifica una cadena de texto personalizada para variar las respuestas de salida en caché.
  • SetSlidingExpiration: establece la expiración de la caché como deslizante. Cuando la expiración de la caché es deslizante, el encabezado HTTP Cache-Control se renovará con cada respuesta. Este modo de expiración es idéntico a la opción de configuración de IIS para agregar un encabezado de expiración a toda la salida establecida en función del tiempo actual.

Reutilización de datos a través de la caché

Cualquier aplicación web con un grupo de usuarios considerable debe utilizar la caché para reducir el número de llamadas a los datos y, por lo tanto, disminuir el tiempo de respuesta. ASP.NET proporciona acceso programático a la funcionalidad de la caché a través de la API de Caching. Te permite agregar fácilmente elementos a la caché, así como eliminar manualmente elementos o eliminar automáticamente elementos utilizando fechas de vencimiento. Otra característica te permite vincular el tiempo de vida de un objeto a un recurso externo como un archivo del sistema.

¿Te perdiste una columna?

Consulta el archivo de .NET y ponerte al día con las ediciones más recientes de la columna de Tony Patton.

En Newsmatic nos especializamos en tecnología de vanguardia, contamos con los artículos mas novedosos sobre Desarrollo, allí encontraras muchos artículos similares a Cómo utilizar la API de Caché en ASP.NET para mejorar el rendimiento de tu aplicación , tenemos lo ultimo en tecnología 2023.

Artículos Relacionados

Subir

Utilizamos cookies para mejorar su experiencia de navegación, mostrarle anuncios o contenidos personalizados y analizar nuestro tráfico. Al hacer clic en “Aceptar todo” usted da su consentimiento a nuestro uso de las cookies.