扩展NHibernate为企业级的解决方案
Basics之上
企业示例通过以下方法扩展基本示例:
• AbstractNHibernateDao.cs, NHibernateSessionManager.cs, NHibernateSessionModule.cs, and IDao.cs已经被放到他们自己的可再度使用的/能扩展的项目中,此项目叫做ProjectBase.Data.
• DesignByContract.cs:已经被放到他们自己的克再度使用的/能扩展的项目中,此项目叫做ProjectBase.Utils。
• 已经增添了can't-debug-NHibernate-without-it log4net,并把它配置在web.config中。
• 磨损中有错误纪录IHttpModule。
• 已经更新了NHibernateSessionManager.cs,支持同时使用多个数据库。相应地文章Using NHibernate with Multiple Databases中描述的功能已经接到样本应用程序中去了。通过使用基本样本项目,你可能要把它转到单一数据库支持中。
• 设计模型Model-View-Presenter已经被ListCustomers.aspx and EditCustomer.aspx.应用到了分离的商业逻辑中。MVP版本与Supervising Controller的定义相符合。相应地,已经创建一个新项目(被命名为EnterpriseSample.Presenters)包括view interfaces and presenters。联合的单元测试已经补充到了EnterpriseSample.Tests.
• 已经补充了一个简单的网络服务GetCustomer.asmx,它与DTOs相反应,DTOs是从由被NHibernate恢复的数据组装的。请注意:不需要为这个例子考虑一个更好的方法例子。我是一个网络服务设计新手,我不确定与NHibernate整合有关的最优方法到底是什么。看看Where to go from here??因为在这个方面有一个额外的与进一步研究有关的注意事项。
GetCustomer.cs.中也包括了一些相关的评论。
• 已经整合了Castle Windsor,为网页、用户控制和网络服务,把DAO 工厂注入到控制器中。时刻记住,Castle Windso的综合利用远远不止这些。
仔细的看一下示例代码,但是第一眼的时候,可能让人畏缩(再多看几眼)。但是一旦所有的事情都准备好了,它就变得很强大,灵活,在最小程度上,不会攻击你正在开发的代码。
0
相关文章