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).