自由、创新、研究、探索……

Linux/Windows Mono/DotNet [ Open Source .NET Development/ 使用开源工具进行DotNet软件开发]
posts - 517, comments - 1987, trackbacks - 143, articles - 55
  博客园 :: 首页 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理
     随着项目的进展,Castle和IBatisNet给我的惊喜更多。Com+很重,不需要分布式的中小项目慎用,NHibernate虽好,NHibernate的2005-9-20发布了最新版本1.0-rc1,缺少高水平的OO设计师,项目组程序员水平参次不齐 ,应用Castle + IBatisnet大家不会再把精力浪费到数据访问,事务处理,主键生成等地方了,可以集中精力进行业务组件的编写。项目的进展很顺利。
    从架构上讲,Castle作为轻量级Ioc容器无疑要位于高位,所以iBatisNet现在只需要致力于完成持久层的sql-object映射工作,其他的事就由Castle来装配好了。
      iBatisNet中的DaoManager作的两大工作:dao事务管理,dao接口与实现的解藕,Castle的事务处理使用了是Castle的扩展单元,可以配置到方法级,用法类似于Com+,需要对该类设置声明性事务属性以确定其事务性行为。指定哪些类的哪些方法需要事务处理,不管你是dao还是service,通通可以自由地在这儿指定,根本不会侵入你所写的类,如果是Com+的话,会强迫你去实现Com+的ServicedComponent。
     IbatisNet的缓存非常不错,我们需要用好它了。在IbatisNet中,cacheModelsEnabled默认是true的,别忘了在写具体的po.xml时,作缓存有关的配置工作。不过具体用哪一种(MEMORY  LUR  FIFO  OSCACHE)容量设多大,都得根据项目的实际情况来定,我通常首选LUR。正确设定缓存的Flush语句,杜绝缓存中脏数据产生的可能。缓存使用前提是,系统中对表的读写一定要都通过ibatisNet来进行,也就是封闭的。   
    动态SQL的确是个强点。熟悉后感觉很不错。IBatisNet中所有的DAO方法都只传一个值对象,复杂查询当然也不例外。
自由、创新、研究、探索……
Url: http://shanyou.cnblogs.com
website: http://www.openbeta.cn

Feedback

#1楼    回复  引用  查看    

2005-09-23 08:59 by 风满袖      
希望你能进一步阐述你的架构、具体使用心得。

#2楼    回复  引用  查看    

2005-09-23 09:20 by 川仔      
是呀,文章感觉有点空洞。。。

#3楼    回复  引用    

2005-09-23 09:24 by WYF [未注册用户]
同样希望更多了解你的使用心得.有些具体问题想向你请教,是否介意加你的MSN?

#4楼    回复  引用  查看    

2005-09-23 14:26 by hardrock      
你个人网站上放了很多文章,转载的也不注明一下吗?

#5楼 [楼主]   回复  引用  查看    

2005-09-23 17:00 by 自由、创新、研究、探索……      
不介意你加MSN,上班时间上不了即时通信。所以一般都不在线

#6楼    回复  引用  查看    

2005-09-24 00:54 by DotNetFresh      
IBatis.net也要写po.xml??Castle里面比较感兴趣的是Nhibernate facility和AR,对IBatis没怎么研究,为什么好象读没人用AR呢???

#7楼    回复  引用    

2005-09-25 17:56 by 茶马古道 [未注册用户]
希望在详细道来!

#8楼    回复  引用  查看    

2005-10-29 10:48 by 仁面寿星      
是啊,希望你说得详细点,看了你的文章,很感兴趣,到处去搜索资料,希望你也提供一些自己看过的,有用的

#9楼 [楼主]   回复  引用  查看    

2005-10-29 11:11 by 自由、创新、研究、探索……      
IBatisNet的Petshop2采用了大量的Castle东西,对于学习Castle是一个非常不错的例子,Castle.MVC框架介绍 里面有例子代码下载"里面有例子代码下载。文件放在我的个人网站上。npetshop2

#10楼    回复  引用  查看    

2005-11-03 19:11 by §猪阿不猪§      
你好,我想请教一个问题.在Ibatisnet中使用了log4net和Castle.DynamicProxy组件,而且版本都比较低(log4net1.2.0.30714,Castle.DynamicProxy1.1.0.0),与Castl里面的Aspect#使用的Castle.DynamicProxy(1.1.5.0)的版本有冲突.
用高版本的组件重新编译了Ibatisnet的源码后Ibatisnet组件就不能用了?救命啊!

#11楼    回复  引用  查看    

2006-04-17 11:25 by 木头一个      
谢谢楼主的言论,这么早出现的东西我到了2006年才看到。
现在也正在研究IBatisNet+Castle IOC,谢谢楼主的文章给了我启迪

不过现在在IBatisNet生成动态SQL方面,有一个小小的问题,望楼主不吝赐教,即如果要做复杂的查询,那么对于时间范围的查询处理该如何做呢?我在数据库中有一个DateTime型的字段,但我需要传入两个DateTime值来表示一个范围,在IBatisNet中动态Sql该怎么处理?

#12楼    回复  引用  查看    

2006-04-21 20:19 by INRIE      
@自由、创新、研究、探索……:

您说的"IBatisNet的Petshop2采用了大量的Castle东西,对于学习Castle是一个非常不错的例子",这里的petshop2是不是就指的是NPetshop?我下载了NPetShop,发现它没直接用到Castle的东西.

#13楼 [楼主]   回复  引用  查看    

2006-04-22 09:30 by 自由、创新、研究、探索……      
@INRIE
NPetshop2还没有发布,可以从SVN里面取

#14楼    回复  引用  查看    

2006-04-22 12:24 by INRIE      
@自由、创新、研究、探索……

谢谢您的指点,我这里也顺便把SVN中NPetShop2的地址贴出来,方便要有人需要的话:
http://svn.apache.org/repos/asf/ibatis/trunk/cs/npetshop2/

#15楼    回复  引用    

2007-06-20 13:37 by leon.lu [未注册用户]
你好.我正在学习IBatisNet,在用
<result property="" resultMapping=""/>的时候,请问它的深度可以支持多少?为什么我在第二级用的时候就提示我说:无法将IList转化为(对象)
我的邮箱:lujunyang20@163.com

标题  
姓名  
主页
Email (博主才能看到) 
验证码 *  看不清,换一张 [登录][注册]
内容(请不要发表任何与政治相关的内容)  
博客园首页

新闻频道

社区

小组

博问

网摘

闪存

  登录  使用高级评论  新用户注册  返回页首  恢复上次提交      
该文被作者在 2005-10-25 21:36 编辑过
成果网帮您增加网站收入


相关链接: