【问题标题】:What are NHibernate's advantages over other ORM tools?NHibernate 与其他 ORM 工具相比有哪些优势?
【发布时间】:2009-12-19 18:14:06
【问题描述】:

根据this question,.Net 最流行的 ORM 工具是 NHibernate。然而,给出的解释为零。 NHibernate 与其他框架相比有哪些引人注目的优势?

【问题讨论】:

    标签: c# .net nhibernate orm


    【解决方案1】:

    NHibernate website 本身就是一个很好的例子:

    NHibernate 支持透明 持久性,你的对象类不 必须遵守限制性规定 编程模型。持久类 不需要实现任何接口 或从特殊的基类继承。 这使得可以设计 使用纯 .NET (CLR) 的业务逻辑 对象和面向对象的习语。

    要对 .NET 的许多主要 O/RM 进行公正的比较,我建议您访问 ORM BATTLE .NET

    【讨论】:

    • ORM Battle 由 ORM 供应商 DataObjects.net 运营:通常不被认为是“公正的”。至少有一家主要供应商 (LLBLGen Pro) 正是出于这个原因拒绝在此提供代表,其他几家供应商则质疑基准测试的有效性。 (披露:我为 ORM 供应商工作。)请参阅 ayende.com/blog/archive/2009/08/15/… 进行讨论(恐怕是脾气暴躁)。
    • @itowlson - 感谢您指出这一点 - 我不知道 :)
    • 很难证明它是否有偏见,但我们做了很多工作以允许任何人验证测试(代码是公开共享的;有一个 Google 小组管理其进一步的开发),所以目前他们'从代码的角度来看非常好。我认为有些供应商拒绝留在那里很糟糕 - 例如。 LLBLGen 的案例表明,公认的供应商在被证明与其他供应商相比速度较慢后立即退休。 NH几乎相同。所以各方都在那里暴露了非常的偏见。我可以在那里添加显示良好结果的玩家(BLToolkit、Telerik 和我们)进一步开发它。
    • 顺便说一句,NH 项目负责人 (Fabio Maula) 几乎立即尝试在自己的测试中“恢复”NH 结果也失败了:ormbattle.net/index.php/blog/…,而且这个测试确实基于 hack。跨度>
    • 相对于主题:我建议您修复描述。 ORMBattle 仅比较基本操作上的 LINQ 质量和原始 ORM 性能。那里没有比较高级功能等 - 至少目前是这样。
    【解决方案2】:

    对我来说,最大的特点是Fluent NHibernate's Automapping,它可以采用相当复杂的类模型,并从中创建关系数据库模式。

    我不知道有任何其他工具(商业或开源)可以做到这一点。

    此外,功能非常强大且可配置(唉,这可能使它变得神秘)。

    【讨论】:

      【解决方案3】:

      有很多阅读可供您阅读:

      Advantages and Disadvantages of NHibernate

      What differentiates Nhibernate from other ORM’s?

      还有大量链接指向人们对各种 .NET ORM 的看法:

      NHibernate, Entity Framework, active records or linq2sql

      简而言之,NHibernate 功能丰富且经过实战考验。它是免费和开源的。

      【讨论】:

        【解决方案4】:

        我强烈推荐 EntitySpaces。这对我来说是最好的 ORM,为我节省了大量的时间和金钱。

        我早就怀疑那个网站了,ormbattle 是个骗局。据我记得,Yakunin 是 ormbattle 的所有者或经营者之一。所以把它和一大粒盐一起吃。 检查自己,不要相信网上的陌生人。 (当然,除了我)。

        【讨论】:

          【解决方案5】:

          根本不推荐用于关键任务软件。 你会得到神秘的生成 SQL,并且会疯狂地做最愚蠢的事情。

          到 2012 年,大型软件工厂已明确指示不要在任何项目中使用 nHibernate。它太冒险、太难使用而且太麻烦了。

          每个时尚都有其到期日期。

          【讨论】:

            猜你喜欢
            • 2010-09-09
            • 1970-01-01
            • 2010-10-28
            • 2013-09-22
            • 2012-05-17
            • 1970-01-01
            • 1970-01-01
            • 2016-01-04
            • 2011-08-02
            相关资源
            最近更新 更多