2009-02-09 81 views
9

我在使用ASP.NET MVC框架方面相当新颖,希望在缓存我的MVC Web应用程序的各个部分时能找到一些有关最佳实践的帮助。我知道堆栈溢出使用MVC和一些非常自由的真棒缓存技术,其MILES速度比我的应用程序快,即使在本地运行。在ASP.NET MVC框架中缓存

我有几个问题。

  1. 缓存如何实际工作,以及如何“启用”它,以及有哪些不同的选项。什么是最好的缓存使用?

  2. 我的应用程序有很多数据库事务,列表定期更改。我很担心页面刷新的时间,用户没有得到最新版本的数据。什么是在Web应用程序速度和显示“最新”数据之间取得平衡的最佳方式?你们在处理这个问题时发现了哪些最佳做法?

  3. 如何使用不同的缓存设置缓存不同的部分(我假设为视图)?我认为它可以用子控制器完成,但我有NFI如何去做这件事。

  4. 我正在使用Castle.Windor集成到控制器,我不确定这是否会改变任何东西。

  5. 任何其他最好的做法注意事项要小心/小心将不胜感激。

回答

3

你可能想看看Phil Haack post的一些甜甜圈缓存。他是ASP.NET MVC的参考:)

+0

还有Stephen Walther和ASP.NET MVC上的其他人。这不仅仅是被嘲笑。 – 2009-02-21 12:21:28

1

您可以使用OutputCache属性轻松缓存视图。我使用nHibernate缓存机制缓存任何不经常更新的列表。

2

从“最佳实践”的角度来看,您需要考虑在使用缓存的任何应用程序中必须考虑的相同事情。

  • 流量是否足够高以利于缓存?
  • 特定数据段多长时间一次?时效性至关重要?
  • 我是否拥有数据访问层?如果是这样,我可以通过实际更改数据来触发缓存中的刷新,并避免基于时间的到期?

这个名单还在继续。