您是否使用过OpenAccess ORM from Telerik?它与NHibernate相比如何?我什么时候应该考虑在NHibernate上使用它?
答案 0 :(得分:10)
我自己也想知道同样的事情。一方面,NH有自由的开源自我,但支持选项有限。另一方面,这是一个着名的工具提供者框OA的新增内容。
OA需要花钱,但你得到了支持。新罕布什尔州是免费的,但至少在我的短暂经历中,人们已经知道支持是有限的,而且很慢。我认为两者都可能是优质产品。因为我已经是Telerik工具的用户,所以我决定尝试OA。无论如何,支持OA及其支持。
NH使用普通类和对象,在类属性上没有任何装饰。 OA需要装饰(由OA Visual Studio GUI很好地生成)。
NH需要一个“会话”来与数据库一起工作; OA将其称为“范围”。两者都使用“交易”。
OA与Visual Studio集成,可以向数据库进行正向映射和反向映射。前向映射是这样您可以设计类,然后将它们“推”到数据库中以实现持久性。 “反向”是你的“领域模型”开发人员,这是我喜欢的。
由于Telerik最近收购并发布了以前由Vanatec(德国以外)所有的OpenAccess,因此OA肯定正在进行一些重大更新,因为Telerik正在“追赶”。就“易用性”和“性能/可扩展性”而言,我希望我知道每个人的立场。我相信那里的某个人可以在两者之间进行诚实的测试并做出这些决定。
我喜欢NH的一个方面是可用的模板来生成所需的代码,不仅适用于“哑”业务对象(现在都是OA生成),而是用于BLL和DLL。经过与Telerik的多次对话,我得到的印象是他们计划提供更多代码生成选项,因此开箱即用的OA更有用。
希望这有帮助!有人请尝试获取有关性能问题的一些统计数据。
答案 1 :(得分:9)
我没有使用它,但对我来说显而易见的一个好处是Telerik支持OpenAccess,社区支持nHibernate。如果您愿意接受开源解决方案并且没有任何支持,那么这可能是决定因素,这取决于您的公司。
为了记录,我是nHibernate的大力支持者,并且通常是开源的。我在过去的六个月里一直在使用nHibernate,将它用于我们的Web应用程序中的所有新工作。对于我现在的公司来说,这是一个很好的选择(Startups爱免费)。
然而,我以前的雇主,在接受社区支持的组件作为其基础设施的核心部分时会非常困难。这是完全合理的,因为这些公司的网站是他们唯一的收入来源。您是否希望将您的整个业务放在与之无关的软件上?有些人不想冒这个风险。
就我个人而言,我发现对nHibernate的支持与一些商业供应商相提并论甚至更好。
我的观点不是打击OSS,而是强调使用具有合作支持的软件的一个好处,拥有一个完全配备人员和专用的支持渠道。
答案 2 :(得分:6)
另一个原因:目前OpenAccess具有更好的性能特征,如果您的项目需要快速ORM,那么它将是更好的选择。有关详细信息,请参阅ORM benchmarks。
答案 3 :(得分:1)
我想说nHibernate是免费的,OpenAccess是399美元。虽然如果你想让nHibernate自动化,那么带有nHibernate模板的CodeSmith的价格是99- $ 399美元。看起来OpenAccess在数据层中具有更高的透明度,并且可能更容易维护。但是,如果您使用类似Spring.Net的东西,您不仅可以让nHibernate自动化数据,还可以自动化服务层。虽然nHibernate和Spring.Net是需要维护的另一批配置文件,但需要花费一些时间。我敢打赌OpenAccess是GUI友好的。这两个都有效,但nHibernate还有更多信息。