《在线考试系统-毕设毕业论文.doc》由会员分享,可在线阅读,更多相关《在线考试系统-毕设毕业论文.doc(70页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、本科生毕业论文(设计) 题 目 在线考试系统在线考试系统摘要 如今,以计算机和计算机网络技术为主的信息技术在教育教学的各方面都得到广泛的应用,在线考试也已经不是什 么新鲜事。由于在线网络考试快速高效,减少了大量人力、 物力的投入,消除了人为因素的影响,易于实现考试的客观 公正,所以已经得到广泛的应用。它不仅大大提高了考试的 效率,而且彻底革新考试模式,采用电子化的考试手段代替 纸质的日常考试方式,采用机器阅卷取代人工阅卷。本系统是以Microsoft Visual Studio 2008为主要开发工具,用ASP.NET技术构建前台页面,以SQL Server 2005 数据库作为后台支持,该系
2、统具有操作简单、界面友善、灵活性好、系统安全性高、运行稳定等特点。本论文对网络环境下在线系统的组成、运行机制、应用技术和具体实现进行了深人的研究,并介绍了整个系统的总体规划、设计思想及具体实现过程,努力促使在线考试系统得以真正的实施。对在线考试系统的研究背景做相关描述,同时对于ASP.NET,SQL Server 2005等相关理论做了必要的分析和介绍。最后,总结了系统的特点和优势及不足之处,并对未来的发展和应用前景做了展望。主题词 ASP.NET、在线考试、web、数据库四川大学本科毕业论文在线考试系统Online Examination SystemStudent: Adviser: Ab
3、stract Today, computer and computer network technology-based information technology in all aspects of education have been widely used, online examination has also been What is not new. As fast and efficient online network test to reduce the large amount of manpower, material resources, eliminating t
4、he influence of human factors, Easy to implement an objective and impartial examination, it has been widely used. It not only greatly improve the efficiency of the exam, and exam overhaul Model, using electronic means to replace the papers daily examination examinations, the use of machine scoring t
5、o replace the manual scoring. The system is based on Microsoft Visual Studio 2008 as the main development tool, using ASP.NET technology to build the front page to SQL Server 2005 database as the back office, the system is simple, friendly interface, good flexibility, system safety, stability and ot
6、her special Point. In this thesis, the network environment, the composition of the online system, operating system, application technology and concrete realization of the depth of research, and introduces the whole system The overall system planning, design and realization process, efforts to promot
7、e online examination system to be truly implemented. Research on online examination system Relevant description of the background to do the same time, for ASP.NET, SQL Server 2005 and other related theories to do the necessary analysis and presentation. Finally, the summary of the Department of Syst
8、em characteristics and advantages and shortcomings, and future prospects of the development and application are put forward.Keywords ASP.NET, online exam, web, database目录第一章绪论61.1课题研究的背景和意义61.2国内外相关发展动态71.2.1在线考试系统国外发展情况71.2.2在线考试系统国内发展情况71.3 系统研究和可行性分析81.3.1 系统研究81.3.2 可行性分析81.4 本文组织结构说明9第二章开发环境、语言
9、和相关技术介绍112.1 .NET框架112.1.1 .NET开发平台与J2EE平台比较112.1.2 ASP.Net技术原理122.1.3 ADO.NET技术简介132.1.4 .NET平台开发语言-C# 2.0142.2 AJAX技术142.3 XML与.NET技术结合152.4 .NET Framework 概述152.5本章小结18第三章系统需求分析与总体设计193.1系统总体功能业务分析193.2 数据流程图203.3系统总体模块设计213.4本章小结21第四章在线考试系统的详细设计224.1设计目标224.2数据库表设计224.2.1 数据库E-R图设计224.2.2 数据库表设计
10、264.3各模块功能实现294.3.1 登录模块实现294.3.2 系统首页实现314.3.3 在线考试模块实现334.3.4 管理员添加选择题模块实现364.3.5 管理员生成试卷模块384.4本章小结41第五章系统测试与评价分析415.1系统测试415.1.1 在线考试测试415.1.2 后台添加试题模块测试425.2系统评价分析435.3本章小结43第六章结论和展望446.1结论446.2展望44参考文献45声 明46致 谢47附录1 系统核心代码48附录2 翻译(原文和译文)56译文56原文62第一章绪论1.1课题研究的背景和意义随着网络技术的飞速发展,现在很多国外的大学和社会其他部门
11、都已经开设了远程教育,通过计算机网络实现异地教育和培训。现在,计算机硬件技术的发展已经达到了相当高的水平。但是,远程教育软件的开发目前还处于起步阶段,随着这项技术的不断深入发展,就要求有更好、更完善的软件系统应用到远程教育当中去,这就给软件设计人员提出了更高的设计要求。 远程教育包括很多环节,例如教学系统、答疑系统和考试系统等等。其中很重要的一个环节就是在线考试系统,同时它也是最难实现的环节。在我国,虽然远程教育已经蓬勃地发展起来,但是目前学校与社会上的各种考试大都采用传统的考试方式,在此方式下,组织一次考试至少要经过五个步骤,即人工出题、考生考试、人工阅卷、成绩评估和试卷分析。显然,随着考试
12、类型的不断增加及考试要求的不断提高,教师的工作量将会越来越大,并且其工作将是一件十分烦琐和非常容易出错的事情,可以说传统的考试方式已经不能适应现代化考试的需要。随着计算机应用的迅猛发展,网络应用不断扩大,如远程教育和虚拟大学的出现等等,且这些应用正逐步深入到千家万户1。人们迫切要求利用这些技术来进行在线考试,以减轻教师的工作负担及提高工作效率,与此同时也提高了考试的质量,从而使考试更趋于公证、客观,更加激发学生的学习兴趣。例如目前许多国际著名的计算机公司所举办的各种认证考试绝大部分采用这种方式。 在线考试是现阶段研究开发的一个热点。它是建立在国际互联网上的应用系统,客户端的配置可以极为简单,使
13、考试不受地域的局限。一个完备的在线考试系统可以使用户在网上学习过后及时检验自己的学习效果,已发现自己的不足,使得学习效率得到很大提高。在线考试系统中题目的生成、试卷的提交、成绩的批阅等都可以在网络上自动完成。只要形成一套成熟的题库就可以实现考试的自动化。这样一来,教师所要做的只是精心设计题目、维护题库,而不是组织考试,从而大大减轻了教师的负担,这表明其经济性是相当可观的。为了适应新形势的发展,我进行了这一系统的初步设计工作,也可以说是做一个初步的探索,希望它能够在各类考试中发挥高效、便捷的作用,把老师从繁重的工作中解脱出来! 目前,网络应用软件运行的模式主要有二类:Client/server模
14、式,Browser/Web模式。前者主要的缺点是维护、升级较麻烦,后者是近几年伴随Internet迅速发展起来的一种技术,它与客户/服务器方式类似,客户端是一个标准的浏览器,服务器端是Web Server ,而Web Server与数据库和应用服务器的紧密结合,使得这种模式的应用范围不断扩大,它已不仅仅用于网上查询,有很多部门的业务系统、企业的MIS系统纷纷采用这种模式,它的主要优点是便于扩充应用、升级维护简便。网络考试系统具有降低考试成本,解决繁重的考务工作的优点。它可以免去教师大量的临考工作,试卷可以根据题库中的内容即时生成;教师也无须去做考后的阅卷、统计、分析工作,计算机可以自动判卷,直
15、接把成绩送到数据库中进行统计、排序、汇总。实现无纸化考试,大大提高了工作效率,目前,基于网络考试面向的主要是社会上的培训认证考试(如微软的各种认证考试)和远程教育的考试。一个成功的基于WEB的考试,需要一个好的网络环境,一个好的考试平台和一个好的题库。但一个真正的智能化的基于WEB的考试系统的实现是个复杂的过程,考试平台和题库的研究要依靠软件开发专家、被测学科专家和精通考试理论和命题的专家三者的合作。因而对于有极大市场的社会认证考试,必然会走上专业化的道路。1.2国内外相关发展动态1.2.1在线考试系统国外发展情况计算机考试系统的实现,将教师从繁琐的出题、监考、阅卷、试卷分析和成绩统计的传统考
16、试中解脱出来,充分体现了准确、客观、公正、快速、简捷等特点。20世纪70年代,美国考试委员会着手进行计算机模拟考试的研究工作,并于1983年编制出有效的模拟考试系统,当时的名称是计算机辅助考试系统。1990年8月,美国加利福尼亚、得克萨斯等十个州创建各州以及各高等院校相互认可的学位证书以及相应的教学体系,从而正式拉开网络远程考试的序幕。著名的考试机构有美国思而文学习系统有限公司。它是一家从事教育和计算机化考试服务的专业公司,在世界的6大洲140多个国家和地区有2200多个考试中心,可用25种语言提供近百个不同类型,一千多种考试,每年全球参加计算机化考试的人数约400万。当今大部分的授证机构均委
17、托思而文公司为其进行测试、评估。最出名的网络教育案例,当属美国政府举办的TOFEL考试,目前在全球范围内,均可以通过国际互联网进行TOFEL培训与考试,大大减少了美国政府对于此项考试的开支,并能更快速、准确地为期望进入美国学习的学生服务。目前美国约有80所大学允许学生通过网络考试获得学位,另外,加拿大、英国等其它西方国家也在大力开展网络考试系统2。1.2.2在线考试系统国内发展情况与西方发达国家的突飞猛进相比,国内的计算机考试技术研究工作开展的相对较晚,但国内在网络远程教学研究工作发展相当迅速。目前各高等院校如清华大学、北京大学、上海复旦大学、同济大学、西安交通大学、华南理工大学、北京医科大学
18、和湖南大学等高校己陆续在网上设立了自己的考试系统,并开展相关研究。国家信息产业部也开发了办公自动化证书CEAC远程考试系统、红旗Linux远程考试系统。通过对国内外计算机考试系统的考察和试用,我们发现它们具备以下特点:(1)C/S结构和B/S结构并存,但基本都可以在网络上使用;(2)大都提供自动组卷和自动评卷功能,但水平参差不齐;(3)考核软件使用仿真模拟环境和调用真实环境两者都有;(4)均采用了开放式试题库,扩充比较容易;(5)对题库的分析管理部分都比较重,都提供了最基本的功能。1.3 系统研究和可行性分析1.3.1 系统研究在线考试系统,属于采用B/S架构的信息管理系统。这样的系统能够很好
19、的在校园网中架设和实现。对于学校来说,系统管理人员如果需要在几百甚至上千部电脑之间来回奔跑,效率和工作量是可想而知的,但B/S架构的系统只需要管理服务器就行了,所有的客户端只是浏览器,根本不需要做任何的维护。无论用户的规模有多大,有多少分支机构都不会增加任何维护升级的工作量,所有的操作只需要针对服务器进行;如果是异地,只需要把服务器连接专网即可,实现远程维护、升级和共享。1.3.2 可行性分析可行性研究的目的,就是用最小的代价在尽可能短的时间内确定问题是否能够解决。要达到这个目的,必须分析几种主要的可能解法的利弊,从而判断原定的系统规模和目标是否现实,系统完成后所能带来的效益是否大到值得投资开
20、发这个系统的程度。因此,可行性研究实质上是对进行了一次较大压缩简化后的系统进行分析和设计的过程,也就是在较高层次上以较抽象的方式进行的系统分析和设计的过程。系统的可行性分析主要包括经济上的可行性,技术上的可行性,操作上的可行性和法律上的可行性。经济可行性目标系统开发经济需求的比较低,加上具有成熟的软硬件环境,所以在软硬件的支出上十分有限。而且,目标系统并是十分的复杂,开发的周期较短,人员经济支出有限。当系统开发成后,通过测试和、试运行和实际应用后3,将很大程度上提高电影院网上订票管理的科学性和高效性,在为学校带来便利的同时,也为系统的进一步推广、创新创造了条件,这带来的经济回报将远超过支出,并
21、且最重要的一点是通过该系统的开发,可以使我们进一步理解软件工程思想和软件开发流程,为从事软件开发工作打下很好的基础,从长远利益来考虑,本课题的设计开发还是具有相当大的经济可行性的。技术可行性本系统使用.NET技术进行开发,.NET Framework3.5框架作为微软公司已经比较成熟的产品,现在有越来越多的企业及技术人员选择它作为开发平台。因此,在技术上.NET是完全可以胜任这个平台的开发1。本系统实现基于WEB的发布、查询的功能;由多个网站模块组成。每个模块由一组业面及相关程序组成,完成相对独立的任务。此外还涉及到数据库数据的访问,对数据库数据的操作等。从以往的系统开发事例可以发现用JSP技
22、术可以实现以上各种功能。而ASP.NET技术具有以下特点:ASP.NET使用CLR语言(C#)编写的编译代码2。ASP.NET页面是由服务器端控件组成的。ASP.NET包含一种称为WEB服务的新技术。ASP.NET是MICSOFT的.NET框架的一部分。ASP.NET包含了页面和数据缓存机制,使用它可以很容易地明显提高网站的性能所以,该系统在技术上是可行的。操作可行性使用该系统的大多数是学校管理系统管理人员和老师,由于他们所接受的高等教育及工作的需要,对他们来说,操作本系统将会十分的简便。系统是基于Web的工作界面,管理人员无论通过局域网还是互联网,都能在浏览器中对电影院网上订票信息进行有效的
23、管理,用户只需在自己的计算机上通过Web浏览器访问本系统,同时所有的操作都是基于Web的操作方式,如:链接、按钮、文本框等等。所有的操作通过浏览器完成,客户端不需要配置其他应用软件,用户不需培训,只要稍微提示一下即可。因此,在操作使用上,本系统简单、方便,易于使用户接受,因而是十分可行的3。法律可行性由于本系统是在相关法律法规下实施完成的,所以不存在任何法律问题,在法律上是完全可行的。综合考虑经济、技术、操作和法律等方面的因素,该在线考试系统的开发工作可以立即开始进行。1.4 本文组织结构说明本文详细介绍了基于Web的在线考试系统的设计、开发的全过程。从开始到程序设计的实现,将在一下的几章中予
24、以介绍:第1章 绪论,这一章主要是对本次毕业设计所开发的系统进行问题的定义,通过问题的定义明白需要做些什么,并且对开发内容简单的介绍了一下;同时本章还对课题的研究背景与研究意义进行分析,对开发本系统的可行性分析还有对论文各章内容的简要介绍。第2章开发环境、语言和相关技术介绍,主要是对本次开发涉及到的理论知识和用到的开发工具做相关阐述。第3章 系统分析与总体设计,主要介绍了本系统需要实现的功能模块和本系统的数据库设计、页面的详细设计等。第4章 在线考试系统的详细设计,主要介绍了本次设计数据库的规划与设计以及系统实现的核心模块和所涉及到的核心代码。第5章 系统测试与评价分析,主要是选取了系统两个核
25、心模块来做测试,并作相关评析。第6章 总结与展望,总结了本次设计过程中遇到的技术难点并做相关分析,对本系统尚未完善的地方作出下一步打算。最后:参考文献、声明、致谢和附录。第二章开发环境、语言和相关技术介绍在确定系统的开发前景、意义、目标之后,就是选择好开发工具以及运用相关的技术来开发系统。在模式上,我们选择B/S架构的操作模式,这样可以方便学生的考试和管理员的对试题题库的管理,使得用户无须安装客户端软件,只要打开浏览器即可登录系统做相关操作。2.1 .NET框架2.1.1 .NET开发平台与J2EE平台比较与J2EE平台相比,微软的.Net平台堪称为新一代的互联网平台。对于技术开发人员来说,.
26、Net平台的两大特性是非常卓越的,首先是其所提供的公共语言运行时,也就是公用语言运行平台,另一方面就是庞大而全面的统一编程类。其架构下图2.2所示4。图2.2 .Net技术架构C#语言是微软公司针对.Net平台才推出来的一门新语言,作为.Net平台的第一语言,它几乎集中了所有关于软件开发和软件工程研究的最新成果。其不但继承了C+、Java等面向对象的强大功能特性,同时还是继承了VB、Delphi等编程语言的可视化快速开发功能,其是当前第一个完全面向组件的语言。.Net平台中的程序设计主要分为以下四个方面:Web Forms、Windows Forms、Web Service及Windows S
27、ervice,该平台主要使用Web Service中的ASP.Net技术设计实现。.Net应用体系结构如图2.3所示5。图2.3 .Net应用体系结构2.1.2 ASP.Net技术原理ASP.net 是一种建立在通用语言上的程序构架,能被用于一台Web服务器来建立强大的Web应用程序。ASP.net提供许多比现在的Web开发模式强大的的优势。(1)执行效率的大幅提高 ASP.net是把基于通用语言的程序在服务器上运行。不像以前的ASP即时解释程序,而是将程序在服务器端首次运行时进行编译,这样的执行效果,当然比一条一条的解释强很多。ASP.Net动态编译过程如图2.4所示。(2)世界级的工具支持
28、 ASP.net构架是可以用Microsoft(R)公司最新的产品 Visual S开发环境进行开发,WYSIWYG(What You See Is What You Get所见即为所得)的编辑。这些仅是ASP.net强大化软件支持的一小部分6。 (3)强大性和适应性 ASPX文件请求ASPXEngine解析GendPageClass生成回应请求Instantiate回应Code-behindclassPageClassInstantiate, Process & Render编译因为ASP.net是基于通用语言的编译运行的程序,所以它的强大性和适应性,可以使它运行在Web应用软件开发者的几乎
29、全部的平台上。通用语言的基本库,消息机制,数据接口的处理都能无缝的整合到ASP.net的Web应用中。ASP.net同时也是language-independent语言独立化的,所以,你可以选择一种最适合你的语言来编写你的程序,或者把你的程序用很多种语言来写,现在已经支持的有C#(C+和Java的结合体),VB.net,Jscript。将来,这样的多种程序语言协同工作的能力保护您现在的基于COM+开发的程序,能够完整的移植向ASP.net。图2.4 ASP.NET 动态编译(4)简单性和易学性 ASP.net是运行一些很平常的任务如表单的提交客户端的身份验证、分布系统和网站配置变得非常简单。例
30、如ASP.net页面构架允许你建立你自己的用户分界面,使其不同于常见的VB-Like界面。另外,通用语言简化开发使把代码结合成软件简单的就像装配电脑。 (5)安全性 基于Windows认证技术和应用程序配置,你可以确保你的源程序是绝对安全的。2.1.3 ADO.NET技术简介 ADO.NET是由.NET framework为与数据库中的数据进行交互而提供的一组对象类的名称。我们知道,面向对象编程的有关主要优点是可以把各种复杂的功能封装在一个自包含的单元中,接着要处理的就是个定义好的接口中,它由一些方法和属性组成7。ADO.NET可以与许多类型的对象交互,不仅有存储在数据库中的数据,还有存储在电
31、子邮件服务器、文本文件、应用程序文档(例如Excel电子表格)和XML中的数掂。下面是可以连接的数据源列表:企业级的RDBMS,例如Oracle, Microsoft SQL Server, IBM DB2桌面数据库,例如Access文件和目录系统,例如Windows FAT32用逗号分隔开的文本文件,或长度固定的文本文件非数据库文件,例如Excel电子表格基于XML的数据其优点是上面的列表不是固定的。ADO.NET连接的结构是可以为目前还没有想像出来的数据源格式编写供应程序、驱动程序和适配器。ADO.NET允许从源中选择相当抽象的数据。数据库管理员只需授予使用数据的一个视图的权限接口。即使没
32、有访问数据源其它内容的权限,也可以使用ADO.NET把数据放在ASP.NET页面上。2.1.4 .NET平台开发语言-C# 2.0C# (C sharp) 是微软对这一问题的解决方案。C#是一种最新的、面向对象的编程语言。它使得程序员可以快速地编写各种基于Microsoft .NET平台的应用程序,Microsoft .NET提供了一系列的工具和服务来最大程度地开发利用计算与通讯领域。 正是由于C#面向对象的卓越设计,使它成为构建各类组件的理想之选无论是高级的商业对象还是系统级的应用程序。使用简单的C#语言结构,这些组件可以方便的转化为XML 网络服务,从而使它们可以由任何语言在任何操作系统上
33、通过Internet进行调用。 最重要的是,C#使得C+程序员可以高效的开发程序,而绝不损失C/C+原有的强大的功能。因为这种继承关系,C#与C/C+具有极大的相似性,熟悉类似语言的开发者可以很快的转向C#8。2.2 AJAX技术AJAX的全称是Asynchronous JavaScript and XML,即异步JavaScript和XML。这是一种多项成熟技术的组合,其目的是让Web应用获得与用户快速、即时交互的能力。AJAX所组合的技术,包括: JavaScript,Java脚本语言(注意,此Java非Sun公司的Java) DHTML,Dynamic HTML,动态HTML XML,E
34、xtensible Markup Language,可扩展标记语言 CSS,Cascading Style Sheets,层叠样式表单 DOM,Document Object Model,文档对象模型 微软的称为XML Http Request的对象 在AJAX技术下,用户会感觉到网页与普通桌面应用一样,响应迅速,而不是像传统网页那样,任何操作都需要等待页面的刷新。AJAX是如何做到这一点的呢?有两个秘密:第一,其实AJAX也会刷新页面,只不过,AJAX可以只刷新部分页面,而不是整个页面;第二,AJAX的页面刷新是异步的,就是说,用户可以继续他的其他操作,而不必等候刷新完成9。 当用户浏览一个
35、基于AJAX的Web应用时,用户的请求被提交给一个称为AJAX引擎(AJAX Engine)的代理,这个AJAX引擎负责接收用户请求,从Web服务器上获取响应,并更新浏览器内容。形象地说,传统的Web应用中,浏览器是直接和Web服务器打交道的,而在AJAX应用中,浏览器和Web服务器之间出现了一个来回跑腿的“中介”,而且这个 “中介”相当的勤快,所以,能够给浏览器提供更好的服务,从而使用户获得更满意的应用体验。2.3 XML与.NET技术结合XML,就是 Extensible Markup Language, 是 W3C 推荐参考通用标记语言. XML的全称是“可扩展标记语言”提供一种描述结构
36、化数据的方法。与主要用于控制数据的显示和外观的 HTML 标记不同,XML 标记用于定义数据本身的结构和数据类型。XML 使用一组标记来描绘数据元素。每个元素封装可能十分简单也可能十分复杂的数据。您可以定义一组无限制的 XML 标记。XML 是一种简单、与平台无关并被广泛采用的标准。XML 相对于 HTML 的优点是它将用户界面与结构化数据分隔开来。这种数据与显示的分离使得集成来自不同源的数据成为可能,与.NET技术有效的结合起来,能够缩短项目的开发周期,同时使项目的可扩展性更加灵活10。2.4 .NET Framework 概述.NET Framework 是支持生成和运行下一代应用程序和
37、XML Web Services 的内部 Windows 组件。.NET Framework 旨在实现下列目标: 提供一个一致的面向对象的编程环境,而无论对象代码是在本地存储和执行,还是在本地执行但在 Internet 上分布,或者是在远程执行的。 提供一个将软件部署和版本控制冲突最小化的代码执行环境。 提供一个可提高代码(包括由未知的或不完全受信任的第三方创建的代码)执行安全性的代码执行环境。 提供一个可消除脚本环境或解释环境的性能问题的代码执行环境。 使开发人员的经验在面对类型大不相同的应用程序(如基于 Windows 的应用程序和基于 Web 的应用程序)时保持一致。 按照工业标准生成所
38、有通信,以确保基于.NET Framework的代码可与任何其他代码集成11。.NET Framework 具有两个主要组件:公共语言运行库和 .NET Framework 类库。公共语言运行库是 .NET Framework 的基础。您可以将运行库看作一个在执行时管理代码的代理,它提供内存管理、线程管理和远程处理等核心服务,并且还强制实施严格的类型安全以及可提高安全性和可靠性的其他形式的代码准确性。事实上,代码管理的概念是运行库的基本原则。以运行库为目标的代码称为托管代码,而不以运行库为目标的代码称为非托管代码。.NET Framework 的另一个主要组件是类库,它是一个综合性的面向对象的
39、可重用类型集合,您可以使用它开发多种应用程序,这些应用程序包括传统的命令行或图形用户界面 (GUI) 应用程序,也包括基于 ASP.NET 所提供的最新创新的应用程序(如 Web 窗体和 XML Web Services)。.NET Framework 可由非托管组件承载,这些组件将公共语言运行库加载到它们的进程中并启动托管代码的执行,从而创建一个可以同时利用托管和非托管功能的软件环境。.NET Framework 不但提供若干个运行库宿主,而且还支持第三方运行库宿主的开发。例如,ASP.NET 承载运行库为托管代码提供可伸缩的服务器端环境。ASP.NET 直接使用运行库以启用 ASP.NET
40、 应用程序和 XML Web Services。Internet Explorer 是承载运行库(以 MIME 类型扩展的形式)的非托管应用程序的一个示例。使用 Internet Explorer 承载运行库使您能够在 HTML 文档中嵌入托管组件或 Windows 窗体控件。以这种方式承载运行库使得托管移动代码(类似于 Microsoft ActiveX 控件)成为可能,不过它需要进行重大改进(如不完全受信任的执行和独立的文件存储),而这种改进只有托管代码才能提供。公共语言运行库的功能:公共语言运行库管理内存、线程执行、代码执行、代码安全验证、编译以及其他系统服务。这些功能是在公共语言运行库
41、上运行的托管代码所固有的。至于安全性,取决于包括托管组件的来源(如 Internet、企业网络或本地计算机)在内的一些因素,托管组件被赋予不同程度的信任。这意味着即使用在同一活动应用程序中,托管组件既可能能够执行文件访问操作、注册表访问操作或其他须小心使用的功能,也可能不能够执行这些功能。运行库强制实施代码访问安全。例如,用户可以相信嵌入在网页中的可执行文件能够在屏幕上播放动画或唱歌,但不能访问他们的个人数据、文件系统或网络。这样,运行库的安全性功能就使通过 Internet 部署的合法软件能够具有特别丰富的功能。运行库还通过实现称为通用类型系统 (CTS) 的严格类型验证和代码验证基础结构来
42、加强代码可靠性。CTS 确保所有托管代码都是可以自我描述的。各种 Microsoft 和第三方语言编译器生成符合 CTS 的托管代码。这意味着托管代码可在严格实施类型保真和类型安全的同时使用其他托管类型和实例12。此外,运行库的托管环境还消除了许多常见的软件问题。例如,运行库自动处理对象布局并管理对对象的引用,在不再使用它们时将它们释放。这种自动内存管理解决了两个最常见的应用程序错误:内存泄漏和无效内存引用。运行库还提高了开发人员的工作效率。例如,程序员可以用他们选择的开发语言编写应用程序,却仍能充分利用其他开发人员用其他语言编写的运行库、类库和组件。任何选择以运行库为目标的编译器供应商都可以
43、这样做。以 .NET Framework 为目标的语言编译器使得用该语言编写的现有代码可以使用 .NET Framework 的功能,这大大减轻了现有应用程序的迁移过程的工作负担。尽管运行库是为未来的软件设计的,但是它也支持现在和以前的软件。托管和非托管代码之间的互操作性使开发人员能够继续使用所需的 COM 组件和 DLL。运行库旨在增强性能。尽管公共语言运行库提供许多标准运行库服务,但是它从不解释托管代码。一种称为实时 (JIT) 编译的功能使所有托管代码能够以它在其上执行的系统的本机语言运行。同时,内存管理器排除了出现零碎内存的可能性,并增大了内存引用区域以进一步提高性能13。最后,运行库
44、可由高性能的服务器端应用程序(如 Microsoft SQL Server 和 Internet 信息服务 (IIS))承载。此基础结构使您在享受支持运行库宿主的行业最佳企业服务器的优越性能的同时,能够使用托管代码编写业务逻辑。NET Framework 类库:.NET Framework 类库是一个与公共语言运行库紧密集成的可重用的类型集合。该类库是面向对象的,并提供您自己的托管代码可从中导出功能的类型。这不但使 .NET Framework 类型易于使用,而且还减少了学习 .NET Framework 的新功能所需要的时间。此外,第三方组件可与 .NET Framework 中的类无缝集成
45、。例如,.NET Framework 集合类实现一组可用于开发您自己的集合类的接口。您的集合类将与 .NET Framework 中的类无缝地混合。正如您对面向对象的类库所希望的那样,.NET Framework 类型使您能够完成一系列常见编程任务(包括诸如字符串管理、数据收集、数据库连接以及文件访问等任务)。除这些常见任务之外,类库还包括支持多种专用开发方案的类型。例如,可使用 .NET Framework 开发下列类型的应用程序和服务: 控制台应用程序。 Windows GUI 应用程序(Windows 窗体)。 ASP.NET 应用程序。 XML Web Services。 Window
46、s 服务14。例如,Windows 窗体类是一组综合性的可重用的类型,它们大大简化了 Windows GUI 的开发。如果要编写 ASP.NET Web 窗体应用程序,可使用 Web 窗体类。ASP.NET 是使开发人员能够使用 .NET Framework 开发基于 Web 的应用程序的宿主环境。但是,ASP.NET 不止是一个运行库宿主;它是使用托管代码开发网站和通过 Internet 分布的对象的完整结构。Web 窗体和 XML Web Services 都将 IIS 和 ASP.NET 用作应用程序的发布机制,并且两者在 .NET Framework 中都具有支持类集合。XML Web Services 作为基于 Web 的技术的重要发展,是类似于常见网站的分布式服务器端应用程序组件。但是,与基于 Web 的应用程序不同,XML Web Services 组件不具有 UI 并且不以浏览器(如 Internet Explorer 和 Netscape Navigator)为目标。XML Web Services 由旨在供其他应用程序使用的可重用的软件组件组成,所谓的其他应用程序包括:传统的客户端应用程序,基于 Web 的应用程序,甚至是其他 XML Web Services。因此,XML Web Services 技术正迅速地将应用程序开发和部署推向高度分布