5

我来自 LAMP 世界,那里普遍存在“缓存一切”的心态。一切都放在内存缓存中。

我正在使用 ASP.NET MVC 和 SQL Server 开始一个新项目。我可能会使用 LINQ to SQL 或实体框架。我现在是否需要为缓存做出设计决策,或者如果有必要开始使用 Velocity 是否足够容易?为了清楚起见,我说的是 Microsoft 的 Velocity 缓存,而不是 Apache Velocity 模板引擎。

我希望我暂时可以忽略缓存,因为学习 C#、ASP.NET MVC、LINQ、IIS、SQL Server 并精通 VS 让我的盘子满满当当。

4

4 回答 4

6

Stephen Walther 有一篇关于如何做到这一点的精彩文章

ASP.NET MVC 技巧 #39 – 使用 Velocity 分布式缓存

于 2009-01-24T18:22:07.253 回答
3

dswatik 提供了一个很好的链接来说明如何使用它。

我建议在您的存储库/服务层的某处添加此功能,以减轻应用程序的负担并保持 DRY 原则。

于 2009-01-25T17:47:26.940 回答
1

@dswatic:非常感谢。看起来我以后可以以最小的痛苦添加缓存。这是来自该网站的一个重要警告:

“如果您使用对象关系设计器生成 LINQ to SQL 类,那么您的 LINQ to SQL 类将无法序列化。为了解决这个问题,我手动构建了 LINQ to SQL 类。”

Velocity 只能缓存可序列化的对象。

再次感谢。

于 2009-01-25T07:05:18.680 回答
1

所选答案适用于 Velocity CTP1。这是最新的Velocity Programming Guide的 MSDN 链接。

至于您关于设计决策的其他问题,Chad Moran 将责任放在存储库层的建议非常好。然后,我会考虑使用类似于此处描述的技术添加对 linq 缓存的支持:http: //petemontgomery.wordpress.com/2008/08/07/caching-the-results-of-linq-queries/

您显然必须编写一个使用 Velocity 而不是 ASP.NET 缓存的实现......但实际上,除非您有统计数据证明您需要像 Velocity 这样的东西,否则您可能会坚持使用常规缓存,直到它成为问题. 如果您听听 Joel Spolsky 关于 stackoverflow 的一些演讲,您会发现两个盒子(一个带有 iis,另一个带有 sql server)可以处理非常大的容量。

于 2009-05-13T13:08:59.610 回答