《50基于.net的在线图书管理销售系统本科学位论文.doc》由会员分享,可在线阅读,更多相关《50基于.net的在线图书管理销售系统本科学位论文.doc(68页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、 基于。NET的在线图书管理销售系统申请上海交通大学工程硕士学位论文基于.NET的在线图书管理销售系统学校代码:10248作者姓名:学 号:第一导师:第二导师:学科专业:软件工程答辩日期:年 月 日上海交通大学软件学院2010年 5月A Dissertation Submitted to Shanghai Jiao Tong University for Master Degree of EngineeringTHE BOOKS ONLINE SALES MANAGEMENT SYSTEM BASED ON ASP.NETUniversity Code:10248Author:Gao Jian
2、guangStudent ID:1070372072Mentor 1:Lu BaoliangMentor 2:Field:Software EngineeringDate of Oral Defense:School of SoftwareShanghai Jiaotong UniversityFifth, 2010上海交通大学学位论文原创性声明本人郑重声明:所呈交的学位论文,是本人在导师的指导下,独立进行研究工作所取得的成果。除文中已经注明引用的内容外,本论文不包含任何其他个人或集体已经发表或撰写过的作品成果。对本文的研究做出重要贡献的个人和集体,均已在文中以明确方式标明。本人完全意识到本声
3、明的法律结果由本人承担。 学位论文作者签名: 日期: 年 月 日上海交通大学学位论文版权使用授权书本学位论文作者完全了解学校有关保留、使用学位论文的规定,同意学校保留并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅。本人授权上海交通大学可以将本学位论文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。 保密,在 年解密后适用本授权书。本学位论文属于 不保密。(请在以上方框内打“”)学位论文作者签名: 指导教师签名:日期: 年 月 日 日期: 年 月 日 基于。NET的在线图书管理销售系统基于.NET的在线图书管理销售系统摘 要商
4、品在线销售是目前互联网上不可阻挡的趋势,图书作为生活中必不可少的一种商品,在线销售的意义更是巨大。本文通过对在线图书销售管理的可行性进行分析,提出了一套可行的在线图书销售管理系统的开发解决方案。图书作为一种知识记录及传播的重要载体,是我们生活中不可或缺的一种商品。长期以来,图书主要是通过实体店铺进行销售的。这种销售方式有很多弊端,如图书查询不方便、图书销售成本较高、读者购书受时间及空间限制较大等。随着个人电脑及互联网技术的快速发展,人类的生存方式在迅速的改变着,在线图书销售作为一种典型的Web电子商务系统也迅速的发展并深入人们的日常生活中。越来越多的人更愿意足不出户就可以挑选购买自己喜欢的各种
5、书籍,在线图书销售管理系统跨越了时间和空间的限制,简化了销售流程,降低了销售成本,并且给消费者带来了便利,是对传统图书销售方式的有力补充,并有可能在今后成为最主要的图书销售方式。本系统正是在这样的背景下进行设计和实现的,本系统采用B/S结构进行设计,选择ASP.Net+SQL Server作为开发平台,使用C#作为服务器端主要开发语言,客户端采用html和Javascript语言进行开发。在系统的开发中,运用到了XML建模,ORM映射技术,数据库存储过程等多个主流的计算机技术。论文主要完成的工作如下:首先从项目背景、技术可行性、经济可行性、运营可行性几个方面对图书在线销售及管理系统进行分析。其
6、次,介绍了实现该系统的相关技术,其中包括.NET Framework及C#语言的简介、SQL语言特性的简要介绍、ORM实体-对象映射技术的概要说明,同时对开发过程中所使用的开发工具Visual Studio 2005和SQL Server 2005也进行了说明。然后,对系统的任务目标和用户特点进行介绍,从功能性需求、非功能性需求、系统运行环境等几个方面对项目需求进行了分析,并使用UML用例图对用户需求进行可视化描述。接下来,详细描述了系统的设计方法及结果,主要包括系统的结构设计、数据库设计和安全性的设计。本系统的设计以模块化及面向对象设计思想为指导,在需求分析的基础上,将系统分割为图书管理、资
7、源管理、人员管理、销售管理、数据管理等多个模块,每个功能模块相对独立,可以最大限度的保障系统的稳定运行。在安全性设计方面,采用了防火墙、身份认证、访问控制等多种策略保护系统安全,并对SQL注入攻击、暴力破解等常见攻击行为采取积极的防范措施。最后,详细描述了系统各主要功能模块的实现,并对其中使用到的关键技术进行了具体的分析,主要包括代码自动生成技术、ORM实体-对象映射技术、数据库备份还原技术及螺旋式软件开发模型在项目开发中的应用。关键词 电子商务,图书在线销售,ASP.NET,SQL ServerTHE BOOKS ONLINE SALES MANAGEMENT SYSTEM BASED ON
8、 ASP.NETABSTRACT KEYWORDS E-commerce,Books online sales,ASP.NET,SQL Server目 录ABSTRACTIII1 绪 论11.1项目背景11.2关于本系统的基本介绍11.3 可行性分析11.3本章小结22 相关技术分析32.1 .NET 开发技术介绍32.1.1 .NET Framework简介32.1.2 C#语言特性62.1.3 ASP.NET技术概要92.1.4Visual Studio 2005简介112.2 数据库技术介绍112.2.1 SQL语言特性112.2.2 SQL Server 2005简介132.3 UML
9、建模语言介绍152.4 ORM技术概要172.5 本章小结183 需求分析193.1需求分析概述193.1.1 任务概述193.1.2 用户特点203.2系统功能性需求分析203.2.1用户接口模块223.2.2管理员接口模块243.3系统非功能性需求分析263.4 系统UML用例描述273.5系统运行环境293.6本章小结304 系统及数据库总体设计314.1总体设计思路314.1.1模块化设计314.1.2 面向对象设计314.2概要设计334.3各模块子功能设计344.4数据库设计354.5安全性设计444.5.1物理安全与防火墙设置444.5.2 身份认证与访问控制454.5.3 SQ
10、L注入攻击的防范454.6本章小结475 系统实现485.1 系统各主要功能模块485.2 关键技术分析515.2.1代码生成515.2.2 ORM技术的应用525.2.3数据备份与还原535.2.4 螺旋式软件开发模型的应用535.3本章小结556 总结与展望566.1本文的主要工作566.2本文的创新之处566.3对未来工作的展望57参考文献58致 谢60攻读学位期间发表的学术论文61V1 绪 论1.1项目背景图书作为一种知识记录及传播的重要载体,是我们生活中不可或缺的一种商品。长期以来,图书主要是通过实体店铺进行销售的。这种销售方式有很多弊端,如图书查询不方便、图书销售成本较高、读者购书
11、受时间及空间限制较大等。随着个人电脑及互联网技术的快速发展,人类的生存方式在迅速的改变着,在线图书销售作为一种典型的Web电子商务系统也迅速的发展并深入人们的日常生活中1。越来越多的人更愿意足不出户就可以挑选购买自己喜欢的各种书籍,这样大大缩短了购书的时间,提高了效率。在线图书销售管理系统跨越了时间和空间的限制,简化了销售流程,降低了销售成本,并且给消费者带来了便利,是对传统图书销售方式的有力补充,并有可能在今后成为最主要的图书销售方式2。本系统正是在这样的背景下进行设计和实现。1.2关于本系统的基本介绍 本系统采用B/S结构进行设计,选择ASP.Net+SQL Server作为开发平台,使用
12、C#作为服务器端主要开发语言,客户端采用html和Javascript语言进行开发。在系统的开发中,运用到了XML建模,ORM映射技术,数据库存储过程等多个主流的计算机技术。本系统主要包括用户管理模块、图书管理模块、作者管理模块、文章管理模块、专题管理模块、图书在线销售模块、BBS在线交流系统及数据管理模块等多个子模块,实现了图书、人员、订单、库存的信息化管理,同时为图书作者、编者和读者提供了有效的交流平台,读者可以向作者及编者及时有效的反映自己的需求和感受。本系统架设方便,操作简单,用户只需具备最基本的计算机操作能力,经过简单的培训即可熟练的使用本系统。本系统面向出版社、书店和其他各类图书经
13、销机构及个人,通过本系统可以使图书的管理更加方便,同时拓宽了图书销售的渠道,帮助企业和个人获取更大的价值。1.3 可行性分析可行性研究的主要目标是:进一步明确系统的目标、规模与功能,对系统开发背景、必要性和意义进行调查分析并根据需要和可能提出开发系统的初步方案与计划。下面将从技术可行性、经济可行性、运营可行性三个方面进行描述:(1)技术可行性:本系统采用Windows作为操作平台。数据库管理系统选用SQL server2005,该数据库管理系统提供数据库之间的数据复制功能,可代替现有系统单据数据的手工传递工作,降低出错率,提高数据的可用性。本系统的开发平台选用Visual Studio 200
14、5,这是目前web数据库应用软件的主流开发平台,开发技术十分成熟。(2)经济可行性:本系统的开发只需要一次性投入少量资金即可完成,在之后的维护中只需很少的人力成本和设备维护费用。采用本系统对图书进行管理及销售,可减少人工开支,节省资金,并且可大大提高信息量的取得,缩短信息处理周期提高员工信息的利用率,使销售质量更上一个台阶。(3)运营可行性1)本系统操作简单,易于理解,只需通过简单培训,上手较快,营运环境要求低。2)面对于系统设计还应该以“标准性、安全性、高效性、保密性、可维护性”为标准,在着眼于当前实用的基础上,为将来系统的扩展,升级留有余地。1.3本章小结本章主要对该项目的背景进行介绍,并
15、从技术可行性、经济可行性、运营可行性三个方面对项目进行分析。2 相关技术分析2.1 .NET 开发技术介绍2.1.1 .NET Framework简介.NET Framework是支持生成和运行下一代应用程序和XML Web services的内部Windows 组件。.NET Framework 旨在实现下列目标: l 提供一个一致的面向对象的编程环境,而无论对象代码是在本地存储和执行,还是在本地执行但在Internet上分布,或者是在远程执行的。 l 提供一个将软件部署和版本控制冲突最小化的代码执行环境。 l 提供一个可提高代码(包括由未知的或不完全受信任的第三方创建的代码)执行安全性的代
16、码执行环境。 l 提供一个可消除脚本环境或解释环境的性能问题的代码执行环境。 l 使开发人员的经验在面对类型大不相同的应用程序(如基于 Windows 的应用程序和基于Web的应用程序)时保持一致。 l 按照工业标准生成所有通信,以确保基于.NET Framework的代码可与任何其他代码集成。 .NET Framework具有两个主要组件:公共语言运行库和.NET Framework类库。公共语言运行库是.NET Framework的基础。可以将运行库看作一个在执行时管理代码的代理,它提供内存管理、线程管理和远程处理等核心服务,并且还强制实施严格的类型安全以及可提高安全性 和可靠性的其他形式
17、的代码准确性。事实上,代码管理的概念是运行库的基本原则。以运行库为目标的代码称为托管代码,而不以运行库为目标的代码称为非托管代码。.NET Framework的另一个主要组件是类库,它是一个综合性的面向对象的可重用类型集合,可以使用它开发多种应用程序,这些应用程序包括传统的命令行或图形用户界面 (GUI) 应用程序,也包括基于 ASP.NET 所提供的最新创新的应用程序(如Web窗体和 XML Web services)。.NET Framework可由非托管组件承载,这些组件将公共语言运行库加载到它们的进程中并启动托管代码的执行,从而创建一个可以同时利用托管和非托管功能的软件环境。.NET
18、Framework不但提供若干个运行库宿主,而且还支持第三方运行库宿主的开发3。图2-1显示公共语言运行库和类库与应用程序之间以及与整个系统之间的关系。该插图还显示托管代码如何在更大的结构内运行。图2-1 .NET Framework 环境Fig 2-1 .NET Framework Environment下面将对.NET Framework的主要组件和功能进行更加详细的描述。(1)公共语言运行库的功能公共语言运行库管理内存、线程执行、代码执行、代码安全验证、编译以及其他系统服务。这些功能是在公共语言运行库上运行的托管代码所固有的。至于安全性,取决于包括托管组件的来源(如Internet、企业
19、网络或本地计算机)在内的一些因素,托管组件被赋予不同程度的信任。这意味着即使用在同一活动应用程序中,托管组件既可能能够执行 文件访问操作、注册表访问操作或其他须小心使用的功能,也可能不能够执行这些功能。运行库强制实施代码访问安全。例如,用户可以相信嵌入在Web页中的可执行文件能够在屏幕上播放动画或唱歌,但不能访问他们的个人数据、文件系统或网络。这样,运行库的安全性功能就使通过Internet部署的合法软件能够具有特别丰富的功能。运行库还通过实现称为通用类型系统 (CTS) 的严格类型验证和代码验证基础结构来加强代码可靠性。CTS 确保所有托管代码都是可以自我描述的。各种 Microsoft和第
20、三方语言编译器生成符合CTS的托管代码。这意味着托管代码可在严格实施类型保真和类型安全的同时使用其他托管类型和实例。此外,运行库的托管环境还消除了许多常见的软件问题。例如,运行库自动处理对象布局并管理对对象的引用,在不再使用它们时将它们释放。这种自动内存管理解决了两个最常见的应用程序错误:内存泄漏和无效内存引用。运行库还提高了开发人员的工作效率。例如,程序员可以用他们选择的开发语言编写应用程序,却仍能充分利用其他开发人员用其他语言编写 的运行库、类库和组件。任何选择以运行库为目标的编译器供应商都可以这样做。以.NET Framework为目标的语言编译器使得用该语言编写的现有代码可以使用.NE
21、T Framework的功能,这大大减轻了现有应用程序的迁移过程的工作负担。尽管运行库是为未来的软件设计的,但是它也支持现在和以前的软件。托管和非托管代码之间的互操作性使开发人员能够继续使用所需的COM组件和 DLL。运行库旨在增强性能。尽管公共语言运行库提供许多标准运行库服务,但是它从不解释托管代码。一种称为实时 (JIT) 编译的功能使所有托管代码能够以它在其上执行的系统的本机语言运行。同时,内存管理器排除了出现零碎内存的可能性,并增大了内存引用区域以进一步提高性能4。(2).NET Framework类库.NET Framework 类库是一个与公共语言运行库紧密集成的可重用的类型集合。
22、该类库是面向对象的,易于学习与使用。此外,第三方组件可与.NET Framework中的类无缝集成。例如.NET Framework 集合类实现一组可用于开发自定义的集合类的接口。自定义的集合类将与.NET Framework中的类无缝地混合。正如面向对象的类库所要求的那样.NET Framework类型能够完成一系列常见编程任务(包括诸如字符串管理、数据收集、数据库连接以及文件访问等任务)。除这些常见任务之外,类库还包括支持多种专用开发方案的类型。例如,可使用.NET Framework开发下列类型的应用程序和服务: l 控制台应用程序。 l Windows GUI应用程序(Windows窗
23、体)。 l ASP.NET应用程序。 l XML Web services。 l Windows服务。 例如,Windows窗体类是一组综合性的可重用的类型,它们大大简化了 Windows GUI的开发。如果要编写ASP.NET Web窗体应用程序,可使用Web窗体类。2.1.2 C#语言特性C#是专门为.NET应用而开发出的语言。这从根本上保证了C#与.NET框架的完美结合。 在.NET运行库的支持下.NET框架的各种优点在C#中表现得淋漓尽致5。C#比较突出的特点包括:l 简洁的语法l 精心地面向对象设计l 与Web的紧密结合l 完整的安全性与错误处理l 版本处理技术l 灵活性与兼容性(1
24、)简洁的语法在 缺省的情况下,C#的代码在.NET框架提供的“可操纵”环境下运行,不允许直接地内存操作。它所带来的最大的特色是没有了指针。与此相关的是,那些在 C+中被疯狂使用的操作符(例如:“:”、“-”和“.,”)已经不再出现。C#只支持一个“.”,对于用户来说,现在需要理解的一切仅仅是名字的嵌套而已。C#用真正的关键字换掉了那些把活动模板库(Active Template Library,ALT)和COM搞得乱糟糟的伪关键字,如OLE_COLOR、BOOL、VARIANT_BOOL、DISPID_XXXXX等等。每 种C#操作符在.NET类库中都有了新名字。语法中的冗余是C+中的常见的问
25、题,比如const和#define、各种各样的字符类型等等。C#对此进行了简化,只保留了常见的形式,而别的冗余形式从它的语法结构中被清除了出去。(2)精心地面向对象设计有一定软件开发经验的人都知道,从Smalltalk开始,面向对象的话题就始终缠绕着任何一种现代程序设计语言。的确,C#具有面向对象的语言所应有的一切特性:封装、继承与多态性,这并不出奇。然而,通过精心地面向对象设计,从高级商业对象到系统级应用,C#建造广泛组件的绝对选择。在C#的类型系统中,每种类型都可以看作一个对象。C#提供了一个叫做装箱(boxing)与拆箱(unboxing)的机制来完成这种操作,而不给使用者带来麻烦。C#
26、只允许单继承,即一个类不会有多个基类,从而避免了类型定义的混乱。C#中没有了全局函数,没有了全局变量,也没有了全局常数。一切的一切,都必须封装在一个类之中。使用C#编写出来的代码将具有更好的可读性,并且减少了发生命名冲突的可能。整个C#的类模型是建立在.NET虚拟对象系统(Visual Object System ,VOS)的基础之上,其对象模型是.NET基础架构的一部分,而不再是其本身的组成部分。在下面将会谈到,这样做的另一个好处是兼容性6。借助于从VB中得来的丰富的RAD经验,C#具备了良好的开发环境。结合自身强大的面向对象功能,C#使得开发人员的生产效率得到极大的提高。对于公司而言,软件
27、开发周期的缩短将能使它们更好应付网络经济的竞争。在功能与效率的杠杆上人们终于找到了支点。(3)与Web的紧密结合.NET中新的应用程序开发模型意味着越来越多的解决方案需要与Web标准相统一,例如超文本标记语言(Hypertext Markup Language ,HTML)和XML。由于历史的原因,现存的一些开发工具不能与Web紧密地结合。SOAP的使用使得C#克服了这一缺陷,大规模深层次的分布式开发从此成为可能。由于有了Web服务框架的帮助,对程序员来说,网络服务看起来就象是C#的本地对象。程序员们能够利用他们已有的面向对象的知识与技巧开发Web服务。仅需要使用简单的C#语言结构,C#组件将
28、能够方便地为Web服务,并允许它们通过Internet被运行在任何操作系统上的任何语言所调用。举个例子,XML已经成为网络中数据结构传递的标准,为了提高效率,C#允许直接将XML数据映射成为结构。这样就可以有效的处理各种数据。(4)完整的安全性与错误处理语言的安全性与错误处理能力,是衡量一种语言是否优秀的重要依据。任何人都会犯错误,即使是最熟练的程序员也不例外:忘记变量的初始化,对不属于自己管理范围的内存空间进行修改。这些错误常常产生难以预见的后果。一旦这样的软件被投入使用,寻找与改正这些简单错误的代价将会是让人无法承受的。C#的先进设计思想可以消除软件开发中的许多常见错误,并提供了包括类型安
29、全在内的完整的安全性能。为了减少开发中的错误,C#会帮助开发者通过更少的代码完成相同的功能,这不但减轻了编程人员的工作量,同时更有效地避免了错误的发生。.NET运行库提供了代码访问安全特性,它允许管理员和用户根据代码的ID来配置安全等级。在缺省情况下,从Internet和Intranet下载的代码都不允许访问任何本地文件和资源。比方说,一个在网络上的共享目录中运行的程序,如果它要访问本地的一些资源,那么异常将被触发,它将会无情地被异常扔出去,若拷贝到本地硬盘上运行则一切正常。内存管理中的垃圾收集机制减轻了开发人员对内存管理的负担。.NET平台提供的垃圾收集器 (Garbage Collecti
30、on, GC) 将负责资源的释放与对象撤销时的内存清理工作。变量是类型安全的。C#中不能使用未初始化的变量,对象的成员变量由编译器负责将其置为零,当局部变量未经初始化而被使用时,编译器将做出提醒;C#不支持 不安全的指向,不能将整数指向引用类型,例如对象,当进行下行指向时,C#将自动验证指向的有效性;C#中提供了边界检查与溢出检查功能。(5)版本处理技术C#提供内置的版本支持来减少开发费用,使用C#将会使开发人员更加轻易地开发和维护各种商业用户。升级软件系统中的组件(模块)是一件容易产生错误的工作。在代码修改过程中可能对现存的软件产 生影响,很有可能导致程序的崩溃。为了帮助开发人员处理这些问题
31、,C#在语言中内置了版本控制功能。例如:函数重载必须被显式声明,而不会象在C+或 java中经常发生的那样不经意地被进行,这可以防止代码级错误和保留版本化的特性。另一个相关的特性是接口和接口继承的支持。这些特性可以保证复杂的软件可以被方便地开发和升级。(6)灵活性和兼容性在简化语法的同时,C#并没有失去灵活性。尽管它不是一种无限制语言,比如:它不能用来开发硬件驱动程序,在默认的状态下没有指针等等,但是,这并不影响其使用的灵巧性。如果需要,C#允许编程人员将某些类或者类的某些方法声明为非安全的。这样一来,就将能够使用指针、结构和静态数组,并且调用这些非安全代码不会带来任何其它的问 题。此外,它还
32、提供了一个另外的东西(这样的称呼多少有些不敬)来模拟指针的功能delegates(委托)。再举一个例子:C#不支持类的多继承,但是可以通过对接口的继承实现这一功能。正是由于其灵活性,C#允许与C风格的需要传递指针型参数的API进行交互操作,DLL的任何入口点都可以在程序中进行访问。C#遵守.NET公用语言规范 (Common Language Specification ,CLS),从而保证了C#组件与其它语言组件间的互操作性。元数据(Metadata)概念的引入既保证了兼容性,又实现了 类型安全7。2.1.3 ASP.NET技术概要ASP.NET 是统一的 Web 应用程序平台,它提供了为建
33、立和部署企业级 Web 应用程序所必需的服务。ASP.NET 为能够面向任何浏览器或设备的更安全的、更强的可升级性、更稳定的应用程序提供了新的编程模型和基础结构。ASP.NET 是 Microsoft .NET Framework 的一部分,是一种可以在高度分布的 Internet 环境中简化应用程序开发的计算环境。.NET Framework 包含公共语言运行库,它提供了各种核心服务,如内存管理、线程管理和代码安全。它也包含 .NET Framework 类库,这是一个开发人员用于创建应用程序的综合的、面向对象的类型集合8。ASP.NET 提供了下面的优点:l 可管理性:ASP.NET 使用
34、基于文本的、分级的配置系统,简化了将设置应用于服务器环境和 Web 应用程序的工作。因为配置信息是存储为纯文本的,因此可以在没有本地管理工具的帮助下应用新的设置。配置文件的任何变化都可以自动检测到并应用于应用程序。详细信息,请参阅ASP.NET 配置。l 安全:ASP.NET 为 Web 应用程序提供了默认的授权和身份验证方案。开发人员可以根据应用程序的需要很容易地添加、删除或替换这些方案。详细信息,请参阅ASP.NET 安全。l 易于部署:通过简单地将必要的文件复制到服务器上,ASP.NET 应用程序即可以部署到该服务器上。不需要重新启动服务器,甚至在部署或替换运行的已编译代码时也不需要重新
35、启动。详细信息,请参阅ASP.NET 部署。l 增强的性能:ASP.NET 是运行在服务器上的已编译代码。与传统的 Active Server Pages (ASP) 不同,ASP.NET 能利用早期绑定、实时 (JIT) 编译、本机优化和全新的缓存服务来提高性能。详细信息,请参阅ASP.NET 性能监视。l 灵活的输出缓存:根据应用程序的需要,ASP.NET 可以缓存页数据、页的一部分或整个页。缓存的项目可以依赖于缓存中的文件或其他项目,或者可以根据过期策略进行刷新。l 国际化:ASP.NET 在内部使用 Unicode 以表示请求和响应数据。可以为每台计算机、每个目录和每页配置国际化设置。
36、l 移动设备支持:ASP.NET 支持任何设备上的任何浏览器。开发人员使用与用于传统的桌面浏览器相同的编程技术来处理新的移动设备。l 扩展性和可用性:ASP.NET 被设计成可扩展的、具有特别专有的功能来提高群集的、多处理器环境的性能。此外,Internet 信息服务 (IIS) 和 ASP.NET 运行时密切监视和管理进程,以便在一个进程出现异常时,可在该位置创建新的进程使应用程序继续处理请求。详细信息,请参阅ASP.NET 进程隔离。l 跟踪和调试:ASP.NET 提供了跟踪服务,该服务可在应用程序级别和页面级别调试过程中启用。可以选择查看页面的信息,或者使用应用程序级别的跟踪查看工具查看
37、信息。在开发和应用 程序处于生产状态时,ASP.NET 支持使用 .NET Framework 调试工具进行本地和远程调试。当应用程序处于生产状态时,跟踪语句能够留在产品代码中而不会影响性能。l 与 .NET Framework 集成:因 为 ASP.NET 是 .NET Framework 的一部分,整个平台的功能和灵活性对 Web 应用程序都是可用的。也可从 Web 上流畅地访问 .NET 类库以及消息和数据访问解决方案。ASP.NET 是独立于语言之外的,所以开发人员能选择最适于应用程序的语言。另外,公共语言运行库的互用性还保存了基于 COM 开发的现有投资。l 与现有 ASP 应用程序
38、的兼容性:ASP 和 ASP.NET 可并行运行在 IIS Web 服务器上而互不冲突;不会发生因安装 ASP.NET 而导致现有 ASP 应用程序崩溃的可能。ASP.NET 仅处理具有 .aspx 文件扩展名的文件。具有 .asp 文件扩展名的文件继续由 ASP 引擎来处理。然而,应该注意的是会话状态和应用程序状态并不在 ASP 和 ASP.NET 页面之间共享9。ASP.NET 启用了分布式应用程序的两个功能:Web 窗体和 XML Web 服务。相同的配置和调试基本结构支持这两种功能。l 使用Web 窗体技术建立强大的基于窗体的网页。Web 窗体页面使用可重复使用的内建组件或自定义组件以
39、简化页面中的代码。l 使 用 ASP.NET 创建的 XML Web 服务可远程访问服务器。使用 XML Web 服务,商家可以提供其数据或商业规则的可编程接口,之后可以由客户端和服务器端应用程序获得和操作。通过在客户端/服务器和服务器/服务器方案中的防火墙 范围内使用标准(如 XML 消息处理和 HTTP),XML Web 服务可启用数据交换。以任何语言编写的且运行在任何操作系统上的程序都能调用 XML Web 服务10。2.1.4Visual Studio 2005简介Visual Studio是微软公司出品的一款大型应用软件,从最初的Visual Studio 97开始就成为编程的重要工
40、具。Visual Studio的开发经历了Visual Studio 97,Visual Studio 6.0,Visual Studio.NET(2002),Visual Studio.NET 2003,Visual Studio 2005。本部分将会对Visual Studio进行简要的介绍。进行.NET开发的工具并非只有Visual Studio,最常见的如Windows自带的记事本实用程序也可以实现.NET程序开发。事实上Visual Studio成为了.NET开发的首选工具。Visual Studio是一套完整的开发工具集,包含了大量的功能。它主要用于生成ASP.NET Web应用程
41、序、XML Web Services、桌面应用程序和移动应用程序。Visual Basic、Visual C+、Visual C# 和Visual J# 全都使用相同的集成开发环境(IDE)。利用此IDE可以共享工具且有助于创建混合语言解决方案,使程序可以使用不同的语言共同开发。另外,这些语言利用 了.NET Framework的功能,通过此框架可使用简化ASP Web应用程序和XML Web Services开发的关键技术。Visual Studio 2005的集成开发环境中为开发人员提供了大量的实用工具以提高工作效率。这些工具包括了自动编译、项目创建向导、创建部署工程等等。相比较于Visu
42、al Studio 2003,Visual Studio 2005不仅仅是在.NET版本的支持上发生了变化,其在许多方面都提供了改进乃至全新的功能。Visual Studio 2005的新增功能集中在以下几个方面:l 开发环境中的新增功能。l 代码编辑中的新增功能。l 项目、解决方案和项中的新增功能。l 生成、测试和部署中的新增功能。l Visual Studio 2005调试器的新增功能。l Visual Studio 2005中扩展性和自动化的新增功能。l Visual Studio帮助中的新增功能。2.2 数据库技术介绍2.2.1 SQL语言特性SQL全称是“结构化查询语言(Struct
43、ured Query Language)”,最早的是IBM的圣约瑟研究实验室为其关系数据库管理系统SYSTEM R开发的一种查询语言,它的前身是SQUARE语言。SQL语言结构简洁,功能强大,简单易学,所以自从IBM公司1981年推出以来,SQL语言,得到 了广泛的应用。如今无论是像Oracle ,Sybase ,Informix ,SQL server这些大型的数据库管理系统,还是像Visual FoxPro ,PowerBuilder这些微机上常用的数据库开发系统,都支持SQL语言作为查询语言。Structured Query Language包含4个部分:l 数据查询语言DQL-Data
44、 Query Language SELECTl 数据操纵语言DQL-Data Manipulation Language INSERT, UPDATE, DELETEl 数据定义语言DQL-Data Definition Language CREATE, ALTER, DROPl 数据控制语言DQL-Data Control Language COMMIT WORK, ROLLBACK WORK 70年代初,E.E.Codd首先提出了关系模型。70年代中期,IBM公司在研制 SYSTEM R关系数据库管理系统中研制了SQL语言,最早的SQL语言(叫SEQUEL2)是在1976 年 11 月的I
45、BM Journal of R&D上公布的。1979年ORACLE公司首先提供商用的SQL,IBM公司在DB2 和SQL/DS数据库系统中也实现了SQL。1986年10月,美国ANSI采用SQL作为关系数据库管理系统的标准语言(ANSI X3. 135-1986),后为国际标准化组织(ISO)采纳为国际标准。1989年,美国ANSI采纳在ANSI X3.135-1989报告中定义的关系数据库管理系统的SQL标准语言,称为ANSI SQL 89, 该标准替代ANSI X3.135-1986版本。该标准为下列组织所采纳: (1)国际标准化组织(ISO),为ISO 9075-1989报告“Datab
46、ase Language SQL With Integrity Enhancement”(2)美国联邦政府,发布在The Federal Information Processing Standard Publication(FIPS PUB)127 目前,所有主要的关系数据库管理系统支持某些形式的SQL语言, 大部分数据库打算遵守ANSI SQL89标准。 SQL广泛地被采用正说明了它的优点。它使全部用户,包括应用程序员、DBA管理员和终端用户受益非浅。 (1)非过程化语言SQL是一个非过程化的语言,因为它一次处理一个记录,对数据提供自动导航。SQL允许用户在高层的数据结构上工作,而不对单个记录进行操作,可操作 记录集。所有SQL 语句接受集合作为输入,返回集合作为输出。SQL的集合特性允许一条SQL语句的结果作为另一条SQL语句的输入。 SQL不要求用户指定对数据的存放方法。 这种特性使用户更易集中精力于要得到的结果。所有SQL语句使用查询优化器,它是RDBMS的一部分,由它决定对指定数据存取的最快速度的手段。查询优化器知道存在什么索引,哪儿使用合适,而用户从不需要知道表是否有索引,表有什么类型的索引