现在,许多系统都采用分层架构设计,NHibernate也拥有它并且与该设计完美配合.
分层架构
分层体系结构将系统划分为多个组,其中每个组包含寻址特定问题区域的代码,这些组称为层.大多数企业级应用程序使用高级应用程序架构,它由三层组成 :
表示层
业务层
持久层
例如,用户界面层(也称为表示层)可能包含所有应用程序代码构建网页和处理用户输入.
分层方法的一个主要好处是,您通常可以对一个层进行更改,而不会对其他层造成任何重大影响,从而使系统较脆弱且易于维护.
表示层
它是最顶层,包含负责绘制用户界面,页面,对话框或屏幕以及收集用户输入的代码,以及控制导航.
业务层
业务层负责实现用户在问题域中理解的任何业务规则或系统要求.
它还重用了由持久层定义的模型.
持久层
持久层由负责保存和检索应用程序数据的类和组件组成.
该层还定义了一个映射模型类和数据库之间. NHibernate主要用于此层.
数据库
数据库存在于.NET应用程序之外.
这是系统状态的实际持久表示.
如果是SQL使用数据库,数据库包括关系模式和可能存储的过程.
帮助程序/实用程序类
每个应用程序都有一组支持其他层的辅助或实用程序类:例如,UI窗口小部件,消息传递类,异常类和日志记录实用程序.
这些元素不被视为图层,因为它们不遵循分层架构中层间依赖的规则.
NHibernate架构
这是一个高级视图NHibernate应用程序,您还可以看到简单的NHibernate架构.
应用程序代码使用NHibernate ISession 和 IQuery API进行持久性操作,只需管理数据库事务,理想情况下使用NHibernate ITransaction API.