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