比较和对比来自Telerik的NHibernate和OpenAccess

您是否使用过Telerik的OpenAccess ORM ? 它与NHibernate相比如何? 我什么时候应该考虑在NHibernate上使用它?

我自己也在想同样的事情。 一方面,NH拥有免费的开源自我,但支持选项有限。 另一方面,这是一个着名的工具提供者盒子OA的新增function。

OA需要花钱,但你得到了支持。 新罕布什尔州是免费的,但至少在我的短暂体验中,人们已经知道支持是有限的,而且进展缓慢。

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

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

NH需要一个“会话”来与数据库一起工作; OA将其称为“范围”。 两者都使用“交易”。

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

由于Telerik最近收购并发布了以前由Vanatec(德国以外)拥有的OpenAccess,因此OA肯定正在进行一些重大更新。

就“易用性”和“性能/可扩展性”而言,我希望我知道每个人的立场。 我相信那里的某个人可以在两者之间进行诚实的测试并做出这些决定。

我喜欢NH的一个方面是可用的模板来生成所需的代码,不仅仅是“哑”业务对象(现在都是OA生成的),而是BLL和DLL。 经过与Telerik的多次对话,我得到的印象是他们计划提供更多代码生成选项,因此开箱即用的OA更有用。

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

我没有使用它,但是对我来说显而易见的一个好处是,Telerik支持OpenAccess,社区支持nHibernate。 如果您愿意接受开源解决方案而不提供支持,这可能是决定因素,这取决于您的公司。

编辑

为了记录,我是nHibernate的大力支持者,并且通常是开源的。 我在过去的六个月里一直在使用nHibernate,将它用于我们的Web应用程序中的所有新工作。 对于我现在的公司来说这是一个很好的选择(Startups免费爱)。

但是,我以前的雇主在接受社区支持的组件作为其基础设施的核心部分时会非常困难。 这是完全合理的,因为这些公司的网站是他们唯一的收入来源。 您是否希望将您的整个业务放在与之无关的软件上? 有些人不想冒这个风险。

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

我的观点不是打击OSS,而是强调使用具有合作支持的软件的一个好处,拥有一个完全配备人员和专用的支持渠道。

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

我会说nHibernate是免费的,OpenAccess是399美元。 虽然如果你想让nHibernate轻松实现自动化,那么带有nHibernate模板的CodeSmith是99- $ 399美元。 看起来OpenAccess在数据层中具有更高的透明度,并且可能更容易维护。 但是,如果你使用像Spring.Net这样的东西,你不仅可以让nHibernate自动化数据,而且服务层也可以自动化。 虽然nHibernate和Spring.Net是另一批需要维护的配置文件,但需要考虑到这一点。 我敢打赌OpenAccess是GUI友好的。 两者都有效,但nHibernate还有更多信息。