Este artigo tem por objetivo abordar o uso da tag cache em Views do ASP.NET Core 1.0.

Introdução

O mecanismo de cache que integra o ASP.NET Core 1.0 passou por diversas mudanças em relação às versões anteriores do framework MVC. Agora também é possível a utilização de uma tag chamada cache no código de Views, de maneira que porções pré-processadas destas estruturas possam ser reaproveitadas dentro de um intervalo de tempo específico.

Um exemplo da tag cache será demonstrado nas próximas seções, através da implementação de uma aplicação MVC.

Implementando a aplicação de testes

Para implementar o projeto descrito neste artigo foram utilizados como recursos:
  • O Microsoft Visual Studio Community 2015 Update 3 como IDE de desenvolvimento;
  • O .NET Core 1.0.1;
  • O ASP.NET Core 1.0.1.
Como primeiro passo será gerado um projeto do tipo ASP.NET Core Web Application (.NET Core) chamado TesteTagCache:



Na listagem a seguir está o trecho de código que deverá ser incluído no arquivo Index.cshtml. Este ajuste tem por finalidade demonstrar quais partes da View ficarão ou não armazenadas em cache:
  • Um primeiro bloco será atualizado toda vez que uma requisição HTTP for direcionada à Action Index de HomeController;
  • Já um segundo trecho de código contido dentro da tag cache será vinculado ao cache da aplicação, de forma que seu conteúdo permaneça armazenado para reuso durante 30 segundos (valor este indicado no atributo expires-after e que independe de eventuais acessos durante o período especificado).
...
 
<h2>Teste de utilização da tag cache</h2>
<h3>
    <b>Hora do último acesso:</b>
    @DateTime.Now.ToString("HH:mm:ss")
</h3>
<cache expires-after="@TimeSpan.FromSeconds(30)">
    <h3>
        <b>Hora de última atualização do cache:</b>
        @DateTime.Now.ToString("HH:mm:ss")
    </h3>
</cache>

Testes

Na próxima imagem está a tela inicial da aplicação TesteTagCache (em vermelho foi destacada a porção de HTML que ficará armazenada em cache):



Após alguns segundos um refresh na tela inicial fará com que a Action Index seja acionada novamente. No entanto, a figura a seguir mostra que o trecho delimitado pela tag cache permaneceu inalterado, ao passo que o restante da View foi novamente processado:



Finalmente, após um tempo superior a 30 segundos, um refresh da página inicial fará com que o trecho contido dentro da tag cache seja atualizado:

Conclusão

A tag cache é mais um dos novos recursos para a manipulação de cache que integram o ASP.NET Core 1.0. Permitindo que partes de uma View sejam armazenadas temporariamente, tal recurso representa uma alternativa adicional para uso em soluções Web que exijam uma melhor performance no processamento de requisições.

Referências

ASP.NET Core 1.0 - Documentation
http://docs.asp.net/en/latest/