从本质上来说iBATIS不能算是一种orm工具,只是一个DataMapper。
我们甚至可以把它看成一个SQL生成工具,也就是对 ADO.net 中 IDbCommand 和 IDataParameter 的一个XML格式化的配置,SqlMap是IbatisNet 的一个亮点。
从使用上看,IbatisNet 也具有ORM的某些特点,很方便的在实体和数据库之间相互操作
从构架上看,IbatisNet 不像NHibernate 享有数据库的完全控制权,也给我们扩展提供余地
从性能上看,IbatisNet 应该比ORM有优势,而且SQL语句是开放的,可优化的。
什么时候使用IbatisNet 什么时候使用NHibernate
我们看看IbatisNet 作者的原话
If you are starting a new project and you're in full control of your object model and database design, NHibernate is a good choice of O/R tool.
If you are accessing any 3rd party databases (e.g. vendor supplied), or you're working with a legacy database, or even just a really poorly designed database, then an O/R mapper might not be capable of handling the situation. That's were an SQL Mapper comes in handy
既然写的是开发指南,我就不过多的涉及IbatisNet 实现原理
总体上讲IbatisNet 是我比较喜欢一套构架 已经在几个实践项目应用过
如果用Castle的ICO作为业务容器 和用Castle的事务处理机制,将会有珠联壁合的感觉