Armazenando Objetos de Dados em Cache ao Usar Padrão de Repositório / Serviço e MVC

Eu tenho um site baseado em MVC, que está usando um padrão de repositório / serviço para acesso a dados. Os Serviços são escritos para uso na maioria dos aplicativos (console, winform e web). Atualmente, os controladores se comunicam diretamente com os serviços. Isso limitou a capacidade de aplicar o armazenamento em cache adequado.

Eu vejo minhas opções como as seguintes:

Escreva um wrapper para o aplicativo da web, que implementa o IWhatEverService, que faz o cache.Aplique o armazenamento em cache em cada controlador, armazenando em cache o ViewData de cada Ação.Não se preocupe com o cache de dados e apenas implemente o OutputCaching para cada ação.

Eu posso ver os prós e contras de cada um. Qual é a melhor prática para o armazenamento em cache com o Repositório / Serviço?

questionAnswers(4)

yourAnswerToTheQuestion