.NET设计层面上的体系架构,如1.1图是从设计层面上划分的.NET体系架构。
图 1.1
软件设计的原则是为了提高软件系统的可复用性和可扩展性,我们采用的手段是为应用系统划分层次,这是一种逻辑上的划分不是物理上的划分,也就是这些层可以是在一台电脑上也当然可以分布到在多台电脑上。这些层之间是松耦合的,层的内部是高内聚的。因此,降低耦合是软件设计的目标,能够设计出低耦合的系统,就意味着我们的系统具有可复用性和可扩展性了。
1.1.1 表示层
表示层(Presentation Layer)是用户与系统交互的组件集合,用户通过这一层向系统提交请求或发出指令,系统通过这一层接收用户请求或指令,然后,将指令消化吸收后调用下一层,再将调用的结果展现到这一层。表示层应该是轻薄的不应该具有业务逻辑,如果在表示层中采用Windows Form技术就是我们熟悉的桌面系统。如果在表示层中采用ASP.NET和HTML等技术,这就是我们说的Web系统,这时候我们将表示层也称为Web层。但是不论采用什么技术表示层都应该是轻薄的。
1.1.2 业务逻辑层
业务逻辑层(Business Logic Layer)是系统的核心业务处理层的组件集合,负责接收表示层的指令和数据,消化吸收后,进行组织业务逻辑的处理,并将结果返回给表示层。为了降低表示层和业务逻辑层的耦合问题,我们会在两层之间引入接口,然后在运行期注入依赖关系。
1.1.3 数据访问层
数据访问层(Data Access Layer)是业务逻辑层用于访问数据层的组件集合,从设计规范上讲为了降低耦合度,业务逻辑层不应该具有访问数据库的代码,访问数据层的代码应该放到数据访问层中,在数据访问层中一般是通过DAO(数据访问对象)访问数据层的,也是为了降低耦合度,DAO被设计为接口,DAO实现部分中可以通过ADO.NET技术,也可以使用一些框架如NHibernate等。
1.1.4 EIS层
EIS层是企业信息系统层,是系统的数据来源,可以是数据库、文件(例如CSV、XML文件等)和遗留系统(数据来源别的系统),但多数情况下是指的是数据库。