请问NHibernate+spring.net+atlas和ibatis.net+castle+magicajax

其实castle是集成了nhibernate的,而nhibernate对存储过程支持性不太好,所以castle对复杂查询支持的不是太好,这点不如 ibatis.net。castle里的active   records对多表更新是事务支持也不太好,但是复杂查询什么的可以用HQL语句,所以大部门的查询也能应付的了,另外castle里还有 IBatis.net   Facility和NHibernate   Facility,让事务和多表更新更方便了,ibatis.net灵活,可以在配置文件里写SQL,但是这样就不如nhibernate更OO了。其实 持久层还有一个比较好的就是nettiers2+codesmith,现在对.net   2.0支持的也特别好,而且是符合微软的数据访问最佳实践,性能我感觉也是最NB的,它用了entlib的DAAB。我以前研究的CMP持久模式现在感觉 也没啥优势了,虽然java那边的ejb3.0好像还是推荐容器托管持久性。持久层框架就总结这么些了。  
   
  业务层框架spring.net好像是基于工厂方法+向接口编程+Context来实现AOP,而且它的配置文件很复杂,比较麻烦,而Castle的 AOP虽然配置文件简单,但用了大量的反射,估计性能不如spring.net,而且spring.net提倡面向接口编程,对程序架构有个好的引导。  
   
  表示层框架.net这边没有webwork和structs对应的东西。但是大家可以看看智能客户端的应用块CAB,那个挺值得研究的,web表示层现在 都关注ajax,我只用过ajax.net和teed的ajaxhelper,感觉这两个都挺灵活的,但不强大,magicajax和atlas没用过, 不过听说这两个的ajax容器更强大一些,而且atlas调用webservices的方式好像更容易维护,另外像google,yahoo等都推出了一 些客户端的ajax   UI,挺不错的。关于ajax也确实想找个好的框架,不过如果大家直接给推荐一个我就省的都一个一个的试用和评估了。另外推荐《ajax实战》这本书,写 的简直太好了,一些思路特别值得借鉴,考虑问题也很全面细致。  

 

 

1、 开源框架选择:
数据持久层Nhibernate和IbatisNet这两个都是非常优秀的数据持久层,

Nhibernate是优秀的Hibernate的 dotNet移植版本,

IbatisNet是Data Mapper框架,也是JAVA版的Ibatis的移植版本,在dotnet的开源社区一样是非常受欢迎的一个工具。

Nhibernate用于支持非常好 的面向对象的设计的模型,

IbatisNet用于支持应用程序的移植(已经存在数据库,处于生产状态),这两个框架对开发人员的要求。这样就具有更大的弹 性。

IOC容器Spring.Net和Castle,这是两个dotnet非常优秀的IOC容器。

Spring.Net同样是Java的Spring 的移植版本,目前的版本是0.6,

Castle则是dotnet下出现新的IOC容器,它的功能,成熟度方面比Spring.Net好得多,框架中准备采 用Castle.

最后的平台的技术架构就是Nhibernate/IbatisNet + Castle + ASP.NET


2、 架构整合:
Web层的Asp.net负责数据输入输出, 响应用户事件,及输入校验的工作,Web层上如何得到Nhibernate的Session和IbatisNet的SqlMapper?本架构中的 DAO,Service以及 Nhibernate的Session和IbatisNet的SqlMapper都是通过Castle进行管理,Web层如何得到Castle IOC容器的实例呢,这里采用HttpModule来处理之,使用用HttpContext.Current.Items来保存容器实例,参看 http://www.tobinharris.com/nhibernateasp.aspx 。 Asp.net页面通过Service处理业务逻辑,Service负责use case逻辑, domain相关的逻辑委托给domain model去实现. Service通过DAO完成对domain model的持久化工作. Service负责数据库事务和NHibernate Session/IbatisNet SqlMapper的管理。Domain model负责表示问题域的数据,DAO使用Nhibernate/IbatisNet持久化数据以及查询. 在实现DAO时, 我们使用了Castle的Nhibernate/IbatisNet DAO Support,极大地简化了代码, 很多方法都只用简单的一行完成。这样的架构优点很明显, 层次清晰, 各层的职责也明确, 便于分层设计与开发, 结合mock和Castle的IOC, unit test也是非常容易的. 而且后台(Service, domain model and DAO)的代码不依赖于Asp.net框架,同样的代码可以在Web App也可以在WinForm上面使用,只需更换UI层。
 
使用的框架工具的链接
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值