ORM市场分析

Posted

技术标签:

【中文标题】ORM市场分析【英文标题】:ORM market analysis 【发布时间】:2010-04-12 07:48:00 【问题描述】:

我希望了解您使用流行的 ORM 工具的经验,例如 NHibernate、LLBLGen、EF、S2Q、Genom-e、LightSpeed、DataObjects.NET、OpenAccess ......

根据我的经验: - Genom-e 安静地提供 Linq 和性能、开发支持 - EF 缺少一些关键特性,比如延迟加载、Poco 支持、pers.ignorance……但在 4.o 中它可能已经克服了…… - DataObjects.Net 到目前为止很好,虽然我发现了一些错误 - NHibernate 陡峭的学习曲线,没有 100% 的 Linq 支持(如在 Genom-e 和 DataObjects.Net 中),但非常支持、可扩展和成熟

【问题讨论】:

欢迎来到 *** @bonefisher。应在选中“社区 wiki”复选框的情况下询问投票类型的问题。请编辑您的问题。 感谢您的欢迎和建议 ;) 【参考方案1】:

http://www.ormbattle.net/

这是目前你能找到的最好的比较。

根据我的经验,顺便说一句:如果您对 LINQ 感兴趣,请远离 NHibernate 当前版本 - 使用开发分支。 LINQ 支持 mvoes 进入主 DLL 并且 - 更重要的是 - 比当前版本中有限的附加方法更好和完整。

【讨论】:

ormbattle.net 并不是评估不同 Orm 工具的好方法,因为基准测试在生产代码中有点用处。 取决于。至少它还为您提供了功能。例如,您可以查看例如 LINQ 功能的实现是好是坏。许多基准测试都是功能测试。 在 orm 战斗中,最好的工具是项目,您需要在其中为对象的属性编写所有必需的 SQL。你认为它是一个好的 ORM 吗? @Sli: 取决于你想要做什么.. DO.Net 是 DDD 驱动或“代码优先”驱动的,因此将它用于某些 Legacy DB 可能不适合..【参考方案2】: ORM Meter Should I ever use Entity Framework 4.0? NHibernate – The Good, the Bad, and the Ugly, that it gets!

(来源:ormeter.net)

【讨论】:

谢谢你的图表,但我几周前已经看过这个网站了。我想知道个人经验,而不是综合基准的一些诊断 那行不通。说真的 - 个人经验对个人项目需求非常个人化。有些人可以完美地使用 LINQ,但大多数时候如果你问它背后的原因是因为他们不知道 ORM 到底能做什么,并且非常乐意提供比蹩脚的手写内容更好的东西。 您仍然可以获得良好的 ORM 体验(无错误、良好的功能、支持)和糟糕的体验(太多错误、糟糕的功能、延迟(甚至没有!)来自公司的支持/community.. 所以恕我直言,我认为这是一个有效的问题。 只有一点:我在企业级销售 MIS 中使用 EF4.0,并告诉您它完全不适用于这种规模的应用程序。性能差、查询量大、TPT 层次结构大、更新模型时等待时间长、无法在查询中使用实体作为参数、缺乏对批量延迟加载的控制、缺乏缓存设施、疯狂加载大型集合只是为了关联修复,没有批量插入/更新只是一些问题。好吧,我应该说我们设法绕过了所有这些,但这绝对不是魅力。【参考方案3】:

我们在两年前(2010 年)对 NHibernate、EF 和 Llblgen 进行了深入分析,并选择了最后一个。我们绝对认为我们做出了正确的决定。

Llblgen Pro 是一个华丽而成熟的 ORM(实体 FW 还需要进化:直接 m:n、枚举、继承......)。易于使用模型和数据库首先无需 XML 看,只是一个好的图形设计师。

高效:仅获取您需要的列...或使用 TypedList 获取常用的连接/分组列...或使用 TypedViews 映射您的视图,或映射您的检索存储过程...或使用 ad-hoc查询。你甚至可以创建一些模板映射你自己的 POCO (TypeValue) 并直接调用 SQL !!! (到目前为止,我们还不需要) 来自设计器,使用自己的框架,或 NHibernate 或实体框架,或 LINQ to SQL 一旦您决定投入生产,您就会错过很多功能(预取、事务、数据绑定助手、分页、(反)序列化、自定义(属性、依赖注入、授权、审计...... )

...但它还有更多:一个伟大的模型设计师和模板系统。

从 ORM 开始:

自定义模板(例如 ASP.Net、MVC、REST 或 WCF)的良好使用提供了 脚手架系统/通用架构 -> 允许经验不足的编码人员赶上 并提高生产力。通用解决方案被重复使用(其成本下降 下来:这不是“代码与理解和集成”,而是“代码与理解和集成”。 插件”)。虽然它是老式的 ASP.Net 网络表单,但看看 http://northwind.angte-demo.com/ 感受一下你能得到什么 与模板。 像往常一样在 VS 中为您的特定应用程序编写代码。如果代码是 可重用将代码添加到模板中(这通常意味着在类似 ASP 的文件中进行更改 诸如带有“”的“产品”之类的东西,而不是硬员工)。

【讨论】:

以上是关于ORM市场分析的主要内容,如果未能解决你的问题,请参考以下文章

Android目前流行三方数据库ORM分析及对比

Lavavel笔记 Eloquent ORM分页源码分析

1.BBS需求分析和创建ORM

Mybatis -- Mybatis简介(原始JDBC的操作和问题分析ORM)

手写Mybatis框架(半自动ORM框架)-- 01: 分析实现Mybatis的三个阶段

Spring事务管理--多个ORM框架在使用时的情况分析