Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
O 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á-los da fonte original. Isso pode melhorar o desempenho e a escalabilidade. Além disso, o cache disponibiliza dados quando a fonte de dados está temporariamente indisponível.
O .NET Framework fornece funcionalidade de cache que você pode usar para melhorar o desempenho e a escalabilidade de aplicativos cliente e servidor do Windows, incluindo ASP.NET.
Observação
No .NET Framework 3.5 e versões anteriores, o ASP.NET forneceu uma implementação de cache na memória no System.Web.Caching namespace. Nas versões anteriores do .NET Framework, o cache estava disponível apenas no namespace System.Web e, portanto, exigia uma dependência de classes ASP.NET. No .NET Framework 4, o System.Runtime.Caching namespace contém APIs projetadas para aplicativos Web e não Web.
Armazenando dados em cache
Você pode armazenar informações em cache usando classes no System.Runtime.Caching namespace. As classes de cache neste namespace fornecem os seguintes recursos:
Tipos abstratos que fornecem a base para a criação de implementações de cache personalizadas.
Uma implementação concreta de cache de objeto na memória.
A classe de cache base abstrata (ObjectCache) define as seguintes tarefas de cache:
Criando e gerenciando entradas de cache.
Especificação de informações de expiração e remoção.
Acionando eventos que são gerados em resposta a mudanças nas entradas de cache.
A MemoryCache classe é uma implementação de cache de objeto na memória da ObjectCache classe. Você pode usar a classe MemoryCache para a maioria das tarefas de cache.
Observação
A MemoryCache classe é modelada no objeto de cache ASP.NET definido no System.Web.Caching namespace. Portanto, a lógica interna de cache semelhante à lógica fornecida em versões anteriores do ASP.NET.
Para obter um exemplo de como usar para armazenar em cache em um aplicativo WPF, consulte Passo a passo: Armazenando dados do aplicativo em cache em um aplicativo WPF.
Cache em aplicativos ASP.NET
As classes de cache no System.Runtime.Caching namespace fornecem funcionalidade para armazenar dados em cache em ASP.NET.
Observação
Se o aplicativo for direcionado ao .NET Framework 3.5 ou anterior, você deverá usar as classes de cache definidas no System.Web.Caching namespace. Para obter mais informações, consulte ASP.NET Visão geral do cache.
Observação
Ao desenvolver novos aplicativos, recomendamos que você use a MemoryCache classe. A API fornecida no System.Runtime.Caching namespace é como a API fornecida no Cache namespace. Portanto, a API será familiar se você tiver usado o cache em versões anteriores do ASP.NET. Para obter um exemplo de como usar o cache em aplicativos ASP.NET, consulte Passo a passo: Armazenando dados do aplicativo em cache em ASP.NET.
Cache de saída
Para armazenar dados do aplicativo em cache manualmente, você pode usar a MemoryCache classe em ASP.NET. ASP.NET também dá suporte ao cache de saída, que armazena a saída gerada de páginas, controles e respostas HTTP na memória. Você pode configurar o cache de saída declarativamente em uma página da Web ASP.NET ou usando configurações no arquivo Web.config. Para obter mais informações, consulte o elemento outputCache para cache (esquema de configurações de ASP.NET).
ASP.NET permite estender o cache de saída criando provedores personalizados de cache de saída. Usando provedores personalizados, você pode armazenar conteúdo armazenado em cache usando outros dispositivos de armazenamento, como discos, armazenamento em nuvem e mecanismos de cache distribuídos. Para criar um provedor de cache de saída personalizado, crie uma classe derivada da OutputCacheProvider classe e configure o aplicativo para usar o provedor de cache de saída personalizado.
Cache nos Serviços REST do WCF
Para serviços REST do WCF, o .NET Framework permite que você aproveite o cache de saída declarativa disponível em ASP.NET. Isso permite que você armazene respostas em cache de suas operações de serviço REST do WCF. Quando um usuário envia uma solicitação HTTP GET para um serviço configurado para cache, ASP.NET envia de volta a resposta armazenada em cache e o método de serviço não é chamado. Depois que o cache expirar, na próxima vez que um usuário enviar uma solicitação HTTP GET, o método de serviço será chamado e a resposta será novamente armazenada em cache.
O .NET Framework também permite implementar o cache HTTP GET condicional. Em cenários REST, uma solicitação HTTP GET condicional geralmente é usada por serviços para implementar o cache HTTP inteligente, conforme descrito na Especificação HTTP. Para obter mais informações, consulte Suporte de cache para serviços HTTP Web do WCF.
Estendendo o cache no .NET Framework
O cache no .NET Framework foi projetado para ser extensível. A ObjectCache classe permite que você crie uma implementação de cache personalizada. Essa classe fornece membros disponíveis para todos os aplicativos gerenciados, incluindo Windows Forms, Windows Presentation Foundation (WPF) e Windows Communications Foundation (WCF). Você pode fazer isso para criar uma classe de cache que usa um mecanismo de armazenamento diferente ou se quiser um controle granular sobre operações de cache.
Para estender o cache, você pode fazer o seguinte:
Crie uma classe personalizada que deriva da ObjectCache classe e forneça uma implementação de cache personalizada na classe derivada.
Crie uma classe que deriva da MemoryCache classe e personalize ou estenda a classe derivada. Para obter um exemplo de como fazer isso, consulte O cache de dados do aplicativo usando vários objetos de cache em um aplicativo ASP.NET.
Crie uma classe derivada da OutputCacheProvider classe e configure o aplicativo para usar o provedor de cache de saída personalizado.
Para obter mais informações, consulte a entrada Cache extensível de saída com ASP.NET 4 (VS 2010 e .NET Framework 4.0 Series) no blog de Scott Guthrie.