三层
- 三层结构概述:
:有逻辑层和物理层划分
物理上的三层:显示层/业务层/数据层
(客户PC:应用服务器;数据库服务器)
逻辑:UI/BLL+DAL/DB
我们讨论的(逻辑)三层结构:
UI、BLL、DAL
为什么要使用三层架构?
- 不是所有系统都需要三层架构的。当业务很复杂才需要。
什么情况下不需要?
- 业务逻辑简单
- 没有真正的数据存储层,所以也就不需要数据访问层
什么情况下需要使用?
BLL+DAL(既有数据访问层,也有业务逻辑层)
- 必备基础知识:
- 显示层View/UI
- 业务逻辑层BLL(Business Logic Layer)
- 数据访问层DAL(Data Access Layer)
DAL的作用:(和数据源打交道)
从数据源(不一定是数据库)加载数据(select)
向数据源写入数据(Insert/Update)
从数据源删除数据(Delete)
仅限于和数据源操作
- DAL中常用的技术
ADI,NET+SQL语句
O/R Mapping框架 NHiberate
访问SQL Server 数据库时Ling to SQL
DAO是数据访问对象
二、显示层
UI的作用:
向用户展现特定业务数据
采集用户的输入信息和操作
UI设计的原则:
用户至上,兼顾简洁
在满足用户的条件下,尽量让界面简单。
UI中常用的技术
Windows Form:Form、Control
ASP.Net: aspx、ascx、master、html
添加完控件,然后修改名字,再修改一些特别注意的地方
三、业务逻辑层
BLL的作用
从DAL中获取数据,以供UI显示用。
从UI中获取用户指令和数据,执行业务逻辑。
从UI中获取用户指令和数据,通过DAL写入数据源。
BLL的职责机制
UI->BLL->UI
UI->BLL->DAL->BLL->UI
- 在具体项目中的应用 –原则
DAL只提供基本的数据访问,不包含任何业务相关的逻辑处理;
UI只负责显示和采集用户操作,不包含任何的业务相关的逻辑处理;
BLL负责处理业务逻辑。通过获取UI传来的操作指令,决定执行业务逻辑,在需要访问数据源的时候直接交给DAL处理。处理完成后,返回必要数据给UI。
- 具体应用-Assembly
DAL/BLL/UI分别在不同的程序集中(三层结构有扩展性,放到不同的程序集中可以替换)
各个层之间的引用关系
UI->BLL->DAL
DAL 所在程序集不引用BLL和UI
BLL需要引用DAL
UI直接引用BLL,可能会间接引用DAL。
(非常忌讳互相引用,所以才有了Model的业务数据模型)
四、Using System.Data.SqlClient
只要用到SqlConnection conn = Singleton.GetSingleton().Conn; SqlCommand cmd = new SqlCommand(); SqlDataReader r SqlDataAdapter da = new SqlDataAdapter(cmd); 都要引用。
只要和数据库交互,必须要有连接字符串。