收藏 分销(赏)

三层架构.pptx

上传人:快乐****生活 文档编号:4599826 上传时间:2024-10-03 格式:PPTX 页数:41 大小:1.67MB
下载 相关 举报
三层架构.pptx_第1页
第1页 / 共41页
三层架构.pptx_第2页
第2页 / 共41页
三层架构.pptx_第3页
第3页 / 共41页
三层架构.pptx_第4页
第4页 / 共41页
三层架构.pptx_第5页
第5页 / 共41页
点击查看更多>>
资源描述

1、目标目标使用三层结构开发项目使用三层结构开发项目体会到使用三层结构开发的优势体会到使用三层结构开发的优势为什么需要三层结构为什么需要三层结构服务员只管接待客人厨师只管烹炒客人要的美食采购员只管按客人需求采购肉,海鲜,蔬菜他们各负其责共同协作为客人提供美食顾客服务员厨师采购员饭店饭店服务员厨师采购员为什么需要三层结构为什么需要三层结构离职、请假离职、请假其他服其他服务员代替务员代替离职、请假离职、请假离职、请假离职、请假其他厨其他厨师代替师代替其他采其他采购员代替购员代替服务员厨师采购员为什么需要三层结构为什么需要三层结构三层结构软件模型三层结构软件模型 表示层表示层 业务逻辑层业务逻辑层 数据

2、访问层数据访问层 软件软件系统系统 饭店饭店 为什么需要三层结构为什么需要三层结构:登录实现部分:登录实现部分(LoginForm类类)代码代码我们从三方面对登录实现部分代码进行分析我们从三方面对登录实现部分代码进行分析1、界面控件数据绑定实现、界面控件数据绑定实现2、逻辑判断实现、逻辑判断实现3、数据库访问实现、数据库访问实现首先我们看一下界面部分的关键代码首先我们看一下界面部分的关键代码 为什么需要三层结构为什么需要三层结构 /登录登录 private void btnLogIn_Click(object sender,EventArgs e)/.if(ValidateInput()/调用

3、用户验证方法调用用户验证方法 isValidUser=ValidateUser(cboLogInType.Text,txtLogInId.Text,txtLogInPwd.Text,ref message);/如果是合法用户,显示相应的窗体如果是合法用户,显示相应的窗体 /.界面层实现界面层实现 为什么需要三层结构为什么需要三层结构 public bool ValidateUser(string loginType,string loginId,string loginPwd,ref string message)int count=0;/数据库查询的结果数据库查询的结果 bool resul

4、t=false;/返回值,是否找到该用户返回值,是否找到该用户 /查询是否存在匹配的用户名和密码查询是否存在匹配的用户名和密码 if(loginType=“管理员管理员”)/判断判断是否是是否是管理员用户管理员用户 /数据访问实现代码数据访问实现代码.else if(loginType=学员学员)/数据访问实现代码数据访问实现代码.return result;逻辑判逻辑判断实现断实现用户登录实现方法用户登录实现方法 为什么需要三层结构为什么需要三层结构 public bool ValidateUser(string loginType,string loginId,string loginPw

5、d,ref string message)/./查询是否存在匹配的用户名和密码查询是否存在匹配的用户名和密码/查询用查询用sql语句语句 string sql=string.Format(SELECT COUNT(*)FROM Admin WHERE LogInId=0 AND LogInPwd=1,txtLogInId.Text txtLogInPwd.Text);/./查询用查询用sql语句语句 string sql=string.Format(SELECT COUNT(*)FROM Student WHERE LogInId=0 AND LogInPwd=1,txtLogInId,txt

6、LogInPwd);管理员信息数据访问管理员信息数据访问 用户登录实现方法用户登录实现方法通过分析我们得到结论是?通过分析我们得到结论是?学员信息数据访问学员信息数据访问为什么需要三层结构为什么需要三层结构1、数据库访问和用户类型判断逻辑放在一起实现、数据库访问和用户类型判断逻辑放在一起实现2、用户界面层直接调用数据访问实现、用户界面层直接调用数据访问实现3、整个系统功能放在同一项目中实现、整个系统功能放在同一项目中实现结论是:结论是:从结论可知,我们开发的两层结构应用系统有哪些局限性?从结论可知,我们开发的两层结构应用系统有哪些局限性?为什么需要三层结构为什么需要三层结构两层结构:两层结构:

7、三层结构:三层结构:数据数据数据数据库库库库用户界面用户界面业务逻辑业务逻辑数据访问数据访问两层结构软件模型两层结构软件模型数据数据数据数据库库库库数据数据访问访问业务业务逻辑逻辑用户用户界面界面三层结构软件模型三层结构软件模型当数据库当数据库或或用户界面用户界面发发生改变时生改变时需需要重新开要重新开发发整个系统整个系统当数据库当数据库或或用户界面用户界面发发生改变时生改变时不不需要重新需要重新开开发,只做发,只做简简单调整即单调整即可可什么是三层结构什么是三层结构表示层表示层 业务逻辑层业务逻辑层 数据访问层数据访问层 数数数数 据据据据 库库库库为用户提供为用户提供交互操作界面交互操作界

8、面 负责关键业务的负责关键业务的处理和数据传递处理和数据传递 实现数实现数据库访问据库访问 服务员服务员 厨师厨师 采购员采购员 什么是什么是三层三层结构结构表示层:表示层:为用户提供一种交互式操作界面为用户提供一种交互式操作界面 什么是什么是三层三层结构结构业务逻辑层业务逻辑层是表示层与数据访问层之间的桥梁,负责数据处理、传递。是表示层与数据访问层之间的桥梁,负责数据处理、传递。用户请求数据用户请求数据用户请求数据用户请求数据/switch(type)case 管理员管理员:loginPwd=GetAdminLoginPwd(loginID);break;case 学员学员:loginPwd

9、=GetStudentLoginPwd(loginID);break;/什么是什么是三层三层结构结构数据访问层数据访问层数数数数 据据据据 库库库库用户请求数据用户请求数据ADO.NETSQL命令实现对数据的保存和读取操作实现对数据的保存和读取操作/.conn.Open();SqlDataReader objReader=objCommand.ExecuteReader();if(objReader.Read()studentlist.Add(objReaderLoginPwd);studentlist.Add(objReaderUserStateId);objReader.Dispose()

10、;conn.Close();/.什么是什么是三层三层结构结构三层之间依赖关系三层之间依赖关系表示层表示层业务逻辑层业务逻辑层数据访问层数据访问层什么是什么是三层三层结构结构三层之间的数据传递方向三层之间的数据传递方向业务逻辑层业务逻辑层数据访问层数据访问层表示层表示层客客户户请请求求客客户户请请求求响响应应数数据据响响应应数数据据如何搭建三层结构如何搭建三层结构如何搭建表示层、如何搭建表示层、业务逻辑层、数据业务逻辑层、数据访问层?访问层?如何实现各层之间如何实现各层之间的相互依赖?的相互依赖?要掌握这一切,我们将整个实现过程分为以下步骤要掌握这一切,我们将整个实现过程分为以下步骤 搭建三层结

11、构步骤搭建三层结构步骤1、搭建表示层(创建一个、搭建表示层(创建一个Windows应用应用程序)程序)2、搭建业务逻辑层(、搭建业务逻辑层(类库类库)3、搭建数据访问层(、搭建数据访问层(类库类库)4、添加各层之间的相互依赖、添加各层之间的相互依赖 现在我们打开现在我们打开VS IDE环境逐层搭建三层结构环境逐层搭建三层结构 搭建表示层搭建表示层2、在弹出的、在弹出的“新建项目新建项目“窗口中,选择窗口中,选择Windows应用程序应用程序选择选择语言语言种类种类项目类型项目类型创建解决方案创建解决方案输入项目名称输入项目名称MySchool选择项目选择项目生成路径生成路径1、文件、文件 新建

12、新建 项目项目:创建一个新项目:创建一个新项目搭建业务逻辑层搭建业务逻辑层2、在弹出的、在弹出的“新建项目新建项目”窗口中,选择类库窗口中,选择类库选择选择语言语言种类种类项目类型项目类型项目名称:项目名称:MySchoolBLL选择选择项目项目路径路径选择选择“添入解决方案添入解决方案”1、文件、文件 新建新建 项目项目:创建一个新项目:创建一个新项目搭建数据访问层搭建数据访问层2、在弹出的、在弹出的“新建项目新建项目“窗口中,选择类库窗口中,选择类库 选择选择语言语言种类种类项目类型项目类型项目名称:项目名称:MySchoolDAL选择选择项目项目路径路径选择选择“添入解决方案添入解决方案

13、”如何将三层中各自独立的项目产生依赖如何将三层中各自独立的项目产生依赖1、文件、文件 新建新建 项目项目:创建一个新项目:创建一个新项目 添加各层之间的相互依赖添加各层之间的相互依赖:添加表示层对业务逻辑层依赖:添加表示层对业务逻辑层依赖1、右键单击、右键单击“引用引用”选择选择“添加引用添加引用”2、选择、选择“项目项目”,选中,选中“逻辑层逻辑层”单击单击 确定确定 添加业务逻辑层对数据访问层的依赖与此类似添加业务逻辑层对数据访问层的依赖与此类似完成对逻完成对逻辑层的引用辑层的引用为什么需要实体类为什么需要实体类数数数数 据据据据 库库库库它不具备它不具备OO的优点的优点实现数据检索比较繁

14、琐、易出错实现数据检索比较繁琐、易出错它使数据结构暴露在业务逻辑层和表示层它使数据结构暴露在业务逻辑层和表示层为了消除以上局限性我们需要使用实体类为了消除以上局限性我们需要使用实体类DataSet解析实体对象解析实体对象构建实体对象构建实体对象返回行集返回行集为什么需要实体类为什么需要实体类处理窗体处理窗体表示层表示层表示层后台代码表示层后台代码业务逻辑层业务逻辑层数据访问层数据访问层数据库数据库用户请求用户请求传递参数传递参数展示数据展示数据返回返回请求数请求数据操作据操作调用存储过程调用存储过程返回返回解析实体对象解析实体对象构建实体对象或集合构建实体对象或集合为什么需要实体类为什么需要实

15、体类从从OOP思想考虑思想考虑它是完全受控制的对象它是完全受控制的对象 它具有面向对象的基本特征它具有面向对象的基本特征它可以自定义行为它可以自定义行为它消除了关系数据和对象之间的差异它消除了关系数据和对象之间的差异 它为我们在关系数据库和对象之间架起一座桥梁它为我们在关系数据库和对象之间架起一座桥梁 什么是实体类什么是实体类管理员管理员数据表数据表简单地说就是描述一个业务实体的类,例如:管理员信息简单地说就是描述一个业务实体的类,例如:管理员信息 管理员信息管理员信息对应的实体类对应的实体类三层结构中的实体类三层结构中的实体类:表示层如何使用实体类:表示层如何使用实体类 12三层结构中的实体

16、类三层结构中的实体类:业务逻辑层如何使用实体类:业务逻辑层如何使用实体类 业务逻辑层业务逻辑层 实实体体对对象象实实体体对对象象12表示层表示层 数据访问层数据访问层 三层结构中的实体类三层结构中的实体类:数据访问层如何使用实体类:数据访问层如何使用实体类 数数数数 据据据据 库库库库12完成本章任务的步骤完成本章任务的步骤实现业务实体层实现业务实体层新增项目新增项目MySchoolModels添加其它项目对实体项目的引用添加其它项目对实体项目的引用添加数据表对应的实体类添加数据表对应的实体类编写实体类编写实体类设计用户界面设计用户界面实现数据访问层实现数据访问层实现业务逻辑层实现业务逻辑层实

17、现表示层数据绑定实现表示层数据绑定实现业务实体层实现业务实体层选择选择语言语言种类种类项目类型项目类型输入项目名称输入项目名称MySchoolModels选择项目选择项目生成路径生成路径在解决方案在解决方案“MySchoolPro”上单击右键选择上单击右键选择“添加添加”新建项目新建项目实现业务实体层实现业务实体层类名称类名称在在“MySchoolModels”项目上单击右键选择项目上单击右键选择“添加添加”新建项新建项 依次添加依次添加“Admin.cs、Class.cs、Grade.cs”实现业务实体层实现业务实体层它是业务的基础、数据传递的载体,它与其他项目的依赖关系是什么?它是业务的基

18、础、数据传递的载体,它与其他项目的依赖关系是什么?实体类实体类 编写实体类编写实体类实现业务实体层实现业务实体层表示层表示层业务实体业务实体业务逻辑业务逻辑数据访问层数据访问层 实现实现三层三层对业务实体的依赖对业务实体的依赖设计用户界面设计用户界面 3、按需求添加所需窗体,并编辑窗体按需求添加所需窗体,并编辑窗体 1 1、在、在“MySchool”项目上单击右键选择项目上单击右键选择“添加添加”新建项新建项 2、在、在“添加添加新项新项“对话框中选择对话框中选择”Windows 窗体窗体”实现数据访问层实现数据访问层 2、在、在“添加添加新项新项“对话框中选择对话框中选择”类类”类名称类名称

19、如何实现高效的数据访问呢?我们需要掌握如何实现高效的数据访问呢?我们需要掌握using语句的使用语句的使用 新增类有:新增类有:AdminService.csStudentService.cs 1、在、在“MySchoolDAL”项目上单击右键选择项目上单击右键选择“添加添加”新建项新建项 实现数据访问层实现数据访问层:用户登录用户登录 1、在数据访问实现类中引用业务实体项目命名空间、在数据访问实现类中引用业务实体项目命名空间2、实例化、实例化SqlConnection对象,实现数据库连接对象,实现数据库连接3、实例化、实例化SqlCommand对象,执行对象,执行SQL命令命令4、实例化、实

20、例化SqlDataReader对象,读取数据对象,读取数据5、使用实体类传递信息、使用实体类传递信息实现业务逻辑层实现业务逻辑层 2、在、在“添加添加新项新项“对话框中对话框中 选择选择”类类”类名称类名称新增类有:新增类有:LoginManager.cs如何实现业务逻辑功能?如何实现业务逻辑功能?1、在、在“MySchoolBLL”项目上单击右键选择项目上单击右键选择“添加添加”新建项新建项 实现业务逻辑层实现业务逻辑层:用户登录用户登录 1、在业务逻辑处理类中引用数据访问层、业务实体层命名空间、在业务逻辑处理类中引用数据访问层、业务实体层命名空间2、实例化、实例化数据访问数据访问对象对象3

21、、调用数据访问功能、调用数据访问功能4、实现业务逻辑处理功能、实现业务逻辑处理功能实现表示层数据绑定实现表示层数据绑定:用户登录用户登录 1、在窗体后台实现类中引用业务逻辑层、业务实体层命名、在窗体后台实现类中引用业务逻辑层、业务实体层命名空间空间2、实例化业务逻辑处理对象和业务实体对象、实例化业务逻辑处理对象和业务实体对象3、数据绑定、数据绑定4、调用业务逻辑层功能、调用业务逻辑层功能总结总结 三层结构中各层之间相互依赖是如何实现的?三层结构中各层之间相互依赖是如何实现的?数据访问层的主要职责是什么?数据访问层的主要职责是什么?表示层的主要职责是什么?表示层的主要职责是什么?实体类在三层结构中的主要作用是什么?实体类在三层结构中的主要作用是什么?

展开阅读全文
相似文档                                   自信AI助手自信AI助手
猜你喜欢                                   自信AI导航自信AI导航
搜索标签

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服