【发布时间】:2009-11-04 21:58:25
【问题描述】:
我正在开发一个 CMS 作为我的爱好项目。因为我没有为此付费,所以时间不是很重要,我渴望制作一个架构良好的系统。
我有一组负责主要逻辑的业务类,它们通过接口从数据库中获取数据,并且可以从配置中设置数据提供者(应该实现接口)。
目前我使用 LINQ to SQL 作为我的数据访问层,但是我对这个主题的阅读越多,我就越相信我应该使用更高级的 ORM,因为 LINQ to SQL 不支持某些东西对应用程序的整体性能非常有利。例如,缓存和持久性。 (例如,我读到 NHibernate 仅在必要时咨询数据库,否则它只是从其缓存中获取数据。 - 这很好,因为平均而言,一个网站几天不会获得新内容,所以而不是在每次请求时都从数据库中读取会浪费性能,从缓存中提供服务就可以了。)
我正在考虑一些选择,想知道我应该怎么做。
- 为我的业务类编写我自己的持久性逻辑,并继续使用 LINQ to SQL。
- 直接使用 NHibernate,或通过 Castle ActiveRecord 或 Fluent NHibernate 使用
- 使用其他 ORM
我最喜欢的选择是第二个,因为 NHibernate 比我需要的更健壮,而 ActiveRecord 似乎隐藏了大部分复杂性。 (顺便说一句,我也打算用温莎城堡。)
唯一的问题是,我找不到有关这些工具性能的任何信息。我花了几个小时在谷歌上搜索(和 binging(我也在查看这个网站)),找到了很多文章和博客文章,但没有一篇提到性能。
这会比当前的解决方案更好,还是我应该为任务使用完全不同的东西?
提前致谢!
【问题讨论】: