基于NET的课程管理系统设计开发.doc_第1页
基于NET的课程管理系统设计开发.doc_第2页
基于NET的课程管理系统设计开发.doc_第3页
基于NET的课程管理系统设计开发.doc_第4页
基于NET的课程管理系统设计开发.doc_第5页
免费预览已结束,剩余38页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

毕业设计(论文) 第 39 页基于.NET的课程管理系统的设计与开发摘 要随着教育信息化的发展,利用网络平台进行课程管理工作给教师和学生都带来了很多的便利。本文阐述了基于.NET平台构建一个B/S模式三层结构的课程管理系统。此系统以SQL Server数据库为依托,采用先进的ADO.NET数据访问技术,使用全新的面向对象语言C#,结合ASP. NET设计并开发完成。系统分为表示层、业务逻辑层和数据层三层。表示层以动态页面作为用户操作界面,用户通过这一层与系统交互;业务逻辑层由业务处理层和数据操作层构成,根据表示层获得的用户命令,业务处理层调用数据操作层的数据访问接口实现业务功能;数据层将对底层数据的操作封装在数据访问基类中,以接口形式供给业务逻辑层调用。系统采用ADO.NET技术减少了与数据库的活动连接数目(即减少了多个用户争用数据库服务器上的有限资源的可能性),从而实现了最大程度的数据共享;采用ASP.NET技术实现了程序和代码的分离,使得程序代码更安全,移植更方便,执行效率也更高,且更容易配置成分布式系统。关键词:.NET平台,课程管理系统,三层体系结构,ADO.NET,ASP.NETBased on .NET platform course management system design and developmentAbstractWith the development of educational informationization, Course management through web platform brings so many advantages for teachers and students. This paper discussed a 3-layer architecture course management system based on .NET technique. The system adopts SQL Server, ADO.NET, C# and ASP.NET. The system architecture includes denotation layer, operation logical layer and data layer. With dynamic page as the UI, denotation layer is used to intercommunion with the system by the user; Operation logical layer includes operation processing layer and data operating layer, the operation processing layer call the interfaces of data operating layer to realize the functions; Operations on the data are provided as an interface by the data accessing basal class of data layer.The system adopts ADO.NET technique to cut the number of active connections to database, so it realize the data sharing to the deepest extent; By adopting ASP.NET technique , we can divide the program and code into two different parts, so the programming code is more safe, more easily transported , executes more efficiently, and is easily assembled to distributed system.Keywords: .NET platform, Course Management System, 3-layer architecture, ADO.NET, ASP.NET目 录1绪论11.1课题的来源及研究现状11.2本文所作的主要工作21.3本文的结构32相关技术综述42.1Microsoft.NET 的简介42.1.1Microsoft.NET框架概述42.1.2公共语言运行库(Common Language Runtime, CLR)62.1.3基础类库(Base Class Library, BCL)72.1.4ADO.NET和XML82.1.5ASP.NET和Win Forms82.1.6开发工具92.2ADO.NET数据访问技术102.2.1ADO.NET简介102.2.2ADO.NET的特性102.2.3ADO.NET对象模型123基于.NET 的课程管理系统的设计153.1系统概述153.2B/S模式的三层结构163.2.1表示层173.2.2业务逻辑层173.2.3数据服务层173.3课程管理系统设计173.3.1表示层设计173.3.2业务逻辑层设计183.3.3数据服务层设计224基于.NET 的课程管理系统的实现274.1系统初始化274.1.1创建虚拟目录274.1.2目录结构274.1.3数据库连接284.2数据层的实现284.3业务逻辑层的实现304.4表示层的实现324.4.1用户界面324.4.2代码绑定与数据绑定344.4.3DataGrid控件的应用34结 论36致 谢37参考文献381绪论1.1 课题的来源及研究现状随着计算机网络技术的发展,网络越来越深刻地影响着工业、商业、金融、教育、军事等社会的各个层面和领域,不断地、潜移默化地改变着人们的生活方式。计算机网络的迅速发展使之很快运用于教育领域,无论在教室之内还是教室之外,它都为教师开展教学工作提供了强有力的工具。构建在网络技术平台上的课程管理系统为教师与学生之间数字信息的共享提供了网络平台,拓宽了教学时空的纬度。与传统管理方法相比,它具有以下优势:1. 教学活动不受时间和空间的限制,教师和学生可以根据自己的实际情况选择不同的时间段、不同的地点进行课程设计和学习。2. 充分综合利用文本、图形、视频、音频等多种媒体形式。对一于教师而言,可以开发出丰富的课件;对于学生而言,这种图文声像并茂的多种感官综合刺激,有利于情境的创建和认知的改变。3. 网络具有信息容量大、开放、共享等特点,学习者可以通过网络导航轻松地利用网络进行学习,海量的信息资源、开放的网络环境对教育个性化的形成、学生创造性思维的培养、实现教学过程要素关系的转变以及对促进从“应试教育”向“素质教育”转轨都将产生巨大影响。4. 为学生和教师提供了各种交流工具在学生和教师之间、学生与学生之间保持同步或异步交流,加强思想的交流和信息的反馈。5. 减轻教师工作负担,教师无须经过特别培训,就可以方便快捷地利用系统完成布置作业、评论打分、统计学生成绩、发布公告等常规教学活动。传统课程管理系统主要以两层结构模式为主,即客户机/服务器(C/S)模式,客户机/服务器(C/S)模式将数据库的内容放在远程的服务器,每个客户端安装相应的网络教学软件,客户端通过客户应用程序访问到远程服务器中数据库资源,以达到网络教学的目的。随着网络技术的发展,在两层结构的基础出现了三层结构模式,这种结构采用浏览器/服务器(B/S)模式,它对数据的处理主要集中在服务器,而客户端只要具备浏览器就可访问,与客户机/服务器(C/S )模式相比较进步了许多,这种结构模式的数据存取和处理不再依赖于客户端程序,对客户端的要求降低,同时由于数据存取和处理集中在服务器端,便于系统的扩展、维护管理及安全性设计。因此这种具有开放性、可扩展性及安全性的模式成为课程管理系统设计的主流。采用浏览器/服务器(B/S)模式课程管理系统都以网页的形式向用户提供服务,Internet上的网页经历了由静态网页到动态网页发展的阶段,网络课程管理系统中的页面也相应的经历了这两个阶段。早期的页面主要是由超文本标记语言(HTML, Hypertext Markup Language)开发的静态页面,教学内容的传递是单向的。随着网络技术的发展,新技术的出现改变了这种局面。学生可以通过Web窗体向服务器提交作业、查看反馈信息,服务器根据学习者提交的信息进行数据库检索及运算,最终把运算结果返回学习者。近年来,动态网页的设计技术在网站开发中得到了广泛的运用,其中ASP.NET技术被许多网站设计者所采用。它使用户与系统交互成为可能,使得信息得以双向交流,而且能在服务器中保存有关学生和教师的个性化数据,使得教学工作更好地展开。1.2 本文所作的主要工作在完成本论文之前,我做了大量的工作:首先是收集资料方面。查看了面向.NET的Web应用程序设计ASP.NET编程实例与技巧集粹Course Management System等书籍和文献,对所做课题涉及的重要技术、课程管理工作的业务流程以及所要完成的设计工作等各方面都有了一定程度的了解和掌握。在了解了课题背景和掌握了相关技术之后,我着手搭建了开发平台,然后就依次展开了对系统的分析、设计、代码实现和测试工作:使用UML,利用Rational Rose工具对系统进行分析和设计;利用Visual Studio.NET 2003 开发系统应用程序,其间遇到的技术难题主要通过查阅文献书籍、上网搜索相关解决方案和请教导师得以解决。实现了课程管理系统的如下功能:验证与识别用户身份,分配与控制用户权限;课程信息管理系统管理员用户通过此模块进行课程信息的录入与维护工作;作业管理教师用户通过此模块布置作业、查看学生提交的作业、批改学生提交的作业、对学生作业完成情况进行统计;疑问管理教师用户通过此模块查看学生提出的疑问、对学生疑问给出答复;公告管理两类用户都可以通过此模块查看所有公告详情、发布新公告、撤消过期公告。1.3 本文的结构绪论部分介绍了本系统的课题来源、目前的研究情况以及本文的主要工作。第二部分介绍了相关的.NET技术。第三部分介绍了本系统的详细设计。第四部分介绍了本系统的实现。总结部分介绍了设计和实现的体会,并指出了系统设计的不足和改进的方向。在参考文献部分,给出了本文的参考资料。2 相关技术综述2.1 Microsoft.NET 的简介微软总裁兼首席执行官史蒂夫,鲍尔墨曾经概述过:“ .NET代表了一个集合、一个环境、一个编程的基本结构,作为一个平台来支持下一代的互联网。NET也是一个用户环境,是一组基本的用户服务,可以作用于客户端、服务器或任何地方,与改编成模式具有很好的一致性,并有新的创意。因此,它不仅是一个用户体验,而且是开发人员体验的集合,这就是对.NET的概念性描述。” Microsoft.NET是微软的一项战略,它将软件的供应当作一项服务来看特。Microsoft的Microsoft.NET战略目的意味着在:Microsoft公司以及在Microsoft平台上的开发者将会制造服务,而不是制造软件。在未来几年之内,Microsoft将陆续发布有关Microsoft.NET的平台和工具,用于在因特网上开发Web服务。那时,工作在Microsoft.NET上的用户、开发人员和IT工作人员都不再购买软件、安装软件和维护软件。取而代之的是,他们将定制服务,软件会自动安装,所有的维护和升级也会通过互联网进行。用Microsoft.NET技术构建解决方案,能够建立并连上无限的各种各样的安全并个性化的Microsoft.NET的经验。当XML网络服务被整合到一起的时候,个人用户能使用独立的应用软件,在线或离线的,通过Internet获取信息,享受丰富而个性化的Microsoft.NET体验。2.1.1 Microsoft.NET框架概述Microsoft.NET开发平台是一个开发和运行软件的新环境,它使得基于Windows的客户端图形界面程序和基于Internet的WEB应用程序的开发更为容易。.NET拥有丰富的运行库服务,来支持多种编程语言编写的组件,具有跨语言和跨平台的互操作能力。它简化了在高度分布式Internet环境中的应用程序开发,为XML Web服务和其他应用程序提供了一个高效安全的开发环境,并且全面支持XML.NET 开 发平台包括:.NET框架(.NET Framework)和.NET开发工具(包括编程语言和应用程序的集成开发环境)等组成部分。其中.NET Framework是一种新的计算平台,它简化了在高度分布式Internet环境中的应用程序开发。.NET Framework具有两个主要组件:公共语言运行库和类库。.NET开发平台(包括开发框架、开发语言、开发工具)如图2.1所示:图2.1 .NET平台结构图.NET框架 (Microsoft.NET Framework)是Windows操作系统中的一个很重要的新元索,是下一代应用软件的基石,它使下一代应用软件更容易开发、发布以及和其他网络系统集成。对用户来说,运行在他们机器上的.NET Framework使他们的机器更稳定易用,并且能很方便的和其他的系统相联。对开发者来说,.NET Framework简化了Windows软件的开发,它提供了一个单一的方法来建立C/S和B/S构架样式,它还允许开发者用同一种工具和技术为各种设备开发软件。而且建立在.NET Framework之上的软件比传统的软件更容易开发和维护,开发者可以很容易的使软件自动升级到最新版本。.NET Framework实际上封装了操作系统,将在.NET环境下开发的软件与操作系统的具体工作如文件处理和内存分配相脱离。这就使.NET环境下开发的软件可以在各种硬件和操作系统之间迁移。.NET Framework构架包含了在操作系统上进行软件开发的所有层,它使Microsoft或其他平台上的显示技术、组件技术和数据技术实现了高度的集成。其中,最关键的两个内核是:公共语言运行库(Common Language Runtime, CLR)和基础类库(Base Class Library, BCL),它们为.NET平台的实现提供了底层的技术支持。2.1.2 公共语言运行库(Common Language Runtime, CLR)从Microsoft.NET开发框架的整体架构中可以看到,公共语言运行库(CLR)位于Microsoft.NET架构的底层,作为.NET框架的执行引擎,它是多种语言的统一运行环境,基于CLR开发的代码称为托管代码(Managed Code)。CL R实际上是驻留在内存里的一段代理代码,负责.NET应用程序在整个执行期间的代码管理工作,并为其提供服务。CLR为这些语言提供自动内存管理和资源管理、异常处理、安全性、版本控制、组件通信等系统服务。托管代码的运行步骤大体分为三步:1. 使用CLR支持的编程语言编写源代码。2. 由CLR的编译器将源代码编译为独立于机器的微软中间语言(Microsoft Intermediate Language, MSIL),同时产生运行所需要的元数据(metadata )。3. 代码运行时,由CLR的即时编译器(Just In Time Compile, JITC)将中间语言生成机器代码,最后执行这些编译过的机器代码。托管代码编译与执行的具体过程如图2.2所示:图2.2 编译与执行过程示意汇编是资源、托管代码、以及元数据封装成的一个个单元。一个汇编可以专属于某个应用程序,也可以为多个应用程序共享。元数据 (metadata) 被称为“数据的数据”,包含着数据及其运行时所需的资源,它以汇编清单的形式存在,主要有三个部分组成:1. 对部署单元组装的描述(名字、版本、语言、输出类型等)2. 对类的描述(基类、接口、成员等)3. 由编译器、框架或由用户定义的其他属性。在Java 中,有一个核心概念:虚拟机(JVM, Java Virtual Machine),JVM是仅含有指令集的一个通用的虚拟机器,它能够将中高级语言的程序编译为虚拟机的机器语言程序,再通过虚拟机的即时编译器(JIT, Just In Time Compile),将这些机器码转换成可在本地执行的实体机器的机器码。MSIL就相当于虚拟机的机器码,它是一种于机器平台、操作系统都无关的虚拟机的语言。利用MSIL,可以实现跨语言的合作。同时,由 于MSIL在沿用Windows平台使用的PE (Portable Executable)的基础上对PE作了扩充,把程序的Metadata一并写入可执行文件中,使MSIL程序具有了自我解释能力,从而避免了DLL的版本和更新问题(常称为DLL Hell),大大简化了应用程序的发布和升级。CLR的核心是一个执行引擎,它加载、执行和曾理已经编译为MSIL格式的代码,这种代码不被解释,在执行之前通过内置在CLR中的JIT将它编译成本机的二进制代码。VS.NET充分发挥CLR的潜力,为开发者提供了一个统一的集成开发环境和调试器。2.1.3 基础类库(Base Class Library, BCL)在. NET Framework中,BCL位于CLR之上。BCL是一套操作系统层级的对象函数库,其中包含了托管代码运行所需的各种具有庞大功能集的软件组件,可供程序语言调用使用。它为.NET应用程序提供了一个统一的、面向对象的、层次化、可扩展的编程接口,为数据输入输出、安全性等提供了服务和对象模型。这种统一的编程模式彻底解决了过去由于调用不同类库采用不同的约定而造成系统不稳定的情况。在基础类库之上,.NET框架为我们提供了诸如数据访问、创建WEB服务器应用程序、创建Windows客户端界面所需的其他功能强大的类库。 类库类似于Windows API函数,但它不像Windows API那样“随意堆砌”在动态链接库(DLL)文件当中。.NET Framework中的任何东西,比如ASP.NET页面、消息框等,都被视为对象。这些对象被放置在叫做命名空间(namespace)的逻辑分组中,类似Java中的包(Package)。其好处是使庞大的类库变得结构清晰,易于掌握和使用。因此,在使用时,开发者只需在自己的应用中添加对所需的基础类库的引用,就可以使用这个类库中所有的方法、属性等等。.NET Framework的命名空间布局图如下:图2.3 .NET Framework命名空间布局图.NET提供的类库极为庞大,不仅包括底层基础类库,还包括上百个Namespace, Class, Interface, Structure。与传统的Windows编程相比,使用和扩展基础类库都非常容易,使得网络开发能够高效、快速地进行。.NET框架所提供的类库基本上都以System命名空间作为各个部分的根。无论是使用基础类库还是使用ADO.NET进行数据访问,或者利用ASP.NET编写基于WEB的应用程序,我们都可以使用System命名空间下提供的类作为编写程序的基础。2.1.4 ADO.NET和XMLADO.NET是负责.NET框架下访问数据的类库。ADO.NET与以前的ADO相比,主要改进是通过一系列新的对象和编程模型,并与XML紧密结合,使得数据操作十分方便和高效。本文将在第本章的第二节中较为详细地阐述ADO.NET技术。2.1.5 ASP.NET和Win Forms在.NET Framework中,ASP.NET和Win Forms是建立在BCL之上的两种高层应用。Win Forms是传统的、基于Windows的应用,为.NET Framework提供了美观的、客户端图形用户界面.它包含现有的VB组件库(VB component library)和Windows基础类库(Windows Foundation Classes)和高效易用的底层Wind32API的所有优点。ASP.NET从传统的服务器处理技术ASP (Active Server Pages)发展而来,加入.NET提供的高级特性后脱胎换骨,从解释型的编程框架飞跃到编译型的编程框架,采用了客户端处理技术仿真事件驱动模型,使得建造、运行、发布网络应用程序像开发传统Windows应用程序一样容易而且强大。2.1.6 开发工具.NET 开 发平台上的开发工具主要有两个方面:(1)由CLR支持的各种编程语言,用来创建运行于CLR之上的应用程序;(2)用于开发、测试应用程序的集成开发环境Visual Studio.NET。.NET Framework 中定义了一套通用语言规范(Common Language Specification, CLS ),规定公共语言运行库如何利用各种语言的规范。凡遵照CLS的语言,就是CLR支持的语言,可以用来创建运行在CLR上的应用程序。CLS使不同语言之间互用成为可能。CLR运行时在中间语言(IL)层次影响代码,对IL的修改可以使所有被CLR支持的语言受益,因为这些语言只是和代码如何被解释为中间语言有关,这样的技术使得.NET编程语言之间的语言差别很小,他们均在同一个层面使用一个共同的通用类型模型(Common Type Systems, CTS),这样的机制使得所有遵照CLS规范的语言之间实现跨语言继承代码和多语言开发应用程序成为可能。Visual Studio.NET为CLR支持的所有开发语言提供统一的代码编辑器,同时也针对每种语言提供专用的特性。编辑器除了支持程序设计语言的编辑,还支持HTML文档、层叠样式表、XML的开发。Visual Studio.NET集成多语言支持,大大提高了开发效率。在开发语言方面,.NET提供了VB、VC+、C #、JavaScript等多种语言支持;微软也支持第三方生产针对Microsoft.NET的编译器和开发工具,这意味着几乎所有市场上的编程语言都有可能应用于Microsoft.NET开发框架。另外,微软在Microsoft.NET中推出了C#语言,C#针对.NET做了特别设计。C#是一种从C+和Java继承而来的、简单的、现代的、面向对象的语言,它综合了Visual Basic高产和C+底层高效的特性,并支持无用内存回收、内存自动管理等许多特性。本文所述的课程管理系统就是在Visual Studio.NET集成开发环境下使用C#来完成的。2.2 ADO.NET数据访问技术2.2.1 ADO.NET简介随着 Microsoft.NET的发布,微软相应地重新设计了数据库访问技术,即ADO.NET。它是.NET Framework的一部分,主要针对Web上分布式应用程序的数据处理。可以说ADO.NET是ADO的新版本,但事实上比起后者,ADO.NET有了长足的发展和革命性的进步。ADO. NET是ActiveX Data Objects for the .NET Framework的缩写,是.NET Framework提供给.NET开发人员的一组类。它以目前业界认可与广泛使用的XML为基础,为.NET程序员提供一致的方法来访问各种数据源和完善的数据访问服务,包括:Microsoft SQL Server数据库、ODBC、OLEDB数据源、Oracle数据源与XML等。应用程序可以利用ADO.NET来连接这些数据源并进行所需的数据处理.NET数据提供者这个术语就是处理特定类型数据库的类“集”,它实现了一组可以访问特定类型数据库的功能。ADO.NET层次结构图:图2.8 ADO.NET 层次图2.2.2 ADO.NET的特性ADO.NET是健壮的、面向对象的模型,它允许程序员从不同的数据源获取数据,并对得到的数据进行操作和更新。基于.NET架构的ADO.NET可以确保数据访问技术的一致性,即同样的数据访问技术可以用于本地、客户/服务器以及基于Web的应用程序。ADO.NET数据访问模型的设计基于以下需求:中断式(Disconnected)访问的体系结构、紧密集成XML、能够合并来自多个不同数据源的通用数据展现,以及最优化与数据库之间的交互,而这些都是.NET Framework所具备的基本功能。中断式数据访问:传统的数据处理方案是基于连接的两层模型,即为了能访问数据库,应用程序组件会建立一个连接来连接数据库,然后在应用程序执行过程中,这个连接会一直保持。这种连接方式的结构会消耗大量的系统资源,限制了程序的可扩展性。并且,数据传输也非常困难。对于许多应用程序来说是不稳定、不适合,甚至是危险的,特别是对互联网上的Web应用程序更是如此。首先,让数据库连接一直保持连接状态会消耗系统资源,虽然在大多数情况下数据库只需要维护少数几个数据库连接,但这样仍然会降低应用程序的整体执行效率。其次,一个要求数据库连接保持在连接状态的应用程序在扩展性上不好,几个或几十个用户同时进行访问也许不是问题,但是一旦达到成百上千的用户并发访问时,数据库同时要维护这么多的连接就显得吃力了,这种情况在Web应用程序中特别容易出现,因为极有可能在某个高峰时段有大量用户同时进行并发访问,这样就可能造成无法预期的情况。并且,如果让数据库连接一直保持在打开状态,很容易造成长时间的数据库锁定而使其他用户无法进行正常的数据库写入操作。ASP.NET 开发基于N层的Web应用程序就是使用了断开连接方式的组件。这表示Web服务器和浏览器之间的连接会在服务器处理完浏览器的请求之后自动断开。也就是说,当浏览器向Web服务器请求网页时,服务器处理这个请求,并将所请求的网页发给浏览器,然后断开连接,直到浏览器发出下一个请求。基于上述原因,ADO.NET的设计使用中断式数据访问的数据结构,应用程序只是需要访问或者更新数据时才会连接到数据库,一旦完成后就立即断开。这样,数据库并不需要去维护大部分时间都处于闲置状态的连接,而且能够避开长时间的数据库锁定。同连接方式的数据结构相比,中断式数据访问使得应用程序能够为更多的用户提供服务,为应用程序提供了更好的可扩展性。XML支持与DataSet:ADO.NET提供了对XML的内置支持,使用XML作为其内部的数据格式,利用XML的功能以中断连接方式访问数据.ADO.NET自动使用XML作为从数据库到数据库以及从数据库到其他组件传输数据的格式。支持XML使得ADO.NET能够更加灵活地访问各种不同类型的数据。事实上,.NET Framework中的ADO.NET与XML类在DataSet对象中汇集。DataSet是ADO.NET最重要并且最常用的数据对象,即数据集。DataSet可以使用来自XML的数据填入,不论是文件还是XML数据流。不论DataSet内数据的来源是什么,DataSet都可以写成全球互联网协会(W3C)兼容的XML,包含以XML结构描述定义语言(XSD)写成的结构描述。因为DataSet的基本序列化格式就是XML,所以它很适合担任各层间数据交换的媒体。因此,当需要将数据和结构描述(Schema)内容与XML Web Services进行远程的来回传送时,DataSet是最佳选择。此外,DataSet也是作为N层程序设计的解决方案。2.2.3 ADO.NET对象模型为了从数据操作中将数据访问分离出来,ADO.NET库有两个核心组件:DataSet和.NET数据提供者。DataSet是非连接的、位于内存中的数据存储,包含一个或多个DataTable。对象的集合,这些对象由数据行和数据列以及主键、外键、约束和有关数据的关系组成;而.NET数据提供者是一套特有的组件,用于访问特殊类型的数据源,例如OLE DB数据源或SQL Server数据库等。ADO.NET的体系结构图:图2.9 ADO.NET结构图DataSet是内存中的高速缓存区,用于高速缓存关系型的数据。它像是一个简化的关系数据库,可以包含数据表、数据列和数据行,以及表与表之间的关系。并且,DataSet完全是一个非连接的、与数据源无关的类,它总是在脱机模式下进行操作.无论DataSet中包含的数据是来自XML文档、关系型数据库,还是通过用户接口以编程的方式输入的,数据的表示方式都是相同的。当改动DataSet中的信息之后,借助DataAdapter把DataSet的变化提交给数据库。DataSet 包括两个基本对象:DataTableCollection 和 DataRelationCollection和DataTableCollection对象包含零个或多个DataTable对象,而DataTable对象又由3个集合组成:Column集合、Row集合和Constraint集合。DataRelationCollection对象包含零个或多个DataRelation,DataSet结构图:图2.10 DataSet结构图.NET数据提供者:.NET 数据提供者提供一种工作方式,针对某一具体类型的数据源执行数据操作。它是应用程序与数据源之间的桥梁,可以用于连接到数据库、执行命令和检索结果。应用程序可以直接处理检索到的结果,或将其放入DataSet对象,以便与来自多个数据源的数据或在层之间进行远程处理的数据组合在一起,以特殊方式向用户公开。.NET 数据提供者由一组面向对象的类组成,使用这些类可以访问特定类型的数据源,如:OLEDB数据源,SQL Server数据源或ODBC数据源等。.NET数据提供者符合一定的接口规范,使所有的工作标准化,确保同一对象模型适用于所有的数据源。这些接口规范是一些特殊的类,它们定义了一些方法和属性,实现接口的所有的类必须实现那些方法和属性。下表是.NET数据提供者的4个主要的类:表2.1 .NET数据提供者主要类类说明Connection建立与特定数据源的连接Command对数据源执行命令操作,设定参数,并且可以在事务范围内进行操作DataAdapter用数据源填充DataSet并解析更新DataReader基于连接的、前向的,从数据源读取数据流其中,Connection类提供数据库连接的面向对象的封装,这个类中包含有用于打开和关闭连接的方法,并且还包含有描述当前连接状态的属性;Command类是数据库命令的封装,它们既可以是内嵌的SQL语句,也可以是存储过程;DataAdapter类可以看作是保存数据库命令的容器,负责处理DataSet与数据库之间的通信,通过它包含的4个预先配置好的Command实例,即SelectCommand, InsertCommand, DeleteCommand和UpdateCommand就可以把对DataSet的改动提交到底层的数据库中:而DataReader类是对特定数据源中数据的高速、只向前的数据访问,它是一个依赖于连接的对象,可以快速检索和迭代来自数据存储的结果集。.NET Framework 1.1版包含的数据提供者有:SQL Server.NET,OLEDB.NET,Oracle.NET, ODBC.NET四种,顾名思义,它们将分别适用于特定类型数据源的托管访问,比如底层数据源为SQL Server 那么自然应该首选SQL Server.NET数据提供者,因为它使用SQL快速的、本地的TCP/IP接口提供快速、健壮和可靠的SQL Server访问。3 基于.NET 的课程管理系统的设计3.1 系统概述该系统为课程管理系统的教师端,系统的用户角色包括系统管理员和教师两类,系统主要包括四个功能模块:课程信息管理模块:系统管理员用户通过此模块进行课程信息的录入与维护工作;作业管理模块:教师用户通过此模块布置作业、查看学生提交的作业、批改学生提交的作业、对学生作业完成情况进行统计;疑问管理模块:教师用户通过此模块查看学生提出的疑问、对学生疑问给出答复;公告管理模块:两类用户都可以通过此模块查看所有公告详情、发布新公告、撤消过期公告。如图3.1所示:图3.1 课程管理系统用例图该课程管理系统采用MVC设计模型,ASP.NET页面文件.ASPX为视图,.ASPX.CS文件为控制器,模型为各个数据实体。这样就实现了不懂程序设计的人员避开程序数据,在整个系统设计中将:1、减少代码重复;2、通过分离视图和模型,各个领域专业人员可以并行工作;3、可测试性:通过将模型与视图分离,可以在.NET环境以外测试模型。该系统的逻辑上是一个典型的三层B/S数据库应用结构,使层与层之间相互独立,每层的变动不会对其他层造成太大的影响,不会引起其他层太大的变动,而且为增加功能、扩展系统提供方便。特别适应Internet的应用情况,不需要专门的客户端程序,客户端只要有浏览器即可,而无需考虑、配置和维护数据连接软件等问题。由客户端通过Http向Web服务器发送Web请求,Web服务器能够自动地协调和处理来自多个客户端的请求。3.2 B/S模式的三层结构目前应用广泛的B/S模式系统主要是通过浏览器以超文本的形式向Web服务器提出访问数据库的请求,Web服务器接受客户请求后,激活对应的应用程序将超文本HTML语言转化为SQL语言,并将这个请求交给数据库,数据库服务器得到请求后,验证其合法性,并进行数据处理,然后将处理结果集返回给应用程序,应用程序再将结果集转化为HTML,并由Web服务器转发给请求方的浏览器。在B/S模式中,客户端的标准配置是浏览器,如Internet Explorer;业务处理功能从C/S代码中彻底分离出来,由独立的应用服务器处理,Web服务器成为应用处理的标准配置;数据处理由数据库服务器完成。B/S模式是三层分布结构,即Web浏览器Web服务器数据库服务器。目前,这 种3层Web体系结构主要有基于OMG的CORBA、基于微软的COM+和基于SUN公司的RMI的分布式3层Web体系结构。3层体系结构将应用程序分成3个不同的逻辑层次:表示层,应用逻辑层和数据层。图3.2 三层结构示意图3.2.1 表示层在表示层中,.NET是由ASP.NET Web Forms来实现的。Web Forms是CLR的程序模型。基于服务器端的动态页面技术,可以在服务器端根据来自客户端的请求和提交的信息,动态地生成与客户端浏览器类型无关的通用HTML页面,也可以根据客户端浏览器类型,生成特定的数据表现形式。Web Forms控件负责生成用户接口。它提出了一种将应用程序代码和用户接口内容分离的更加结构化的方法,使ASP. NET网页能动态地编译到受控类中,用以提高性能。3.2.2 业务逻辑层在应用逻辑层,分布式业务组件负责企业应用的商业逻辑部署。由于这些业务组件经常负责处理数据库连接、网络资源、线程等高昂的资源,因此一直是3层/多层架构的关键和企业应用的核心。.NET平台内建了对Web Service的支持。Web Service是基于网络、分布式的模块化组件,它执行特定任务,遵守具体的技术规范,这些规范使得Web Service能与其他兼容的组件进行互操作。应用程序对.NET框架中的ADO.NE T访问、引用完成对数据库的访问也同属这一层。3.2.3 数据服务层指数据库系统,数据查询语句被执行,存储过程等。3.3 课程管理系统设计3.3.1 表示层设计该课程管理系统的表示层采用ASP.NET页面。用户的浏览器在客户端运行,并从一个WEB服务器上下载WEB中静态HTML页面或由ASP.NET生成的动态的HTML页面,客户端用户的界面由一系列的ASP.NET(.aspx)页面构成。用户的所有输入都在这些页面来完成,同样,系统的所有输出也都在这些页面中显示。对系统中数据的维护工作,即查询、修改、删除主要通过DataGrid控件进行,而数据的录入工作则主要通过TextBox、DropDownList等控件获取用户输入。图3.3 DataGrid控件的使示意图图3.4 其他控件使用示意图3.3.2 业务逻辑层设计为了避免用户直接与数据库打交道,减轻数据库的负荷,该课程管理系统把所有业务逻辑处理都放在了ASP.NET页面的后台文件(.ASPX.CS)和数据处理类中,由它们来负责响应用户的服务请求,再按需求调用业务逻辑处理类中的相关函数,这些函数再调用数据层函数对用户提交的服务请求进行处理,处理完后将结果返回给用户。其中,在ASP.NET页面的后台代码中主要完成的工作是根据客户的请求调用由业务处理类提供的适当的接口从而实现相应功能。主要的数据处理类及其接口有:表3.1 CourseDA类的各个接口描述GetCourseList该函数获取所有课程信息列表返回值DataSet参数数据类型描述无GetCourseInfoByID该函数通过课程编号获取特定课程的信息返回值Dataset参数数据类型描述courseIDstring课程编号AddCourse添加课程信息,用以实现录入课程返回值void参数数据类型描述NewCourse课程类将数据库中表Course封装成类,以各字段作为属性ModifyCourse修改课程信息返回值void参数数据类型描述NewCourse课程类将数据库中表Course封装成类,以各字段作为属性GetCourseInfoByTID获得某位教师所教课程的信息返回值Dataset参数数据类型描述TIDstring教师编号表3.2 Task_issuedDA类的各个接口描述Issue添加教师布置的作业记录返回值void参数数据类型描述newTask布置的作业类将数据库中表Task_issued封装成类,以各字段作为属性CheckOutDate检查某个教师布置的作业是否已经超过提交期限返回值bool参数数据类型描述TaskNumberstring某个教师布置的作业的编号GetTask_issuedByCourseID根据课程编号获取该课程下教师布置的所有作业记录返回值Dataset参数数据类型描述courseIDstring某课程编号GetTask_issuedListByTID根据教师编号获取全部由该教师布置的作业记录返回值Dataset参数数据类型描述TIDstring某教师编号表3.3 Task_submitedDA类的各个接口描述Submit添加学生提交的作业记录返回值void参数数据类型描述newOne提交的作业类将数据库中表Task_submited封装成类,以各字段作为属性GetTask_submitedListByNumber根据教师布置的作业编号获取全部由学生提交的作业记录返回值Dataset参数数据类型描述thenumberstring教师布置的作业编号ReviseTask为某条学生提交的作业记录增加评分与评论返回值void参数数据类型描述Task_revised提交的作业类将数据库中表Task_submited封装成类,以各字段作为属性ExistTs检查某条提交的作业记录是否已存在返回值bool参数数据类型描述TsNum ,TsStuIDString 提交的作业编号,学生学号GetTask_submitedListByTID根据教师编号获取对该教师布置的作业提交的作业记录返回值Dataset参数数据类型描述TIDString 教师编号GetTask_submitedList获取全部学生提交的作业记录返回值Dataset参数数据类型描述无GatherTaskInfoByCID统计某门课程下所有学生的作业完成情况(提交次数、平均分)返回值Dataset参数数据类型描述courseIDString 课程编号表3.4 IssueDA类的各个接口描述GetIssueList获取所有学生提出的疑问返回值Dataset参数数据类型描述无GetMatterByNum根据疑问编号获取疑问内容返回值string参数数据类型描述numint疑问编号GetStuIDByNum根据疑问编号获取提出该疑问的学生的学号返回值string参数数据类型描述numint疑问编号表3.5 SolutionDA类的各个接口描述Add添加一条答复记录返回值void参数数据类型描述newS答复类将数据库中表Solution封装成类,以各字段作为属性GetSolutionByINum根据疑问编号获取所有相应的答复记录返回值Dataset参数数据类

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论