三层主要内容:
一、三层结构概述:
- 多层结构的划分方式:物理/逻辑
两层/三层结构
物理上的三层:显示层/业务层/数据层(客户PC;应用服务器;数据库服务器)
物理上的划分:
两层:
三层:
- 逻辑上划分VS物理上划分:
物理:显示层/业务层/数据层
逻辑:UI /BLL+DAL /DB
- 我们所讨论的三层结构:UI、BLL、DAL
应用场景:1、为什么要使用三层架构?
不是所有的程序都需要用到三层;
业务逻辑简单,没有真正的数据存储层的情况下不需要使用三层;
2、什么情况下需要使用三层?
当你的业务复杂到一定程度以后,当你的数据存储存储到相应的数据库或是一个独立的数据存储介质的情况下才需要使用三层结构;把数据访问脱离开业务单独存在,把业务脱离开UI单独存在,UI只需要呼叫业务访问层就可以实现跟用户的交互。
二、必备基础知识:
- Windows Form或ASP.NET基础
- ADO.NET 基础
- C#基础
- 面向对象的程序开发
- 程序集Assembly
- 命名空间Namespace
三、显示层View/UI
- UI的作用:向用户展现特定业务数据(把客户要的东西给他);采集用户的输入信息和操作(知道要干什么);
- UI设计的原则(用户要什么的就设计什么的):用户至上,兼顾简洁;
- UI中常用的技术:Windows Form:Form、Control ;ASP.NET : aspx、ascx、master、html ;
四、业务逻辑层BLL(Business Logic Layer)
- BLL的作用
从DAL中获取数据,以供UI显示用
从UI中获取用户指令和数据,执行业务逻辑
从UI中获取用户指令和数据,通过DAL写入数据源
- BLL的职责机制
UI->BLL->UI
UI->BLL->DAL->BLL->UI
数据模型“上窜(UI层)下蹦(数据访问层)”
Model是为了三层能够顺畅运行,在三层之间传输数据而存在的;三层都需要在引用里添加model,三层都知道model的存在,但是model不知道是谁调用它;
五、数据访问层DAL(Data Access Layer)
只管数据这一部分,跟数据打交道
- DAL的作用
从数据源加载数据(Select)
向数据源写入数据(Insert/Update)
从数据元删除数据(Delete)
- DAL中常用的技术
ADO.NET +SQL语句
O/R Mapping框架 NHiberate
访问SQL Server数据库时Linq to SQL(单表映射,简单数据库)
六、在具体项目中的应用
- DAL只提供基本的数据访问,不包含任何业务相关的逻辑处理;
- UI只负责显示和采集用户操作,不包含任何的业务相关的逻辑处理;(拿来主义,把其他层的数据拿来显示给用户看)
- BLL负责处理业务逻辑。通过获取UI传来的操作指令,决定执行业务逻辑,在需要访问数据源的时候直接交给DAL处理。处理完成后,返回必要数据给UI。
- DAL/BLL/UI分别在不同的程序集中
- 各个层之间的引用关系
UI->BLL->DAL
DAL所在程序集不引用BLL和UI;
BLL需要引用DAL;
UI直接引用BLL,可能会间接引用DAL;
要避免交叉引用!