【问题标题】:Linq to sql VS Entity Framework VD NHibernate performance in an ASP.NET 3.5 Mashup style ApplicationLinq to sql VS Entity Framework VD NHibernate 在 ASP.NET 3.5 Mashup 样式应用程序中的性能
【发布时间】:2010-01-18 09:24:04
【问题描述】:
我的任务是构建一个 web 2.0 风格的 mashup 应用程序,该应用程序消耗大量的第三方网络服务,如 youtube 和 twitter。还有许多自定义功能将使用 ASP.NET 3.5 和 SQL Server 2008 构建。现在我正在寻找适合我需要的 ORM。从性能和易用性的角度来看,任何人都可以向我推荐适合这种 Web 应用程序的 ORM 吗?
【问题讨论】:
标签:
asp.net
entity-framework
nhibernate
linq-to-sql
【解决方案1】:
从性能的角度来看,只有精心设计的 ORM 才会成为您的瓶颈。进出数据库的数据库或网络流量更有可能成为性能瓶颈。在选择 ORM 时,实际上没有必要权衡性能。虽然创建简单的 ORM 性能比较很简单,但创建真实世界的 ORM 性能比较要困难得多,但欢迎您尝试。
ORM 也不是为了“易于使用”而构建的。它们旨在隐藏对象/关系不匹配。主要的 ORM 都在隐藏对象/关系不匹配方面做了充分的工作。易用性是全面的标准,除非功能集有所不同。
主要 ORM 之间最大的区别在于功能集。有些功能很少,而有些功能却很多。成本也可能是一个差异化因素,尽管有很多不错的“免费”替代品。
对于 .NET 3.5,NHibernate 显然是大多数情况下的最佳选择。 LinqToSql 的功能很差,而 Entity Framework 1.0 / 3.5 在将产品推向市场的同时进行了一些非常糟糕的设计折衷widely panned。还有其他合适的 .NET ORM,但同样,它们在大多数情况下都无法与 NHibernate 有效竞争。
更多关于 .NET ORM 的观点可以从这个问题中找到:
NHibernate, Entity Framework, active records or linq2sql