三层结构基础知识

简介: 有DAL(数据访问)和BLL(业务逻辑)

【三层结构概述】


   物理划分:(硬件上的划分)显示层、业务层、数据层

   逻辑划分:UI/BLL(业务逻辑)+DAL(数据访问)/DB(我们讨论的三层)

 

20150127114139684.jpg


【为什么要用三层】


   为了将客户显示、业务逻辑、数据访问分开


【什么情况下用三层】


   有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(数据操作类)。

【感受】

   在学习三层的过程中一步一步去理解其中的结构,理解其中的逻辑,真正了解了之后并且具备对以上知识的深刻理解相信再敲代码的过程中会得心应手的,加油!

相关文章
|
4月前
|
存储 关系型数据库 MySQL
由浅入深:数据库编程概念与实战
由浅入深:数据库编程概念与实战
153 1
|
6月前
|
缓存 网络协议 网络安全
程序员必知的计算机网络的166个核心概念(上)
程序员必知的计算机网络的166个核心概念
|
23天前
|
存储 移动开发 自然语言处理
【软件设计师—基础精讲笔记1】第一章 计算机组成与体系结构
【软件设计师—基础精讲笔记1】第一章 计算机组成与体系结构
56 2
|
2月前
|
设计模式 存储 前端开发
【软件设计师备考 专题 】面向对象设计方法:体系结构、类的设计和用户接口设计
【软件设计师备考 专题 】面向对象设计方法:体系结构、类的设计和用户接口设计
61 0
|
7月前
|
运维 监控 架构师
第二章 软件过程与思想 第一节 基础
第二章 软件过程与思想 第一节 基础
|
6月前
|
存储 安全 网络协议
程序员必知的计算机网络的166个核心概念(下)
程序员必知的计算机网络的166个核心概念
|
11月前
|
程序员 C语言 C++
[C++]基本知识与概念
[C++]基本知识与概念
|
存储 XML 分布式计算
WebGIS的基本概念
WebGIS的基本概念
476 0
WebGIS的基本概念
|
存储 数据库
数据库系统概论第六章(关系数据理论)知识点总结(3)—— 范式知识点总结
假定2014104学生只选修了3号课程这一门课,现在因身体不适,不选修3号课程了,要将课程号删除,但同时,由于课程号是主属性,此操作将导致该整个元组的删除。这样,2014104学生信息都被删除了
176 0
数据库系统概论第六章(关系数据理论)知识点总结(3)—— 范式知识点总结
|
设计模式 缓存 前端开发
MVC架构思想简介
MVC架构思想简介