【问题标题】:Compare and Contrast NHibernate and OpenAccess from Telerik比较 Telerik 的 NHibernate 和 OpenAccess
【发布时间】:2010-10-01 05:59:18
【问题描述】:

你用过OpenAccess ORM from Telerik吗?它与 NHibernate 相比如何?我什么时候应该考虑在 NHibernate 上使用它?

【问题讨论】:

标签: c# .net nhibernate orm openaccess


【解决方案1】:

还有一个原因:目前 OpenAccess 具有更好的性能特性,如果您的项目需要快速的 ORM,它将是一个更好的选择。详情请见ORM benchmarks

【讨论】:

  • 问题在于 ORMBattle 上的“基准标记”并不是非常“真实的”,并且是由一个 ORM 供应商创建的,以很好地展示他的 ORM。 ORM 的速度主要取决于使用它的程序员的技能,所有领先的 ORM 在大多数数据库上都足够快。
  • 我认为您必须先阅读那里的常见问题解答。从例如开始这个:ormbattle.net/index.php/faqs/…
  • @Ian - 我认为您的陈述“由一个 ORM 供应商创建以很好地展示他的 ORM”是不正确的。它是由供应商创建的,但除此之外,测试(如果您费心去实际查看的话)在技术上完全是供应商中立的。
  • @Alex,问题在于“快速”是以给定的 ORM 供应商应该使用数据库的方式定义的。这可能非常具有误导性。目前,甚至没有人能够就 ORM 的“更好的性能特征”意味着什么达成一致!
【解决方案2】:

我没有使用过它,但对我来说明显的一个好处是 OpenAccess 由 Telerik 支持,而 nHibernate 由社区支持。根据您的公司,如果您准备好接受没有支持保证的开源解决方案,这可能是一个决定性因素。

编辑

郑重声明,我是 nHibernate 的忠实支持者,并且总体上是开源的。在过去的六个月里,我一直在使用 nHibernate,将它用于我们 Web 应用程序中的所有新工作。对于我现在的公司来说,这是一个很好的选择(初创公司喜欢免费)。

但是,我以前的员工很难接受社区支持的组件作为其基础架构的核心部分。这是完全合理的,因为这些公司的网站是他们唯一的收入来源。您是否想将您的整个业务押在没有相关责任的软件上?有些人不想冒这个险。

就我个人而言,我发现对 nHibernate 的支持与一些商业供应商相当,甚至更好。

我的意思不是抨击 OSS,而是强调使用具有企业支持的软件的一个好处,该软件拥有配备齐全的专用支持渠道。

【讨论】:

  • 你们可能很苛刻,我得到 +1 和 -1,这是你必须考虑的一个有效问题。我希望反对的选民至少留下一个理由。
  • 不是一个反对者,但如果你对开源项目说任何不好的话,希望从狂热者那里得到 -1。
  • 感谢您的评论,我无意让这件事变得糟糕或消极。我希望我的编辑能更好地解释我的想法
【解决方案3】:

我自己也在想同样的事情。一方面,NH 有其免费、开源的自我,但支持选项有限。另一方面,是著名工具提供商 OA 的一个相当新的补充。

OA 需要花钱,但您会得到支持。 NH 是免费的,但至少在我短暂的经验中,我们知道支持是有限的,而且进展缓慢。

我认为两者都可能是优质产品。我决定尝试 OA,因为我已经是 Telerik 工具的用户。无论如何,OA 及其支持都是有偿的。

NH 使用纯类和对象,对类属性没有任何修饰。 OA 需要装饰(由 OA Visual Studio GUI 很好地生成)。

NH 需要一个“会话”来处理数据库的一个工作单元; OA 称之为“范围”。两者都使用“交易”。

OA 与 Visual Studio 集成,可以正向和反向映射到数据库。正向映射是为了让您可以设计您的类,然后将它们“推送”到数据库中以实现持久性。 “反向”是给你的“领域模型”开发人员,这是我更喜欢的。

随着 Telerik 最近收购和发布以前由 Vanatec(德国以外)拥有的 OpenAccess,OA 肯定正在经历一些重大更新。

就“易用性”和“性能/可扩展性”的观点而言,我希望我知道它们各自的立场。我确信有人可以在两者之间进行诚实的测试并做出这些决定。

我喜欢 NH 的一件事是可用模板生成所需代码,不仅为“哑”业务对象(现在所有 OA 都生成),而且为 BLL 和 DLL。在与 Telerik 多次交谈后,我的印象是他们计划提供更多代码生成选项,因此 OA 开箱即用更有用。

希望这会有所帮助!请有人尝试获取有关性能问题的一些统计信息。

【讨论】:

  • 那么您有机会尝试 OA 吗?那样的话,怎么样?
  • 我刚刚开始涉足 OA。我以前使用过 SubSonic。我喜欢 SubSonic,但是 OA 没有一些限制,例如能够使用 SubSonic 不支持的数据(无论如何开箱即用)制作 Web 服务或 WCF 服务。我没有使用 nHibernate 的经验。
  • 自发布此答案以来,OpenAccess 已经收到了一些重大更新,所以我想我也会添加一些更新。最大的变化是 OpenAccess 现在是 100% free 用于所有版本的 MS SQL(不包括 Azure):) 他们还添加了使用自定义 code generation templates 来控制 OpenAccess 为您的模型生成的代码的能力。
  • 除了 Joshua 提出的观点之外,OpenAccess ORM 现在还支持 POCO 对象和带有 Fluent Mapping API 的纯代码映射选项。 Telerik 不再真正追赶其竞争对手,并且以比大多数竞争对手更快的速度(每年 3-6 次)发布新版本。它对 SQL Server 用户也是免费的,我可以亲自证明 Telerik 的支持远远优于大多数其他支持团队。
【解决方案4】:

我想说 nHibernate 是免费的,而 OpenAccess 是 399 美元。尽管如果您希望 nHibernate 轻松自动化,带有 nHibernate 模板的 CodeSmith 价格为 99-399 美元。看起来 OpenAccess 在数据层中具有更高的透明度,并且可能更易于维护。但是,如果你使用像 Spring.Net 这样的东西,你不仅会让 nHibernate 自动化数据,而且服务层也会自动化。尽管对此持保留态度,因为 nHibernate 和 Spring.Net 是另一批需要维护的配置文件。我敢打赌 OpenAccess 是 GUI 友好的。任何一个都可以,但在 nHibernate 上有更多信息。

【讨论】:

  • OpenAccess 现在对所有版本的 SQL Server 以及它支持的任何免费数据库(MySQL、Oracle XE 等)都是免费的。
猜你喜欢
  • 2010-10-05
  • 1970-01-01
  • 1970-01-01
  • 2011-06-12
  • 1970-01-01
  • 1970-01-01
  • 2012-03-29
  • 2012-06-25
  • 2012-07-29
相关资源
最近更新 更多