三层架构(3-tier application) 通常意义上的三层架构就是将整个业务应用划分为:表现层(UI)、业务逻辑层(BLL)、数据访问层(DAL)。
1、表现层(UI):通俗讲就是展现给用户的界面,即用户在使用一个系统的时候他的所见所得。
2、业务逻辑层(BLL):针对具体问题的操作,也可以说是对数据层的操作,对数据业务逻辑处理。
3、数据访问层(DAL):该层所做事务直接操作数据库,针对数据的增添、删除、修改、更新、查找等。
三层架构创建:
创建四个项目,表现层项目类型为WebApplication,业务逻辑层、数据访问层、模型层均为类库。
添加引用:表现层引用业务逻辑层。业务逻辑层引用数据访问层。由于模型层负责在三层之间传递数据,所以每一层都要引用模型层。有时候还会有一个公共项目,每一层都会引用。
模型层(ORM):数据库中每一个表都在模型层创建一个类,一般情况类的名称和数据表名相同,如果数据库中表名为复数型式,一般模型层类名为单数。表中的字段在类中建成属性。
数据库访问层:每一个模型层的类,都在数据库访问层对应一个类,该类的命名一般为模型层中的类名+Services,此类中仅包含对该表的CRUD的方法。
业务逻辑层:业务逻辑层中的类名由业务决定,一般情况下也可以与数据访问层的类相对应,类名一般由表名+Manager命名。
表现层:由需求网页构成,调用业务逻辑层的方法。该层一般不出现SQL语句相关的内容,就算出现,也不能出现能执行的SQL语句。
数据库中的null和.net中的null不同,在.net中用DBNull.Value。在DBHelpSQL中,对参数数组要进行判断是否为null和长度是否为零,paras!=null&¶s.length>0。单元测试:对方法进行测试。判断数据库中某列是否为空dr.IsDBNull(dr.GetOrdinal(列名))。
模型层中外键的处理:
两种方式:为实体类添加状态id属性,存储状态id;为实体类添加状态属性,存储状态对象。
任何调用都可能出现异常,都需要try{}catch(){}。try catch的重要性。Page.ClientScript.RegisterClientScriptBlock()(在form标签前部输出),RegisterStartupScript()(在form标签后部输出)向客户端输出js脚本。