说起软件系统的层次结构,众说纷纭。不过,许多人都认为传统的C/S结构是两层结构——数据库服务器是一层,客户端应用程序是一层。从这一点来说,B/S结构可认为是三层结构——数据库服务器层、WEB应用服务器层和客户端浏览器一层。
但由于B/S结构的应用,开发者主要精力都集中在WEB应用服务器层,因此对这一层又进行了划分。在Duwamish 7.0中,提供了SystemFramework、Common、DataAccess、BusinessRules、BusinessFacade和web六个项目,每个项目都可认为是一层。但现在更流行的划分是三层数据访问层(Data Access Layer)、商务逻辑层(Business Logic Layer)和表现层(Representation Layer)。数据访问层直接访问和操作数据库,商务逻辑层调用数据访问层,表现层调用商务逻辑层。
表现层有的也叫用户接口层(User Interface Layer),意思是与用户直接进行交互的。在B/S开发中,表现层也有人叫做web层的。
在.Net PetShop 4.0中,有二十个左右的项目。这些项目有些直接是以层次的名称命名的,例如BLL;有些是以层次的名称作为后缀来命名的,如SQLProfileDAL、SQLServerDAL、OracleProfileDAL和OracleDAL等;有些项目包含了一些接口,以I为前缀;有些项目使用工厂模式,以Factory为后缀。不过总体上,还可以将其划分为三层结构。
比较Duwamish7.0与PetShop 4.0,后者项目众多,但使用工具生成的代码很少。而Duwamish7.0中的Common和DataAccess中的文件主要都是使用代码生成器产生的。当数据库的表结构更改后,使用代码生成器产生的代码通常要重新产生,因次如果对这两个项目中的代码做了手工的改动,在重新生成代码时,改动的代码将会丢失。而且Duwamish7.0对数据库的支持不容易扩充,如果想把数据库移到Oracle中,要改很多的代码。但在PetShop 4.0中,只是更改配置文件web.config。