Output cache no .Net MVC

Hoje aprendi: Possibilidades com output cache do .Net MVC


O OutputCache, na verdade já utilizei, mas como nunca escrevi sobre e recentemente utilizei no TCC da pós, resolvi escrever.

OutputCache é uma classe do namespace System.Web.Mvc (sim, não podemos usar na Web Api, mas nada que isso não resolva).  Basicamente a proposta é permitir que possamos configurar um cache para um determinado Action da nossa Controller. 

Mais ou menos isso:









Entre as diferentes configurações que podemos usar está o Duration, que recebe o valor da duração do cache em segundos  (após esse tempo o Action executa novamente e atualiza novamente o cache) ou o Location que recebe um enumerador com algumas configurações para indicar onde pretendemos gerar o cache (Client, Server, None, etc...). Existem outras configurações, mas para aplicações corporativas, é basicamente isso que usamos.

Quando habilitamos o cache em uma Action, com as configurações da imagem apresentada no post, estamos garantindo que dentro de 3600 segundos (uma hora), o código que está dentro do "{" e "}" não será reprocessado para retornar ao client. Quando a requisição chegar (e o cache estiver valido), o cliente imediatamente receberá os dados armazenados no cache por alguma requisição anterior (dentro do período de 3600 segundos).