ImageVerifierCode 换一换
格式:DOCX , 页数:13 ,大小:286.34KB ,
资源ID:9788427      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/9788427.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(基于NET结构的软件系统框架的设计与实现.docx)为本站会员(b****8)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

基于NET结构的软件系统框架的设计与实现.docx

1、基于NET结构的软件系统框架的设计与实现基于NET结构的软件系统框架的设计与实现基于.NET结构的软件系统框架的设计与实现摘要:本文以教务管理系统为例,分析了基于.NET结构的软件系统框架的特点,介绍了采用ADO.NET、实体类、LINQ To SQL、ADO.NET实体框架等四种开发技术实现基于.NET结构的软件系统框架。阐述了开发过程中的存在问题,并介绍了LINQ To SQL、ADO.NET实体框架等微软最新技术。关键词:软件系统框架;LINQ To SQL;ADO.NET实体框架; 三层架构中图分类号:TP311 文献标识码:A0 引言 在构建大型的、复杂的企业级项目时,通常需要大量的

2、代码。考虑到细化开发人员的分工、有利于代码维护和代码复用等因素,通常需要将整个应用分为若干个层次。其中,最流行的是三层架构程序设计方法。分层架构体现了“分而治之”的思想:通过将一个大的复杂的问题分解成许多小的相对简单的问题,然后逐个解决。随着高等学校的规模不断扩大,学生数量急剧增加,有关学生的各种信息量也成倍增长。高业务逻辑层(BLL)和数据访问层(DAL)。三层的作用分别如下:表示层:为用户提供交互操作界面,这一点不论是对于Web还是WinForm都是如此,就是用户界面操作。我们网站展示给用户看的界面。业务逻辑层:负责关键业务的处理和数据的传递。复杂的逻辑判断和涉及到数据库的数据验证需要在此

3、做出处理。根据传入的值返回用户想得到的值,或者处理相关的逻辑。数据访问层:见名知意,负责数据库数据的访问。主要为业务逻辑层提供数据,根据传入的值来操作数据库。用ADO.NET实现三层结构应用系统时,DataSet的主要作用是三层之间数据传递的载体。DataView是DataTable的动态数据视图,我们使用DataView的SortRowFilter属性实现数据的排序、过滤。用ADD.NET实现三层结构应用系统时,数据访问层主要使用的类有:SqlConnection类,实现数据库连接。SqlCommand类,执行SQL命令。SqlDataReader类,读取数据。SqlDataAdapter类

4、,执行SQL命令,返回DataSet。DataSet类,封装用户请求数据。用ADD.NET执行带参数的SQL命令时,我们需要使用参数(Parameters)集合的Add方法为SQL命令添加参数,包括参数名称、参数类型。业务逻辑层实现数据传递、处理时,首先引用数据访问层,其次实例化数据访问层对象,最后调用数据访问层功能,并实现数据处理。下面我们具体介绍使用ADO.NET实现教务管理系统中的学生信息维护模块的学生信息加载功能。(1)新建一个空的解决方案:TeacherManagerSys,添加表示层、业务逻辑层、数据访问层,并添加各层之间的依赖:表示层依赖于业务逻辑层,业务逻辑层依赖于数据访问层。

5、解决方案中的文件结构如图2所示: 图2 教务管理系统解决方案中的文件结构(2)实现数据访问层,关键代码如下: public class StudentInfoService string conStr = Data Source=.;Initial Catalog=eisbook;Integrated Security=True ; public DataSet GetStudentInfo() DataSet ds = new DataSet(); SqlConnection cn = new SqlConnection(conStr); cn.Open(); string sql = se

6、lect 学号,姓名,班级编号,性别,年级,政治面貌编号,民族编号,籍贯编号,身份证号,学籍编号 from 学生信息; SqlDataAdapter ad = new SqlDataAdapter(sql, cn); ad.Fill(ds); return ds; (3)实现业务逻辑层代码,关键代码如下:using TeacherManagerSysDAL;public class StduentInfoManager StudentInfoService studentService = new StudentInfoService(); public DataView GetStudent

7、Info() DataView dvstudent = new DataView(); dvstudent.Table = studentService.GetStudentInfo().Tables0; return dvstudent; (4) 设计表示层界面及代码,最终运行结果如图3所示: 图3 “学生信息维护”运行效果图2 使用实体类实现软件系统中的框架设计在第一节中,我们使用了DataSet实现了在三层结构中各层之间的数据传递。但是在面对对象软件的开发中,我们使用DataSet开发三层结构有许多局限:DataSet不具备良好的面向对象(OO)特性,使用起来不够直观、方便;对DataS

8、et中的数据进行查找时容易出错。例如:我们要查询DataSet中一个表的某个值时,必须指定行索引与列名,这只是一个简单的,如果稍微复杂一点就需要遍历所有的行集。由于DataSet的核心结构与数据库的核心结构完全相同,所以它把数据结构完全暴露在表示层和业务逻辑层,增加了安全隐患。本节我们使用实体类实现软件系统中的框架设计。使用实体类的主要好处来自一个简单的事实,即实体类是完全受我们控制的对象,它具有面向对象的基本特征。我们可以自由地向实体类中添加行为(如:判断是否为空,如果为空指定默认值等,这只一个简单的扩展)。(1)实体类的实现实体类是现实实体在计算机中的表示。它贯穿于整个架构,负担着在各层次

9、及模块间传递数据的职责。下面我们看看实体类的定义,所谓实体类,简单地说就是描述一个业务实体的“类”,业务实体直观一点理解就是整个应用系统业务所涉及的对象(例如:我们教务管理系统中的、学员信息、班级、成绩、年级等)都是业务实体,从数据的存储来讲,业务实体就是存储应用系统信息的数据表,我们将每一个数据表中的字段定义成属性,并将这些属性用一个类封装这个类就称为“实体类”,如图4所示。图4 Admin实体类(2)使用实体类构建三层结构业务实体可以认为属于业务逻辑层。当然,如果将应用层次划分得更细致一点,可以将业务实体单独作为一层称为实体层。表示层、业务逻辑层、数据访问都依赖于实体层。各层之间数据的传递

10、主要是实体对象(业务信息封装在实体对象中)。这样,三层结构表述如下:表示层:位于最外层,离用户最近,用于显示数据和接受用户输入的数据,为用户提供一种交互式操作界面。表示层一般为Windows应用程序或Web应用程序。业务逻辑层:是表示层和数据访问层之间通信的桥梁,主要负责数据的传递和处理,例如数据有效性的检验、业务逻辑描述相关功能。业务逻辑层通常为类库。数据访问层:主要实现对数据的保存和读取操作。数据访问,可以访问关系数据库、文本文件或是XML文档。数据访问层通常为类库。业务实体层,简称为实体层。实体类,简单地说是描述一个业务实体的类,业务实体直观一点理解就是整个应用系统业务所涉及的对象,从数

11、据存储来讲,业务实体就是存储应用系统信息的数据表,我们将每一个数据表中的字段定义成属性,并将这些属性用一个类封装,这个类就是实体类。下面我们具体使用实体类使用实体类和三层结构教务管理系统中的框架设计,具体步骤为:新建一个空的解决方案:TeacherManagerSys,添加表示层、业务逻辑层、数据访问层及业务实体,并添加各层之间的依赖:表示层依赖于业务逻辑层及业务实体,业务逻辑层依赖于数据访问层及业务实体,数据访问层依赖于业务实体。在业务实体中,为了便于开发和管理,我们将定义的实体类与数据库中的表对应,用数据库中表的名称来命名实体类,如民族表,对应到实体类NativePlace:public

12、class NativePlace string 籍贯编号; public string 籍贯编号1 get return 籍贯编号; set 籍贯编号 = value; string 籍贯; public string 籍贯1 get return 籍贯; set 籍贯 = value; 与第一节类似,表示层、业务逻辑层、数据访问层代码基本相同,在此不再表述。3 使用LINQ实现软件系统中的框架设计长期以来,开发社区形成以下格局:面向对象与数据访问两个领域长期分裂,各自为政,编程语言中的数据类型与数据库中的数据类型形成两套体系。例如:C# 中字符串用 string 表示,SQL 中字符串用

13、NVarchar、Varchar、Char等表示。SQL 编码体验落后:没有智能感应,没有严格意义上的强类型和类型检查。SQL 和 XML 都有各自的查询语言,而对象没有自己的查询语言。LINQ( Language Integrated Query )即语言集成查询,是一组语言特性和API,使得你可以使用统一的方式编写各种查询。查询的对象包括XML、对象集合、SQL Server 数据库等等。LINQ 主要包含以下三部分:LINQ to Objects 主要负责对象的查询、LINQ to XML 主要负责 XML 的查询、LINQ to ADO.NET 主要负责数据库的查询。而LINQ to

14、ADO.NET主要包含:LINQ to SQL、LINQ to DataSet、LINQ to Entities。LINQ架构如图5所示: 图5 LINQ架构如图与第1节、第2节不同,我们重新构建三层结构。如图6所示: 图6 使用LINQ的三层结构软件模型我们这样做的目的是:(1)三层结构不允许在表示层中使用任何有关数据访问的内容,因此表示层中不能使用LINQ语法直接去访问数据,即便是已经对象化的;(2)之所以把LINQ语句放在逻辑层是因为,LINQ语法能够与C#混合使用,与传统的TSQL语言有很大不同,而且把它放在逻辑层,能够更加方便的处理业务上的规则。与此同时该层访问的并非数据实体,所以仍

15、然是建立在数据访问层之上的层;(3)在数据访问层由VS2010自动建成,将数据对象化,使我们可以使用LINQ语法与访问它。表示层的主要功能是:(1)使用LINQ把数据展示给用户;(2)INQ将用户请求数据传递到业务逻辑。业务逻辑层的主要功能是:(1)传递IQueryable;(2)对IQueryable中的数据进行处理。数据访问层的主要功能是:(1)将数据库中的数据转化为IQueryable中,(2)将IQueryable中的数据保存到数据库中。下面我们具体使用LINQ和三层结构实现学生信息管理系统实体。 下面我们使用LINQ和三层结构具体实现教务管理系统中的登录功能。具体步骤如下:(1)与第

16、一节类似,新建一个空的解决方案:TeacherManagerSys,添加表示层、业务逻辑层、数据访问层,并添加各层之间的依赖:表示层依赖于业务逻辑层,业务逻辑层依赖于数据访问层。(2)在数据访问层中添加TeachDatadbml:选中数据访问层,右击“添加”、“新建项”, “添加新项”对话框中选择“LINQ to SQL类”,输入TeachData.dbml,单击“添加”。(3)配置数据源:在“服务器资源管理器”中选择“添加连接”,并指定教务管理系统“eisbook”数据库,把“eisbook”数据库中的用户类型表等数据表拖到 LINQ to SQL 的设计器中。(4)在数据访问层添加代码,实

17、现用户登录:TeachDataDataContext context = new TeachDataDataContext(); public bool Login(string userName, string userPwd) var user= from userInfo in context.用户类型 where userInfo.LoginId.Equals(userName) & userInfo.Loginpwd.Equals(userPwd) select userInfo; if (user.Count() = 1) return true; else return fals

18、e; (5)编写业务逻辑层代码。using TeacherManagerSysDAL;using TeacherManagerSysDAL;public bool Login(string userName, string userPwd) UserService userSer = new UserService(); return userSer.Login(userName, userPwd); (6)编写表示层代码: using TeacherManagerSysBLL; UserManager userMana = new UserManager(); private void bt

19、nLogIn_Click(object sender, EventArgs e) bool f = userMana.Login(txtLogInId.Text.Trim(), txtLogInPwd.Text.Trim(); if (f = true) MainForm mainForm = new MainForm(); mainForm.Show(); this.Hide(); else MessageBox.Show(用户名或密码错误!); 通过上述编码,利用LINQ和三层结构实现了用户登录功能,对比利用实体类,代码简单很多。下面我们继续使用LINQ和三层结构实现教务管理系统的其他功能

20、。4 使用实体框架实现软件系统中的框架设计实体框架是ADO.NET中的一组支持开发面向数据的软件应用程序技术。实体框架使开放人员可以采用特定于域的对象和属性的形式使用数据,而不必自己考虑存储这些数据的基础数据库表和列,大大提升了数据访问代码的通用性、可读性和编程效率。实体框架(Entity Framework)全称为ADO.NET Entity Framework 实体框架,是微软以 ADO.NET 为基础所发展出来的对象关系对应 (O/R Mapping) 解决方案。用于支持开发人员通过对概念性应用程序模型编程(而不是直接对关系存储架构编程)来创建数据访问应用程序。目标是降低面向数据的应用程

21、序所需的代码量并减轻维护工作。数据建模通常将数据模型分为3个部分:概念模型、逻辑模型和物理模型。基本结构如图7所示: 图7 实体框架基本结构图下面我们使用实体框架和三层结构实现教务管理系统中的课程表维护功能。具体步骤如下:(1)与前几节类似,新建一个空的解决方案:TeacherManagerSys,添加表示层、业务逻辑层、数据访问层,并添加各层之间的依赖:表示层依赖于业务逻辑层,业务逻辑层依赖于数据访问层。(2)在数据访问层中添加实体数据模型:TeacherManager.edmx。选中数据访问层,右击“添加”、“新建项”,在“添加新项”对话框中选择“ADO.NET实体数据模型”,输入Teac

22、herManager.edmx,单击“添加”。(3)配置数据源:在看到的视图数据模型向导,选择“从数据库生成”,点“下一步”。选择数据库连接,我们创建一个新连接,选择“新建连接”,填写好登陆信息并选择教务管理系统数据库“eisbook”后,点“确定”,再点“下一步”。(4)在出现的对话框中选择数据对象对话框中选择本示例用到的两个数据表:课程表、课程信息表。并确保“在模型中加入外键列”,单击“完成”按钮。经过上述步骤,在数据访问层自动添加了两个实体类:“课程信息”类、“课程表”类,同时在数据访问层自动添加了访问数据库的配置文件App.Config: (5)在数据访问层添加CourtableSer

23、vice.cs类,编写代码,实现课程表的查询、添加、修改、删除等方法,如查询代码如下: eisbookEntities eisbookDb=new eisbookEntities(); public IQueryable GetAllCourse() var result = from S in eisbookDb.课程表 join G in eisbookDb.课程信息 on S.课程编号 equals G.课程编号 select new S.编号,S.课序号, S.课程编号, G.课程名称, S.上课时间天,S.上课时间节,S.上课地点 ; return result; 与上几节类似,可以

24、编写其他各层代码,通过上述编码,利用实体框架、LINQ语言和三层结构实现了教务管理系统中课程表的维护功能,对比利用实体类,代码简单很多。 至此,如何在三层架构中使用实体框架就向你介绍完了,它应该能满足一般应用的要求。在实体框架结合VS2010后,我们发现一个最大的好处是实体对象不再需要我们自己编写了,加上调用存储过程智能感知的支持,确实非常方便。5结束语本文通过教务管理系统,首先使用ADO.NET实现三层结构软件框架,在该技术中,三层结构之间数据传递的载体是DataSet。其次,为消除关系数据与类之间的差别,以便更好地使用面向对象的思想来实现我们的传统,我们介绍了使用实体类实现软件系统框架。再次,分析了微软的最新技术:LINQ TO SQL的概念和基本架构,对其核心技术和新特性进行了详细的描述。结合三层结构,详细介绍了LINQ TO SQL数据库访问的基本方法,如查询、修改、插入、删除等操作。最后,微软的主推框架:ADO.NET实体框架,以及如何在三层架构中使用实体框架,在实体框架结合VS2010后,我们发现一个最大的好处是实体对象不再需要我们自己编写了,加上调用存储过程智能感知的支持,确实非常方便。

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1