比较NHibernate和Telerik OpenAccess的异同

10
你用过 Telerik 的 OpenAccess ORM 吗?它和 NHibernate 相比怎么样? 在什么情况下应该优先考虑使用它而不是 NHibernate?

OpenAccess现在可以免费用于商业项目。http://www.telerik.com/download/data-access - Simple Fellow
4个回答

10
我自己也在思考同样的问题。一方面,NH是免费且开源的,但支持选项有限。另一方面,OA是知名工具提供商新加入的产品,需要花钱购买,但可以获得支持。我认为两者都是很好的产品。因为我已经使用Telerik的工具,所以我决定尝试OA。OA和它的支持已经被支付了。
NH使用普通类和对象,其属性上没有任何装饰。OA需要装饰(OA Visual Studio GUI生成)。
NH需要“会话”才能对数据库进行操作;OA称之为“作用域”。两者都使用“事务”。
OA与Visual Studio集成,可以正向反向映射到数据库。正向映射是让您设计类,然后将这些类“推送”到数据库中进行持久化。反向映射是给领域模型开发人员使用的,这是我喜欢的。
OA正在进行一些重大更新,因为Telerik最近收购并发布了OpenAccess,该产品以前由Vanatec(来自德国)拥有。
就“易用性”和“性能/可扩展性”的角度而言,我希望我知道每个产品的实际情况。我相信有人可以对两者进行诚实的测试,并做出这些决定。
我喜欢NH的一个方面是可以使用现有的模板生成所需的代码,不仅针对“愚蠢的”业务对象(这是OA现在生成的所有内容),还针对BLL和DLL。在与Telerik的许多交流之后,我得出的印象是,他们计划提供更多的代码生成选项,以使OA开箱即用。
希望这会有所帮助!请有人尝试获取一些性能问题的统计数据。

你有机会尝试OA了吗?如果是的话,感觉如何? - Bjørn Otto Vasbotten
我刚开始接触OA。之前我使用SubSonic。我喜欢SubSonic,但是它有一些限制,而OA没有,比如能够使用SubSonic不支持的数据创建Web服务或WCF服务(至少不是开箱即用的)。我对nHibernate没有任何经验。 - Rick Rat
4
自从这篇答案被发布以来,OpenAccess 已经进行了一些大的更新,所以我想添加一点新的内容。最大的变化是 OpenAccess 现在针对所有版本的 MS SQL(不包括 Azure)都是 100% 免费的 :) 他们还增加了使用自定义代码生成模板的功能,以控制 OpenAccess 为您的模型生成的代码。 - Joshua
1
除了Joshua提到的要点之外,OpenAccess ORM现在还支持POCO对象和仅代码映射选项,使用其Fluent Mapping API。Telerik不再是在追赶竞争对手,而是以比大多数竞争对手更快的速度(每年3-6次)发布新版本。它还免费提供给SQL Server用户,我个人可以证明Telerik支持团队远远优于其他支持团队。 - Kevin Babcock

9
我没有使用过OpenAccess,但对我来说,一个明显的好处是它得到了Telerik的支持,而nHibernate则是由社区支持。根据你的公司情况,如果你准备拥抱没有支持保证的开源解决方案,这可能是一个决定性因素。
值得注意的是,我非常支持nHibernate和开源。在我们的Web应用程序中,我已经使用nHibernate进行了六个月的所有新工作。对于我的当前公司来说,这是一个很好的选择(初创企业喜欢免费)。
然而,我的前雇主将很难接受社区支持的组件作为其基础设施的核心部分。这是完全合理的,因为这些公司的网站是他们唯一的收入来源。你会想要把整个业务都建立在没有责任的软件上吗?有些人不想冒这种风险。
就个人而言,我发现nHibernate的支持与某些商业供应商相当甚至更好。
我的观点不是要抨击开源软件,而是要强调使用具有公司支持、有完整员工团队和专门的支持渠道的软件的一个好处。

你们可以很严厉,我得到了+1和-1,这是一个有效的问题,你必须仔细考虑。我希望投反对票的人至少能留下原因。 - JoshBerke
我不是一个踩人的人,但如果你说开源项目的任何负面言论,那么你应该预计会收到来自狂热分子的-1。 - Thedric Walker
谢谢您的评论,我并没有想要表达任何负面或消极的意思。我希望我的编辑能更好地解释我的想法。 - JoshBerke

6

还有一个原因:目前OpenAccess具有更好的性能特征,如果您需要快速的ORM项目,则它将是更好的选择。请参见ORM基准测试获取详细信息。


4
问题在于ORMBattle上的“基准测试”不太符合“真实生活”,这些测试是由一个ORM供应商创建的,目的是展示其ORM的良好表现。ORM的速度大多取决于使用它的程序员的技能,所有领先的ORM在大多数数据库上的速度都足够快。 - Ian Ringrose
我认为你必须先阅读那里的常见问题解答。从这个开始,例如:http://ormbattle.net/index.php/faqs/78-what-kind-of-orm-tool-can-win-in-this-benchmark.html - Alex Yakunin
@Ian - 我认为你的说法“由一个ORM供应商创建以展示他的ORM”的观点是不正确的。虽然这个工具是由一个供应商创建的,但如果你真的仔细看一下,它的测试案例在技术上是相当中立的。 - aryeh
@Alex,问题在于“快速”是按照ORM供应商认为数据库应该使用的方式来定义的。这可能非常具有误导性。目前甚至没有人能够就ORM的“更好性能特征”达成一致意见! - Ian Ringrose

1

我认为nHibernate是免费的,而OpenAccess则需要399美元。如果您想要轻松自动化nHibernate,则CodeSmith与nHibernate模板的价格为99美元至399美元。看起来OpenAccess在数据层具有更多的透明度,可能更容易维护。但是,如果您使用类似Spring.Net的东西,您不仅可以自动化数据,还可以自动化服务层。尽管这需要维护另一批配置文件,但请带着一颗谨慎的心去尝试。我敢打赌OpenAccess很友好。两者都可以使用,但是关于nHibernate有更多的信息。


1
OpenAccess现在对所有版本的SQL Server以及它所支持的任何免费数据库(MySQL,Oracle XE等)都是免费的。 - Kevin Babcock

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接