Almacenamiento en caché en aplicaciones .NET Framework
Artículo
El almacenamiento en caché permite almacenar datos en memoria para un acceso rápido. Cuando se vuelve a acceder a los datos, las aplicaciones pueden obtenerlos de la memoria caché en lugar de recuperarlos de la fuente original. Esto puede mejorar el rendimiento y la escalabilidad. Además, el almacenamiento en caché permite que los datos estén disponibles cuando el origen de datos no está disponible temporalmente.
.NET Framework proporciona la funcionalidad de almacenamiento en caché que puede usar para mejorar el rendimiento y la escalabilidad de las aplicaciones de cliente y servidor de Windows, incluido ASP.NET.
Nota
En .NET Framework 3.5 y versiones anteriores, ASP.NET proporciona una implementación de caché en memoria en el espacio de nombres System.Web.Caching. En versiones anteriores de .NET Framework, el almacenamiento en caché solo estaba disponible en el espacio de nombres System.Web y, por tanto, exigía una dependencia de las clases de ASP.NET. En .NET Framework 4, el espacio de nombres System.Runtime.Caching contiene API diseñadas para aplicaciones web y no web.
Almacenar datos en caché
Puede almacenar información en caché mediante clases del espacio de nombres System.Runtime.Caching. Las clases de almacenamiento en caché de este espacio de nombres proporcionan las siguientes características:
Tipos abstractos que proporcionan la base para crear implementaciones de caché personalizadas.
Una implementación de caché de objetos en memoria concreta.
La clase de almacenamiento en caché base abstracta (ObjectCache) define las siguientes tareas de almacenamiento en caché:
Creación y administración de entradas de caché.
Especificación de información de expiración y expulsión.
Desencadenamiento de eventos producidos en respuesta a cambios en las entradas de caché.
La clase MemoryCache es una implementación de caché de objetos en memoria de la clase ObjectCache. Puede usar la clase MemoryCache para la mayoría de las tareas de almacenamiento en caché.
Nota
La clase MemoryCache se ha basado en el objeto de caché ASP.NET definido en el espacio de nombres System.Web.Caching. Por lo tanto, la lógica interna de almacenamiento en caché es similar a la lógica proporcionada en versiones anteriores de ASP.NET.
Las clases de almacenamiento en caché del espacio de nombres System.Runtime.Caching proporcionan funcionalidad para almacenar en caché datos en ASP.NET.
Al desarrollar nuevas aplicaciones, se recomienda usar la clase MemoryCache. La API proporcionada en el espacio de nombres System.Runtime.Caching es como la API que se proporciona en el espacio de nombres Cache. Por lo tanto, la API le resultará familiar si ha usado el almacenamiento en caché de versiones anteriores de ASP.NET. Para obtener un ejemplo de uso del almacenamiento en caché en aplicaciones ASP.NET, vea Tutorial: Almacenar en caché datos de la aplicación en ASP.NET.
Almacenamiento en caché de resultados
Para almacenar en caché de forma manual datos de aplicación, puede usar la clase MemoryCache de ASP.NET. ASP.NET también admite el almacenamiento en caché de resultados, lo que almacena el resultado generado de páginas, controles y respuestas HTTP en memoria. Puede configurar el almacenamiento en caché de resultados de forma declarativa en una página web de ASP.NET o mediante los valores del archivo Web.config. Para más información, vea Elemento outputCache para el almacenamiento en caché (Esquema de configuración de ASP.NET).
ASP.NET permite extender el almacenamiento en caché de resultados mediante la creación de proveedores de caché de salida personalizados. Con proveedores personalizados, puede almacenar contenido de la caché con otros dispositivos de almacenamiento, como discos, almacenamiento en la nube y motores de caché distribuida. Para crear un proveedor de caché de salida personalizado, cree una clase que derive de la clase OutputCacheProvider y configure la aplicación de modo que use el proveedor de caché de salida personalizado.
Almacenamiento en caché en servicios WCF REST
En los servicios WCF REST, .NET Framework permite aprovechar el almacenamiento en caché de resultados declarativo que está disponible en ASP.NET. Esto permite almacenar en caché las respuestas de las operaciones del servicio WCF REST. Cuando un usuario envía una solicitud HTTP GET a un servicio que está configurado para el almacenamiento en caché, ASP.NET devuelve la respuesta almacenada en caché y no se llama al método del servicio. Cuando la memoria caché expira, la siguiente vez que un usuario envía una solicitud HTTP GET, se llama al método del servicio y la respuesta se vuelve a almacenar en caché.
Extender el almacenamiento en caché en .NET Framework
El almacenamiento en caché en .NET Framework está diseñado para ser extensible. La clase ObjectCache permite crear una implementación de caché personalizada. Esta clase proporciona miembros que están disponibles para todas las aplicaciones administradas, como Windows Forms, Windows Presentation Foundation (WPF) y Windows Communications Foundation (WCF). Puede hacer esto para crear una clase de caché que use otro mecanismo de almacenamiento o si quiere un control detallado sobre las operaciones de la caché.
Para extender el almacenamiento en caché, puede hacer lo siguiente:
Cree una clase personalizada que derive de la clase ObjectCache y luego proporcione una implementación de caché personalizada en la clase derivada.
El origen de este contenido se puede encontrar en GitHub, donde también puede crear y revisar problemas y solicitudes de incorporación de cambios. Para más información, consulte nuestra guía para colaboradores.
Comentarios de .NET
.NET es un proyecto de código abierto. Seleccione un vínculo para proporcionar comentarios:
Únase a la serie de reuniones para crear soluciones de inteligencia artificial escalables basadas en casos de uso reales con compañeros desarrolladores y expertos.
En este módulo, obtendrá información sobre las memorias caché en una aplicación nativa de nube de .NET Aspire y cómo usarlas para optimizar el rendimiento de los microservicios.