Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
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 obtener los datos de la memoria caché en lugar de recuperarlos del origen original. Esto puede mejorar el rendimiento y la escalabilidad. Además, el almacenamiento en caché hace que los datos estén disponibles cuando el origen de datos no esté disponible temporalmente.
.NET Framework proporciona funcionalidad de almacenamiento en caché que puede usar para mejorar el rendimiento y la escalabilidad de las aplicaciones cliente y servidor de Windows, incluidos los ASP.NET.
Nota:
En .NET Framework 3.5 y versiones anteriores, ASP.NET proporcionó una implementación de caché en memoria en el System.Web.Caching espacio de nombres. En versiones anteriores de .NET Framework, el almacenamiento en caché solo estaba disponible en el System.Web espacio de nombres y, por tanto, requería una dependencia de clases de ASP.NET. En .NET Framework 4, el System.Runtime.Caching espacio de nombres contiene API diseñadas para aplicaciones web y no web.
Almacenar datos en caché
Puede almacenar en caché la información mediante clases en el System.Runtime.Caching espacio de nombres . 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.
Implementación concreta de la caché de objetos en memoria.
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é.
Especificar información de expiración y expulsión.
Desencadenamiento de eventos que se generan en respuesta a los cambios en las entradas de caché.
La MemoryCache clase es una implementación de caché de objetos en memoria de la ObjectCache clase . Puede usar la clase para la mayoría de las MemoryCache tareas de almacenamiento en caché.
Nota:
La MemoryCache clase se modela en el objeto de caché ASP.NET que se define en el System.Web.Caching espacio de nombres. Por lo tanto, la lógica de almacenamiento en caché interna es similar a la lógica que se proporcionó en versiones anteriores de ASP.NET.
Para obtener un ejemplo de cómo usar para almacenar en caché en una aplicación WPF, vea Tutorial: Almacenamiento en caché de datos de aplicación en una aplicación WPF.
Almacenamiento en caché en aplicaciones de ASP.NET
Las clases de almacenamiento en caché del System.Runtime.Caching espacio de nombres proporcionan funcionalidad para almacenar datos en caché en ASP.NET.
Nota:
Si la aplicación tiene como destino .NET Framework 3.5 o versiones anteriores, debe usar las clases de almacenamiento en caché definidas en el System.Web.Caching espacio de nombres. Para obtener más información, consulte ASP.NET Introducción al almacenamiento en caché.
Nota:
Al desarrollar nuevas aplicaciones, se recomienda usar la MemoryCache clase . La API que se proporciona en el System.Runtime.Caching espacio de nombres es como la API que se proporciona en el Cache espacio de nombres. Por lo tanto, la API se familiarizará si usó el almacenamiento en caché en versiones anteriores de ASP.NET. Para obtener un ejemplo de cómo usar el almacenamiento en caché en ASP.NET aplicaciones, consulte Tutorial: Almacenamiento en caché de datos de aplicación en ASP.NET.
Almacenamiento en caché de resultados
Para almacenar en caché manualmente los datos de la aplicación, puede usar la MemoryCache clase en ASP.NET. ASP.NET también admite el almacenamiento en caché de salida, que almacena la salida generada de páginas, controles y respuestas HTTP en memoria. Puede configurar el almacenamiento en caché de salida mediante declaración en una página web de ASP.NET o mediante la configuración del archivo Web.config. Para obtener más información, consulte elemento outputCache para el almacenamiento en caché (esquema de configuración de ASP.NET).
ASP.NET permite ampliar el almacenamiento en caché de salida mediante la creación de proveedores personalizados de caché de salida. Mediante el uso de proveedores personalizados, puede almacenar contenido almacenado en caché mediante 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 OutputCacheProvider clase y configure la aplicación para que use el proveedor de caché de salida personalizado.
Almacenamiento en caché en servicios REST de WCF
En el caso de los servicios REST de WCF, .NET Framework le permite aprovechar el almacenamiento en caché de salida declarativo que está disponible en ASP.NET. Esto le permite almacenar en caché las respuestas de las operaciones del servicio REST de WCF. Cuando un usuario envía una solicitud HTTP GET a un servicio configurado para el almacenamiento en caché, ASP.NET devuelve la respuesta almacenada en caché y no se llama al método de servicio. Después de que expire la memoria caché, la próxima vez que un usuario envíe una solicitud HTTP GET, se llama al método de servicio y la respuesta se vuelve a almacenar en caché.
.NET Framework también le permite implementar el almacenamiento en caché HTTP GET condicional. En escenarios REST, los servicios suelen usar una solicitud HTTP GET condicional para implementar el almacenamiento en caché HTTP inteligente, tal como se describe en la especificación HTTP. Para obtener más información, vea Compatibilidad de almacenamiento en caché para servicios HTTP web de WCF.
Extensión del almacenamiento en caché en .NET Framework
El almacenamiento en caché en .NET Framework está diseñado para ser extensible. La ObjectCache clase permite crear una implementación de caché personalizada. Esta clase proporciona miembros que están disponibles para todas las aplicaciones administradas, incluidos Windows Forms, Windows Presentation Foundation (WPF) y Windows Communications Foundation (WCF). Puede hacerlo para crear una clase de caché que use un mecanismo de almacenamiento diferente o si desea un control pormenorizado sobre las operaciones de caché.
Para ampliar el almacenamiento en caché, puede hacer lo siguiente:
Cree una clase personalizada que derive de la ObjectCache clase y proporcione una implementación de caché personalizada en la clase derivada.
Cree una clase que derive de MemoryCache la clase y personalice o extienda la clase derivada. Para obtener un ejemplo de cómo hacerlo, consulte Almacenamiento en caché de datos de la aplicación mediante el uso de varios objetos de caché en una aplicación de ASP.NET.
Cree una clase que derive de la OutputCacheProvider clase y configure la aplicación para que use el proveedor de caché de salida personalizado.
Para obtener más información, consulte la entrada Almacenamiento en caché de salida extensible con ASP.NET 4 (VS 2010 y la serie .NET Framework 4.0) en el blog de Scott Guthrie.