【三层结构概述】
物理划分:(硬件上的划分)显示层、业务层、数据层
逻辑划分:UI/BLL(业务逻辑)+DAL(数据访问)/DB(我们讨论的三层)
【为什么要用三层】
为了将客户显示、业务逻辑、数据访问分开
【什么情况下用三层】
有DAL(数据访问)和BLL(业务逻辑)
业务逻辑简单、没有真正的数据存储层(不需要三层)
【必备基础知识】
1.业务逻辑层BLL(Business Logic Layer)
BLL的作用:从DAL中获取数据,以供UI显示用;从UI中获取用户指令和数据,执行业务逻辑;从UI中获取用户指令和数据,通过DAL写入数据源。
BLL的职责机制:UI->BLL->UI ; UI->BLL->DAL->BLL->UI。
2.数据访问层DAL(Data Access Layer)
DAL作用:数据源加载数据(Select)、向数据源写入数据(Insert/Update)、从数据源删除数据(Delete) 和数据源打交道。
DAL中常用的技术:ADO.NET+SQL语句、o/R Mapping框架NHiberate、访问SQL Server数据库时Linq to SQL。
3.界面层View/UI(User Interface)
UI作用:向用户展现特定业务数据、采集用户的输入信息和操作。
UI设计的原则:用户至上、兼顾简洁。
UI中常用的技术:WindowsForm:Form、Control ASP.NET: aspx、ascx、master、html。
4.实体类Modal
Modal作用:声明一些字符串并转换为属性供三层调用,使得总体逻辑更加简单明了。
5.数据操作类DBHepler
DBHepler作用:和增加Modal类类似,统一了DAL层中代码的风格和格式,方便维护。
【在具体项目中的应用】
1.DAL只提供基本的数据访问,不包括任何业务相关的逻辑处理。
2.UI只负责显示和采集用户操作,不包含任何的业务相关的逻辑处理。
3.BLL负责处理业务逻辑,通过获取UI传来的操作指令,决定执行业务逻辑,再需要访问数据源的时候直接交给DAL处理,处理完成后,返回必要数据给UI。
具体应用:
1.DAL/BLL/UI分别在不同的程序集中,各个层之间的引用关系UI->BLL->DAL。
2.DAL所在程序集不引用BLL和UI。
3.BLL需要引用DAL。
4.UI直接引用BLL,可能会间接引用DAL。
特注:忌讳交叉引用,为了避免这个问题,出现了Model(实体);为了统一DAL层代码格式,出现了DBHelper(数据操作类)。
【感受】
在学习三层的过程中一步一步去理解其中的结构,理解其中的逻辑,真正了解了之后并且具备对以上知识的深刻理解相信再敲代码的过程中会得心应手的,加油!