Asp.Net MVC Extensible Donut Caching traz cache de rosca para asp.net MVC 3 e posterior. O código permite que você cache toda a sua página, além de uma ou mais ações html que podem ser executadas todas as solicitações. Perfeito para conteúdo específico do usuário.
A melhor maneira de adicionar cache de donut ao seu projeto MVC é usar o pacote Nuget. No Visual Studio, selecione Ferramentas | Library Package Manager e, em seguida, escolha o Console do Gerenciador de Pacotes ou gerencie pacotes NUGET. Através do console, basta digitar MVCDONUTCACHING MVCNUTCACH e pressionar o retorno. A partir da GUI, basta pesquisar mvcdonutcaching e clique no botão Instalar.
O pacote adiciona várias sobrecargas ao HTML.Action HTML Helper interno. O parâmetro extra em cada sobrecarga é nomeado excludeFromParentCache . Defina isso como true para qualquer ação que não deve ser armazenada em cache ou deve ter uma duração de cache diferente do restante da página.
@Html . Action ( "Login" , "Account" , true )O pacote também inclui um DonutOutputCacheattribute a ser usado no lugar do interruptor de saída de saída interno. Esse atributo é normalmente colocado em todas as ações do controlador que precisam ser armazenadas em cache.
Você pode especificar uma duração fixa:
[ DonutOutputCache ( Duration = "300" ) ]
public ActionResult Index ( )
{
return View ( ) ;
}Ou use um perfil de cache:
[ DonutOutputCache ( CacheProfile = "FiveMins" ) ]
public ActionResult Index ( )
{
return View ( ) ;
}Se você estiver usando perfis de cache, configure os perfis no web.config. Adicione o seguinte no elemento System.Web:
< caching >
< outputCacheSettings >
< outputCacheProfiles >
< add name = " FiveMins " duration = " 300 " varyByParam = " * " />
</ outputCacheProfiles >
</ outputCacheSettings >
</ caching >Você também pode configurar o cache de saída para usar um provedor personalizado:
< caching >
< outputCache defaultProvider = " DistributedCacheProvider " >
< providers >
< add name = " DistributedCacheProvider " type = " DevTrends.Example.DistributedCacheProvider " />
</ providers >
</ outputCache >
</ caching >Observe que um provedor personalizado não está incluído neste projeto, mas você pode escrever um de maneira bastante fácil pelo Subclassing System.Web.Caching.OutputCacheProvider . Várias implementações também estão disponíveis na web.
Um guia abrangente para o MVC Extensible Donut Caching já está disponível no blog Devtrends.