Asp.Net三层体系结构应用实例(附C#源代码)
随着互连网应用深入和普及,三层体系结构的应用模式也得到更多人的青睐。从Asp.net启蒙认识PetShop及Duwamish程序,给我极深刻印象。受这些程序的影响似乎形成了一种规范,最后所有人都按照这两个模型去仿造。PetShop及Duwamish适合有编程基础的人员去研究。初学者还是从最基础学起。在这里我简单介绍一下三层结构应用,并结合一个实例如何建立三层结构的ASP.NET应用程序。
三层结构简介
所谓三层即界面展示层/业务逻辑层/数据访问层。
a.界面展示层 Web User Interface,简称UI
界面展示层:所有网页,窗体,与用户交互的界面。该层负责显示数据,输入数据,显示报表等功能。
展示层的代码相当简单,如显示由业务逻辑层返回的数据,操作界面上的控件,设置界面颜色,形状,皮肤等代码。但不负责业务操作如数据校验,逻辑运算,算法等功能。
b.业务逻辑层 Business Logic Layer (BLL)
业务逻辑层负责处理业务,数据校验,逻辑运算,返回数据交给界面展示层等功能。逻辑层代码会是较多的。但它莫大贡献是分离了界面层的代码。由初学者万物归一体的设计概念将界面代码与业务代码统统写在一个窗体,但后来发现代码越来越复杂,天天要拆蜘蛛网。于是有人想把一部分代码分离出来单独封装在某个地方,通过分类整理,于是逻辑层就产生了。初学者经常会犯这个错,我们能理解。任何高级程序员都是从初学者演变的。只有通过学习和进化思想才会走完初级,中级,高级这个过程。
c.数据访问层 Data Access Lay (DAL)
封装所有与数据库操作的代码。数据访问层集合SQL语法,存储过程,函数,视图,字段,类型等相关信息。那为什么不把这些代码写在业务逻辑层呢?要弄懂这个概念如上面所说的还要以大化小,以小化无,物以类聚! 把相关类似功能集合在一起便于管理阅读和修改。程序本身是一堆代码的集合体,如果任何东西都凑一块是最糟糕的事。所以我们要学会分离,整理和归纳。假设某一天项目经理要求将UserID字段改为x9s8d为了避免黑客猜测字段。那么你只需要在数据访问层搜索UserID替换之,而丝毫不影响业务逻辑层及界面展示层的代码!
通过三层架构图和ASP.NET实例程序框架图可以看出各层次之间的互动关系。
id | 项目名称 | 描述 | 用途 | 引用关系 | 实例文件 | 相关方法 |
1 | Web UI | 界面展示层 | Web页面和控件 | 引用BLL,Models | Default.aspx Default2.aspx | Login(),AddUser(), |
2 | BLL | 业务逻辑层 | 负责登录,注册用户,获取用户列表等业务操作 | 引用DAL,Models | bllUser.cs, UserRole.cs | Login(),AddUser(), ValidateLogin(), |
3 | Models | 业务实体类 | 定义对象实体类 | 无 | TUser.cs | |
4 | DAL | 数据访问层 | 调用DataProvider 相关方法修改或获取数据。 | Models | DataProvider.cs dalUser.cs | Login(),AddUser(), ExistsUser() |
DataProvider | 数据提供者 | 操作Access数据库,将数据返回DAL调用方法。 | System.Data.OleDb | DataProvider.cs | CreateConnection(), GetTable(),ExecScalar(), ExecNoQuery() |
扫一扫加作者微信