我有一个基于MVC的网站,它使用Repository /服务模式进行数据访问。
服务被编写为在大多数应用程序(控制台,winform和web)中使用。目前,控制器直接与服务器通信。这限制了应用正确缓存的能力。
我看到我的选项如下:
>为web应用程序编写包装器,它实现了进行缓存的IWhatEverService。
>通过缓存每个Action的ViewData在每个控制器中应用缓存。
>不要担心数据缓存,只需为每个Action实现OutputCaching。
我可以看到每个的利弊。什么是/应该的最佳实践是使用Repository /服务进行缓存
解决方法
最简单的方法是在您的存储库提供程序中处理缓存。这样,您不必更改其余应用程序中的任何代码;它将忽略数据是从缓存而不是存储库提供的。
所以,我创建一个接口,控制器用来与后端通信,在实现这里我将添加缓存逻辑。把它包装在一个漂亮的弓与一些DI,你的应用程序将设置为容易测试。