三层结构概述:
分为物理上(硬件)和逻辑上的划分。
物理上划分:显示层,业务层,数据层
逻辑上划分:UI层,BLL层,DAL层
物理和逻辑可能并不是一一对应的,可能物理上有两个结构,但是逻辑上有三个结构
两层结构:
客户机和服务器就是典型的两层结构
为什么使用三层结构?
业务逻辑比较复杂的时候,需要将业务单独拿出来。
业务逻辑简单的时候是不需要三层的。
三层的一些基本知识:
业务层里面的数据访问层:
DAL作用:
从数据源加载数据(如果面对的是数据库,则相当于select功能)
向数据源中写入数据(inset/update)
从数据源中删除数据(delete)
功能就是和数据源打交道
只提供基本的数据访问,不包含任何业务相关的逻辑处理。
需要在DAL里引用两个命名空间:
using System.Data;
using System.Data.SqlClient;
using System.Data: System.Data命名空间包含的是一些数据库操作所需要用到的普通数据,如数据表,数据行等,这个对所有数据库都是必须的。
using System.Data.SqlClient: System.Data.SqlClient 命名空间是用于 SQL Server 的 .NET 数据提供程序。
DAO(Data Access Object)是数据访问接口
ODBC(Open Database Connectivity)是开放数据库连接
业务层里面的业务逻辑层:
BLL(Business Logic Laye):
从DAL中获取数据,提供UI显示用。它是一个连接桥。
负责业务逻辑,通过获取UI传来的操作指令,决定执行业务逻辑,在需要访问数据源的时候直接交给DAL处理。处理完成后,返回必要数据给UI。
UI(User Interface Design)层(显示层)
向用户展现特定业务数据,不能和数据源直接打交道。
不包含业务逻辑。
采集用户的输入信息和操作。进行简单一点,用户至上。
Model层
Model是一个独立的,和其他类没有任何关系。他是用来存放数据模型的
它属于那一层,很难断定,它是封装数据用的,在三层之间传输数据用的。
所以需要在DAL和DLL里面都需要引用Model。但是它只是一个业务数据模型,和数据库里面的还是有差异的。
原则
DAL只提供基本的数据访问,不包含任何业务相关的逻辑处理。
UI层只负责显示和采集用户操作,不包含任何的业务相关的逻辑处理。
BLL负责处理业务逻辑:通过获取UI传来的操作指令,决定执行业务逻辑,在需要访问数据源的时候直接交给DAL处理,处理完成后,返回必要数据给UI。
UI引用BLL,BLL引用DAL。三层忌讳交叉引用。