在实际项目中应用NHibernate

实际应用

为了适应新的需求,我将原先的一个系统的进行了结构的修改,将NHibernate加入到项目中,改变过去每个人都要写大量数据访问代码的状况。当然使用NHibernate是有一定风险的,而且还有大牛猛烈批评过NHibernate,说其远远没有达到成熟的地步,不能胜任24*7的不间断服务的任务。但就我的使用来看,还基本没有出现什么问题,毕竟我不指望NHibernate能做任何事情,它只是一个ORM工具而已,只要它能帮我较好地完成CRUD就足够了。在参考了很多资料(包括张老三的飞鹰的Justin Gehtland的文章,还有MSDN上的文章《设计数据层组件并在层间传递数据》 《应用程序基础体系结构 MSA 企业设计》)后,根据自己项目的具体情况,采取了如下的结构:

WebUI ——》逻辑层——》数据访问层 ——》DB

    |-----------------------------------|

逻辑层中是很多个业务组件,而数据访问层中包括“业务实体(还有xml配置文件)”、“数据访问逻辑组件”、“数据访问助手”和“NHibernate”,之所以将业务实体放在DAL中是参考了《设计数据层组件并在层间传递数据》,将业务实体在各个层中进行传递。“数据访问逻辑组件”其实就是一个接口和一个实现类,类似飞鹰的EntityControl,数据访问助手是以前的项目就有的,保留了下来。

WebUI中使用javascript来调用WebService(就是使用了WebService Behavior),WebService再调用逻辑层中的业务组件。这么做是因为我们的项目中使用的是XML+XSL格式化数据显示的方式。

体会

使用ORM可以减少很多工作量,特别是再结合使用代码生成器后,它能带给我们实实在在的好处。现在涌现了很多ORM工具,NHibernate只是其中之一,有一些需要付费的ORM工具中,不乏优秀之作。我看到有人说ORM已经是很老的技术了,已经过时了,我想这样的论断是很武断的,也是不负责任的。

 

posted @ 2005-01-06 15:34  风满袖  阅读(2473)  评论(1编辑  收藏  举报