NHibernate - 架构


如今,许多系统都是采用分层架构设计的,NHibernate 也拥有这种架构,并且与该设计完美配合。

分层架构

分层架构将系统分为多个组,每个组包含解决特定问题领域的代码,这些组称为层。大多数企业级应用程序使用由三层组成的高级应用程序架构-

  • 表示层
  • 业务层
  • 持久层
分层架构

例如,用户界面层(也称为表示层)可能包含用于构建网页和处理用户输入的所有应用程序代码。

分层方法的一个主要好处是,您通常可以对某一层进行更改,而不会对其他层造成任何重大干扰,从而使系统不那么脆弱且更易于维护

表示层

  • 它是最顶层,包含负责绘制用户界面、页面、对话框或屏幕、收集用户输入和控制导航的代码。

业务层

  • 业务层负责实现用户理解为问题域一部分的任何业务规则或系统要求。

  • 它还重用持久层定义的模型。

持久层

  • 持久层由负责保存和检索应用程序数据的类和组件组成。

  • 该层还定义了模型类和数据库之间的映射。NHibernate 主要用于这一层。

数据库

  • 数据库存在于 .NET 应用程序之外。
  • 它是系统状态的实际、持久的表示。
  • 如果使用 SQL 数据库,则该数据库包括关系模式和可能的存储过程。

帮助程序/实用程序类

  • 每个应用程序都有一组支持其他层的帮助程序或实用程序类:例如,UI 小部件、消息传递类、异常类和日志记录实用程序。

  • 这些元素不被视为层,因为它们不遵守分层体系结构中层间依赖关系的规则。

NHibernate架构

  • 它是 NHibernate 应用程序的高级视图,您还可以看到简单的 NHibernate 架构。

.Net环境
  • 应用程序代码使用 NHibernate ISessionIQuery API 进行持久性操作,并且只需管理数据库事务,最好使用 NHibernate ITransaction API。