Compartilhar via


Armazenamento em cache no.NET Framework aplicativos

Cache permite que você armazene dados na memória para acesso rápido. Quando os dados são acessados novamente, os aplicativos podem obter os dados do cache em vez de recuperá-lo a partir da fonte original. Isso pode melhorar o desempenho e escalabilidade. Além disso, o cache torna os dados disponíveis quando a fonte de dados está temporariamente indisponível.

A.NET Framework fornece a funcionalidade de cache que você pode usar para melhorar o desempenho e escalabilidade de ambos os aplicativos do Windows cliente e servidor, incluindo ASP.NET.

Observação

No .NET Framework 3.5 e versões anteriores do ASP.NET proporcionou uma implementação de cache de memória na System.Web.Caching namespace.Nas versões anteriores da .NET Framework, cache estava disponível apenas na System.Web namespace e portanto necessária uma dependência no ASP.Classes NET.No.NET Framework 4, o System.Runtime.Caching namespace contém APIs que são projetadas para Web e todos os aplicativos não-Web.

Cache de dados

Você pode armazenar em cache informações usando as classes de System.Runtime.Caching namespace. As classes neste namespace de cache fornecem os seguintes recursos:

  • Tipos abstratos que fornecem a base para a criação de implementações de cache personalizado.

  • Uma implementação de cache de objeto concreto de na memória.

Base de abstrato da classe de armazenamento em cache (ObjectCache) define as seguintes tarefas de cache:

  • Criando e gerenciando entradas de cache.

  • Especificando as informações de expiração e remoção.

  • Disparo de eventos que são gerados em resposta às alterações nas entradas de cache.

O MemoryCache classe é uma implementação de cache de objeto em memória da ObjectCache classe. Você pode usar o MemoryCache classe para a maioria das tarefas de armazenamento em cache.

Observação

O MemoryCache classe é modelado no ASP.Objeto de cache NET é definido na System.Web.Caching namespace.Portanto, a cache lógica interna semelhante a lógica que foi fornecida em versões anteriores do ASP.NET.

Para obter um exemplo de como usar o cache em um aplicativo WPF, consulte Demonstra Passo a passo: Cache de dados de aplicativo em um aplicativo WPF.

Caching in ASP.NET Applications

O cache de classes de System.Runtime.Caching namespace fornecem a funcionalidade para o cache de dados no ASP.NET.

Observação

Se seu aplicativo utiliza o .NET Framework 3.5 ou anteriores, você deve usar as classes de armazenamento em cache são definidas na System.Web.Caching namespace.Para obter mais informações, consulte Visão geral do cache no ASP.NET.

Observação

Ao desenvolver novos aplicativos, é recomendável que você use o MemoryCache classe.A API que é fornecida na System.Runtime.Caching namespace é como a API que é fornecida na Cache namespace.Portanto, a API será familiar se você usou o cache em versões anteriores do ASP.NET.Para obter um exemplo de como usar o caching in ASP.NET, consulte Passo a passo: Armazenando dados de aplicativos em cache no ASP.NET.

Cache de saída

Manualmente dados de aplicativo de cache, você pode usar o a classeMemoryCache no ASP.NET. ASP.NET também suporta cache de saída, que armazena a saída gerada de respostas HTTP, controles e páginas na memória. Você pode configurar o cache de saída declarativamente em uma página ASP.NET Web page ou usando as configurações da Web. config de arquivos. Para obter mais informações, consulte Elemento de outputCache para armazenamento em cache (<>ASP\>.NETConfigurações Schema).

ASP.NET permite estender o cache de saída ao criar provedores personalizados de cache de saída. Usando provedores personalizados, você pode armazenar conteúdo em cache usando outros dispositivos de armazenamento, como discos, armazenamento em nuvem e mecanismos de cache distribuído. Para criar um provedor de cache de saída personalizada, você cria uma classe que deriva do OutputCacheProvider de classe e configurar o aplicativo para usar o provedor de cache de saída personalizada.

Cache de serviços REST do WCF

Para serviços REST do WCF, o.NET Framework permite que você possa aproveitar o cache de saída declarativa que está disponível no ASP.NET. Isso permite respostas em cache a partir de suas operações de serviço REST do WCF. Quando um usuário envia uma solicitação HTTP GET a um serviço que está configurado para armazenamento em cache, ASP.NET envia de volta a resposta em cache e o método de serviço não é chamado. Depois que o cache expire, na próxima vez que um usuário envia uma solicitação HTTP GET, o método de serviço é chamado e novamente é armazenada em cache a resposta.

A.NET Framework permite que você implementar o cache de HTTP GET condicional. Em cenários de resto, uma solicitação de HTTP GET condicional é freqüentemente usada pelos serviços para implementar o cache inteligente de HTTP conforme descrito no Especificação HTTP. Para obter mais informações, consulte Suporte ao cache para os serviços WCF da Web HTTP.

Estendendo o cache na.NET Framework

Armazenamento em cache na.NET Framework foi projetado para ser extensível. O ObjectCache classe permite que você criar uma implementação de cache personalizado. Essa classe fornece os membros que estão disponíveis para todos os aplicativos gerenciados, incluindo Windows Forms, Windows Presentation Foundation (WPF) e Windows comunicações Foundation (WCF). Você pode fazer isso para criar uma classe de cache que usa um mecanismo de armazenamento diferentes, ou se desejar que o controle granular sobre as operações de cache.

Para estender o cache, você pode fazer o seguinte:

Para obter mais informações, consulte a entrada extensível de cache de saída com o ASP.NET 4 (2010 do VS e.NET 4.0 Series) no blog de Scott Guthrie.

Consulte também

Tarefas

Demonstra Passo a passo: Cache de dados de aplicativo em um aplicativo WPF

Referência

ObjectCache

MemoryCache

Outros recursos

Passo a passo: Armazenando dados de aplicativos em cache no ASP.NET