- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
. .
word完美格式
基于3层架构的课程管理系统
本模块工作任务
任务3-1:三层架构划分
任务3-2:数据访问层的实现
任务3-3:业务逻辑层的实现
任务3-4:表示层的实现
本模块学习目标
1、掌握三层架构的划分原理
2、掌握各层的设计思路,和层之间的调用关系
3、利用三层架构实现对课程管理模块的重构
4、巩固OOP的基本概念和 OOP的编程思路
---------------------------------------------------------------------------------------------------------------------------------
任务3-1:三层架构划分
效果与描述
数据访问层业务逻辑层界面层
数据访问层
业务逻辑层
界面层
图3.1 包含多个项目的3层架构解决方案
本任务要求学生能够将原来的只有1个项目的课程管理模块,重构为标准的具有5个项目的3层架构的模块,并进行恰当的初始化,仍能实现课程记录的添加、浏览功能。在此过程中理解3层架构的划分原理,各层的任务,层之间的调用关系。
本任务的业务流程:
图3.2 单层转化为3层架构的业务流程
相关知识与技能
3-1-1 三层架构的划分原理
三层架构的划分如下图:
图3.3 三层架构原理图
各层的任务
数据访问层:使用ADO.NET中的数据操作类,为数据库中的每个表,设计1个数据访问类。类中实现:记录的插入、删除、单条记录的查询、记录集的查询、单条记录的有无判断等基本的数据操作方法。对于一般的管理信息软件,此层的设计是类似的,包含的方法也基本相同。此层的任务是:封装每个数据表的基本记录操作,为实现业务逻辑提供数据库访问基础。
业务逻辑层:为用户的每个功能模块,设计1个业务逻辑类,此时,需要利用相关的数据访问层类中,记录操作方法的特定集合,来实现每个逻辑功能。
界面层:根据用户的具体需求,为每个功能模块,部署输入控件、操作控件和输出控件,并调用业务逻辑层中类的方法实现功能。
层之间的调用关系
数据访问层的类,直接访问数据库,实现基本记录操作。
业务逻辑层的类,调用相关的数据访问类,实现用户所需功能。
界面层:部署控件后,调用业务逻辑层的类,实现功能。
将应用程序的功能分层后,对于固定的DBMS,数据访问层基本可以不变,一旦用户的需求改变,首先修改业务逻辑层,界面层稍做改动即可。这种做法使程序的可复用性、可修改性,都得到了很好的改善,大大提高了软件工程的效率。
3-1-2 ORM(对象关系映射)
在图3.1中看到,除了界面层、业务逻辑层和数据访问层之外,还有2个项目。其中,Common项目中一般放的是公用文件,如数据操作类DBHelper等,被数据访问层的类调用,其必要性在上个模块已述。Modal项目中存放的是实体类。
所谓的对象关系映射Object Relational Mapping,简称ORM,是为了解决面向对象的类,与关系数据库的表之间,存在的不匹配的现象,通过使用描述对象和关系之间映射的元数据,在程序中的类对象,与关系数据库的表之间建立持久的关系,用于在程序中描述数据库表。本质上就是将数据从一种形式转换到另外一种形式。
ORM是一个广义的概念,适应于关系数据库与应用程序之间的各类数据转换,目前有许多自动转换工具可用,如codesmith 等。在本教材中,利用手工书写代码的形式,实现ORM。
如对于学生选课管理系统数据库中的课程表course,其设计视图如下:
图3.4 Course表设计视图
可以这样设计类来描述它:
public class Course
{
private string courseId;
public string CourseId
{
get { return courseId; }
set { courseId = value; }
}
private string courseName;
public string CourseName
{
get { return courseName; }
set { courseName = value; }
}
private int courseCredit;
public int CourseCredit
{
get { return courseCr
您可能关注的文档
- 2012年集团公司标准化管理体系的构建与实施.doc
- 2015年高考语文试卷和答案_全国二卷__完整版.doc
- 2015年国赛D题_增益可控射频放大器.doc
- 2015年小学数学六年级分数四则混合运算题库(1).doc
- 2016年IDSA侵袭性念珠菌病临床实践的指南解读.ppt
- 2016年高考英语作文大全之高中英语书面表达常用连接词短语总结.doc
- 2017结肠癌CSCO的指南和2018NCCN的指南更新_副本.ppt
- 2017年_2018年《个人收入的分配》高三年级一轮复习课件.ppt
- 2017年_2018年学年四川省成都七中初一英语下学期期末试题无答案.doc
- 2017年最实用最全的_小学英语语法.ppt
最近下载
- NGSOK门机随机文件.doc VIP
- (正式版)DB15∕T 2843.3-2022 《边境口岸鼠疫检测实验室管理规范 第3部分:鼠疫核酸检测实验室》.docx VIP
- 氨基硅烷偶联剂对环氧涂层附着力的影响-附着力促进剂.PDF
- 安徽省 2021 年普通高等学校专升本招生考试《大学语文》冲刺期测试题.docx VIP
- NBT 10217-2019风力发电场生产准备导则.pdf VIP
- 企业主要负责人从十个方面开展座谈.pdf VIP
- 1.新版人教版小学四年级语文上册总复习高频考点题库及典型例题(附讲解).pdf
- 操作系统复习(填空题) .pdf VIP
- 2025学年上海市普陀区九年级语文12月阶段练习卷含答案.pdf VIP
- 安徽省 2021 年普通高等学校专升本招生考试《大学英语》冲刺期测试题 (1).docx VIP
原创力文档


文档评论(0)