我正在寻找一些比较 NHibernate 和 iBATIS.NET 的最新信息。我在 Google 上找到了一些信息,但其中很大一部分适用于这些产品的 Java 版本或已过时。
我感兴趣的一些具体事情:
对观察到的优点和缺点的真实世界示例表示赞赏!
编辑:感谢您提供的信息。我也在做我自己的评估。我仍然想知道的一件事是,iBATIS 是否可以帮助您保存/更新复杂的对象图? NHibernate 似乎很不错,因为我可以将一个根对象传递给它,它可以计算出需要在数据库中更新的内容(如果有的话)的详细信息。
最佳答案
我前段时间做了一些研究。
我提出的一个具体问题可能会给你一些额外的信息:
Would you use NHibernate for a project with a legacy database, which is partly out of your control?
你的一些兴趣点我可以回答:
我可以反过来回答:如果您无法控制数据模型,因此面对一些遗留数据库,iBatis 是更好的选择。
这取决于你想用它做什么。如果你有一个领域驱动的开发方法,那么 iBatis 可能会随着时间的推移而变得痛苦。如果您只是进行简单的数据操作并且没有完整的域模型,那么到时 nHibernate 可能是一种矫枉过正。
两者都有机制来保护您免受特定数据库供应商的影响,但我承认在这个方向上没有进行深入的研究。
当你使用 iBatis 时,你需要比 NHibernate 更多的 SQL 技能。使用 iBatis 你总是需要编写一些 SQL。 NHibernate 不需要您编写 SQL 语句——它甚至可以为您编写 DDL。强大的功能将需要您使用旧的好 SQL,这将是不可避免的。
其他几点:
关于nhibernate - NHibernate 和 iBATIS.NET 有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/694552/