当前位置:  开发笔记 > 数据库 > 正文

NHibernate和iBATIS.NET有什么区别?

如何解决《NHibernate和iBATIS.NET有什么区别?》经验,为你挑选了1个好方法。

我正在寻找一些比较NHibernate和iBATIS.NET的最新信息.我发现了一些搜索谷歌的信息,但其中很多都适用于这些产品的Java版本或者过时了.

我感兴趣的一些特定事项:

如果您同时控制数据模型和应用程序,哪个更好?

iBATIS反复被称为更容易学习 - 这是否会产生长期维护后果(即易于启动,难以维护)?

是否可以轻松切换底层数据库供应商?

您的开发人员需要多么熟练的SQL?

对方缺少的任何一个主要特征是什么?

这两种产品是否更适合特定类型的应用?

观察到的好处和缺点的现实世界的例子表示赞赏!

编辑:感谢您提供的信息.我也在做自己的评价.有一点我还在想,iBATIS是否可以帮助您保存/更新复杂的对象图?似乎NHibernate很好,因为我可以传递一个根对象,它可以找出需要在数据库中更新的详细信息.



1> Theo Lenndor..:

我刚才做了一些研究.

我的一个具体问题可能会给你一些额外的信息:你是否会将 NHibernate用于带有遗留数据库的项目,这部分是你无法控制的?

我可以回答你的一些兴趣点:

如果您同时控制数据模型和应用程序,哪个更好?

我可以反过来回答:如果你无法控制数据模型并因此面对一些遗留数据库,那么iBatis是更好的选择.

iBATIS反复被称为更容易学习 - 这是否会产生长期维护后果(即易于启动,难以维护)?

这取决于你想用它做什么.如果您有域驱动的开发方法,那么iBatis可能会随着时间的推移而变得痛苦.如果您只是进行简单的数据操作并且没有完整的域模型,那么nHibernate可能会成为一种过度杀伤力.

是否可以轻松切换底层数据库供应商?

两者都有机制来阻止你与特定的数据库供应商,但我承认没有在这方面做过激烈的研究.

您的开发人员需要多么熟练的SQL?

当您使用iBatis时,您需要比NHibernate更多的SQL技能.使用iBatis总是需要编写一些SQL代码.NHibernate不要求你编写SQL语句 - 它甚至可以为你做DDL.强大的功能将要求您使用旧的好SQL,这将是不可避免的.

其他一些观点:

我个人觉得iBatis更轻盈.你可以很快完成任务.NHibernate功能更强大,但功能更多,你可以用错误的方式使用它.

可以结合使用NHibernate和iBatis!您可以将NHibernate用于业务逻辑.出于报告目的,您只需从表中读取数据,即可回退到iBatis.

如果您的应用程序具有更长的生命周期和许多业务逻辑,请考虑NHibernate.它有很多功能可以帮助您处理业务对象.

NHibernate周围的社区非常活跃,并提供了有用的工具.

推荐阅读
放ch养奶牛
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有