【发布时间】:2010-08-04 07:55:53
【问题描述】:
我们即将开始一个新项目。它将是一组具有大量共享组件的 Web 应用程序。它每天将有多达 50.000 个独立用户访问,它将是某种管理面板。所有项目都将在 asp.net mvc 2 中构建,它们都将在一个 SQL Server 数据库上运行。
在我找到ormbattle.net 网站之前,我们一直非常喜欢 NHibernate,与其他映射器相比,NHibernate 的性能测试看起来很差。在这个摘要中,我发现了我以前不知道的库。 BLToolkit 看起来很有前途,但有利也有弊。
BLToolkit 社区支持薄弱,示例很少,而且我真的没有听说有人在大型项目中使用过它。而且它非常轻量级,这意味着它不支持多对多关系、延迟加载和缓存...
另一方面,性能真的很棒,而且它对 Linq 的支持也很好。
在这种情况下,我会选择其中一种方式:
- 不要太在意性能,使用 Nhibernate 或 EF 或只使用 L2SQL(哪个更好?)并使用具有更有用功能的 ORMapper。
- 专注于出色的性能,并基于此 BLToolkit 构建一些自己的解决方案,主要将此库用作一个很好的基础。如果我将在 MVC 中使用动作缓存,我可能不需要缓存。可能我不需要关联,只要我可以使用连接表达式编写好的 LINQ 查询。可能我不需要延迟加载,因为我会仔细构建从数据库中获取所需的所有方法。
我不是在寻找对这种情况下的判决。我要求进行一些讨论,指出一些我没有考虑过的问题,或者只是与我分享一些关于不仅使用 BLToolkit 还使用其他映射器的经验。
【问题讨论】:
-
刚刚在已接受的答案中添加了关于 NH3 alpha1 中 LINQ 的注释。
-
您开始使用 BLToolkit 了吗?我也找到了这个项目,并鼓励我给它一个机会:)
-
是的..我们正在我们的一个项目中使用它...我对此没有特别的问题,Linq支持非常好,所以使用没有问题...跨度>
标签: c# asp.net-mvc-2 orm