




免费预览已结束,剩余43页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
毕业设计(论文)说明书题 目: ASP.NET技术在网站设计中的研究与开发 毕业设计(论文)中文摘要ASP.NET技术在网站开发设计中的研究与开发摘 要:基于Microsoft . NET环境的ASP. NET技术,为开发功能强大的动态网站提供了一种简单、高效的途径。正文阐述的是ASP. NET作为一种全新的动态网站开发技术,它是通过大量使用组件技术,将Web浏览器与Web服务器之间的网络通信完全的包装起来,在ASP. NET中,动态网站开发技术已经变为利用组件搭建“基于Web的应用程序”。论文还阐述了网站开发技术的现状,通过对各个技术的系统比较从而对ASP.NET技术做了较深入的研究,并结合研究情况开发设计了一个网上书店系统。该系统的基本功能已实现,普通用户进入系统后,可以查看商品信息,并购买商品;管理员可以添加新的商品信息并可以确认核实客户提交的订单。关键词:ASP.NET 动态网站开发技术 组件 网上书店毕业设计(论文)外文摘要Development and Research of ASP.NET Technology in Designing Web SiteAbstract: ASP.NET technology based on Microsoft.NET environment provides a simple, effective means to establish multifunctional, dynamic web sites.This thesis is about ASP.NET a whole new technology to establish dynamic web sites. By using plentiful component technologies, packs it up the network communications between Web Explorer and Web Server. In ASP.NET, the technologies of establishing dynamic web sites are turning to build applications based-on web by component. And, this thesis also accounts for the actuality of web development technology. I made an in-depth study by comparing with various skills, and then designed a system of bookstore online. All the basic functions of the system have been achieved. A common user enter the system, he could browse commodity information and purchase. Administrator can add new commodities and verify bills that clients made.Keywords: ASP.NET; Dynamic website developing technology; Component; Bookstore online目 录1 引言11.1 问题定义与内容简介11.2 研究背景及研究意义11.3 可行性分析21.3.1 技术可行性研究21.3.2 经济可行性研究31.4 论文各章内容介绍32 课题研究分析42.1 网站开发技术研究42.1.1 WEB开发技术的发展42.1.2 技术比较52.1.3 ASP.NET技术研究72.2 ASP.NET技术在实例中的应用102.2.1 ASP.NET内置对象的应用102.2.2 页面控件的应用122.3 ASP.NET开发工具163 ASP.NET开发网站应用示例183.1 方案研究183.2 业务流分析183.3 数据流分析193.4 数据字典213.4.1 数据流分量(即数据元素)213.4.2 数据流213.4.3 数据存储223.4.4 数据处理224 系统设计及各功能模块的实现244.1 系统设计244.1.1 系统总体功能结构244.1.2 系统数据模型设计244.2 详细设计294.2.1 商品浏览模块294.2.2 商品查询模块304.2.3 购买商品(购物车)功能模块314.2.4 订单结算功能模块334.2.5 用户查看所有订单功能模块334.2.6 管理员添加商品功能模块344.2.7 管理员查看订单功能模块355 应用演示375.1 用户部分375.2 管理员部分386 研究成果评价406.1 研究成果406.2 研究不足和解决方案40结 论41致 谢42参 考 文 献43毕业设计(论文) 第43页 共43页1 引言上个世纪60年代诞生的互联网,在近十几年的时间里得到了迅猛的发展,其主要的原因是WEB技术的出现。它将世界各地的信息链接起来,使互联网成为最大的信息载体,使地球变的像个小村子,使信息共享和流通的能力延伸到了我们的桌面上。WEB技术是互联网的核心内容,WEB因为具有音频、视频技术,内部交互和易于管理而受到个人和企业的青睐。随着WEB的逐渐发展和成熟,web技术也在逐渐的发展,从HTML到CGI,到3P(ASP、JSP、PHP),再到现在的ASP.NET,已经经过了几个阶段的发展。1.1 问题定义与内容简介ASP.NET网络服务体系架构为使用ASP.NET建立网络服务提供了一个高级可编程模板。虽然建立网络服务并不需要使用网络服务平台,但是它具有许多的优点将简化开发过程,并且它使用的编程模型对用ASP或VB工作的开发人员来说是很熟悉的。使用这个可编程模型,开发人员不需要理解HTTP、SOAP或其它任何网络服务规范。本课题的主要目的是对网站设计的相关技术进行理论研究,比较ASP.NET技术的相关特点,并在对各种技术进行系统分析和研究的基础上,借鉴现有系统的一些经验,开发一网站实现相关管理功能。并且通过学习ASP.NET技术并查阅大量关于网站设计技术的文献资料,比较各种技术的优越性,汇总形成相关文档。在研究学习的基础上,结合相关资料,设计出简洁的具有用户注册登录、信息查看、信息查询等功能的系统。网站实现的基本功能是:(1)信息查看:普通用户和管理员登录系统后可以进行信息查看;(2)信息查询:用户可以登录系统后进行信息查询。1.2 研究背景及研究意义随着个人电脑和Internet的普及推广,Web技术得到了迅猛的发展,人们开始越来越依赖网络:企业通过网络可以更有效、便捷的发布信息和推广自己新的产品;个人通过网络可以跟自己的朋友聊天、写信,可以查看新闻,可以在网上娱乐,甚至可以不用出户就可以购买自己喜欢的商品等等,网络带来无尽的便捷和乐趣。设计出好看,适用的网站就成为必要的,现在用于网站设计、开发的技术有很多,譬如ASP、JSP、ASP.NET等等。其中JSP(Java Server Pages)是由Sun Microsystems公司倡导、许多公司参与一起建立的一种动态网页技术标准。它是在传统的网页HTML文件中插入Java程序段和JSP标记,从而形成JSP文件。JSP与Java Servlet一样,是在服务器端执行的,通常返回该客户端的就是一个HTML文本,因此客户端只要有浏览器就能浏览。ASP(Active Server Pages活动服务器页面)是一种功能强大的运用于服务器端的脚本编程环境,但是只能用VBScript或者JavaScript这样的非模块语言来编程,而且大量的HTML代码和VBScript、JavaScript代码混合在一起,使得程序员需要修改程序的时候比较困难。而ASP.NET技术是Microsoft公司推出的新一代动态Web开发技术。ASP.NET不同于ASP和JSP,它是建立在.NET Framework之上,提供了更易于编写而且结构清晰的代码,它使用VB.NET和C#等模块化语言编写程序,提高了代码的再利用性和共享性。ASP.NET在结构上几乎完全是基于组件和模块化的,Web应用程序的开发人员使用这个开发技术可以实现更加模块化的、功能更强大的应用程序。ASP.NET技术在效率、可重用性及代码量上较ASP和JSP都有明显的优势。使用ASP.NET技术,开发人员不需要理解HTTP、SOAP或其它任何网络服务规范。开发人员用ASP.NET生成一个扩展名为.asmx的文件,并把此文件配制为网络应用程序的一部分,就建立起了一个网络服务。 asmx文件包含对在其它地方定义的受控类的引用,或者包含这个类的定义。这个类是由ASP.NET提供的WebService类所派生。公有的类方法在标记上WebMethod属性后,就会成为网络服务方法,把HTTP请求发送到asmx文件中的URL后,这些方法就会被调用。你不必手工为你的网络服务建立一个契约。当被调用者请求时,ASP.NET检查类的元数据,以自动生成SCL文件。客户可通过SOAP,HTTP GET 和HTTP POST提交请求。对方法和参数进行编码的约定是:对HTTP GET,将被编码为查询字符串;对HTTP POST,将被编码为表单数据。HTTP GET 和HTTP POST 的机制不如SOAP有力,但是它们使得客户在访问网络服务时不必支持SOAP。 ASP.NET 网络服务模型假定了一个无状态服务结构。无状态结构通常比有状态结构更具可扩展性。每次收到一个服务请求后,就生成一个新对象,请求被转化为一个方法调用,当该方法调用返回时对象被销毁。如果这些服务需要跨请求维护状态,那么它们将使用ASP.NET状态管理服务。基于ASP.NET的网络服务在网络应用程序模型中运行,因此它们得到了该模型的所有安全、配制和其它优点。 ASP.NET 网络服务还提供了一个为在SCL文件中描述的网络服务生成分类的受控代理工具。代理生成器把SCL文件中描述的消息映射成受控类中的方法。代理对应用程序代码隐藏了所有的网络和引导设备,因此使用网络服务看起来就像使用其它受控代码一样。代理将优先使用SOAP链接网络服务,但是它同样支持HTTP GET和 HTTP POST机制。因此HTTP GET和 HTTP POST同样也能被使用。网络服务为在Internet上绑定应用程序提供了一个利用现存体系架构和应用程序的简单的、灵活的、基于许多标准的模型。网络应用程序很容易与当地开发的服务或已存在的服务集成在一起,而不用考虑开发平台、开发语言或使用的对象模型,以用于实现任何组成的服务或应用程序。Microsoft .NET框架在现有开发人员技巧之上,提供了一个应用程序模板和关键技术,用于简化安全、可靠、可扩展、高可用性的网络服务的建立、部署和不断的发展。1.3 可行性分析1.3.1 技术可行性研究课题主要是理论研究,研究ASP.NET技术在网站开发中的应用,关键是要查阅大量的关于ASP.NET技术和其他网站开发技术方面的文章和书籍。学校图书馆有大量关于这方面的书籍可以借阅,另外在互联网上也有关于这方面的大量论文可以查阅。另外网站的设计主要使用的是ASP.NET技术,.NET Framework1.1框架作为微软公司已经比较成熟的产品,现在越来越多的网站开发设计都选择它。1.3.2 经济可行性研究 课题研究的是ASP.NET技术,设计开发的电子商务网站在PC机上就可以实现,不要考虑其他的设备。也为以后网站设计开发编程技术的选择提供了更多的技术支持。1.4 论文各章内容介绍 论文共分为六章,由浅至深的阐述了研究的结论并结合实例进行了说明。第一章简要的介绍了Microsoft .NET框架,提出了课题研究的背景,并对研究课题做了调研及可行性分析。第二章主要介绍了WEB技术的发展,简单介绍了ASP,JSP 和PHP技术,详细说明了ASP.NET技术,并将各种网站开发技术做了深入比较。第三章全面介绍了对实例系统进行总体设计的方案。第四章介绍系统的详细设计和各功能模块的设计及实现第五章介绍系统的应用演示,分别以用户和管理员的身份进行了演示分析。第六章介绍研究成果的评价及其不足的解决方案2 课题研究分析2.1 网站开发技术研究2.1.1 WEB开发技术的发展WEB程序初期,网站组成是一系列静态的网页,这种程序只允许用户浏览网站的信息,而不能和网站进行交互(即静态网页),这就大大制约了商业的经营活动。为此,CGI技术出现,基本弥补了不能交互的缺点,是技术上的一种突破,但用户在使用CGI程序时,CGI为每个用户分配一个进程,进程是资源分配的基本单位,这样使资源不能得到完全很好的利用,并且浪费严重。由于计算机资源的有限性,限制了使用网站的用户的数量,导致用户使用中速度相对过慢,不能满足需求。与此同时Microsoft公司和网景公司均看到了CGI的不足,为此分别设计的一套API,分别是ISAPI和NSAPI,这两套API均采用线程机制,每个用户均使用一个线程与网站进行交互,他们的出现使得每个语种如DELPHI、VB等均可以设计web应用程序,WEB程序获得飞速的发展。但ISAPI和NSAPI有两个缺点:一是不太稳定,二是要求程序的设计水平较高不利于普及。1995年java出现后给网站设计带来了曙光,java是一个跨平台的程序设计语言,以其一次编译,处处运行的优势,迅速推广。与此同时网站的软件技术出现了ASP、PHP,JAVA也发展出一个分支JSP,我们一般称之为3P。3P的出现大大降低了网站设计的门槛,为网站普及起着不可磨灭的贡献。3P的技术各有千秋。ASP是嵌入在HTML中的一种服务器端编程的WEB开发技术,即客户端请求网页时ASP文件先在服务器端编译执行,再以HTML格式传送给客户端浏览器显示,因此客户看不见ASP文件,程序的保密性较好。ASP使用的脚本语言是可扩充的,不仅可以使用默认的VBScript语言,也可以使用JAVA Script或JScript,通过plug-in的方式还可以使用Perl、TCL等第三方脚本语言。微软还提供了InterDev这样的ASP开发工具。用户在开发的时候可以使用VB/VC开发ActiveX控件,并借助微软的组件技术COM来实现几乎所有的Client/ Server方式下具有的功能。但是它所使用的语种不是完全的面向对象式语言,不利于开发大型网站程序,且运行速度较慢。PHP是植根于Unix或Linux的一种网站开发技术,由于Unix和Linux用于大型服务器上,寻常百姓很少问津,到近些年Linux开始推广才逐渐被人们所认识。和ASP一样是在服务器进行编程的,不过PHP是GNU标准的自由软件,不仅它是免费的,和其配合使用的Apache Server 、My SQL数据库也是免费的,其源代码也是向外公开的。PHP还具有跨平台性,在 Window98, NT, Linux, Unix和Macintosh等环境下均能运行,而且代码可以重用。由于采用类似C和Perl的语言格式,PHP含有相当丰富的函数库,上载文件、存取数据库中的二进制图片数据、作图、XML解析等功能的实现,只需借助某个或某几个函数即可完成,而不像ASP那样需要引入专门的控件才可实现。PHP也有其不足。相对ASP来说,PHP的自由软件身份使得自身的发展得不到颇具实力的软件开发公司的支持,其发展具有不定性,相应的参考材料、技术支持也较匾乏。它的类似C的语言风格,使它不如ASP来得容易掌握此外,PHP提供的数据库接口函数也不统一,在访问数据库时不如ASP那么方便。 JSP是由Sun公司推出的非常类似与ASP的一种动态网页技术标准。它也提供了在HTML代码中混合程序代码,由语言引擎进行解释执行的能力。JSP使用的是成熟强大的JAVA语言。客户端请求JSP编写的页面时,代码首先被转换成JAVA源文件,再编译成支持 HTTP, FTP等网络协议的class文件(即Servlet),并由JAVA虚拟机执行。这种编译操作仅在对JSP页面的第一次请求时发生,虽然首次调用需几秒的编译加载时间,但后续请求只需调用服务器端缓存中的Servlets就可以了,比起每次请求都要解释执行的ASP代码要快。相对于ASP和PHP来说,JSP在跨平台可重用性和安全性上面还是有很多独到之处的。 3P有一个共同的缺点,就是HTML网页代码和脚本混杂,大大增加了网站开发和维护的难度,另外也由于微软开发一种能JSP相抗衡的新技术,ASP.NET技术的出现基本改变了这些。ASP.NET技术使用完全的面向对象语言,网页与程序分离有利于更好的设计程序,使得代码更简洁、易于编写,不仅提高了重利用性和共享性,还提高了可调度性、可测量性、安全性和可靠性;同时,对不同的浏览器提供了更好的支持。ASP. NET能使开发人员创造出更加动态而且伸缩性更强的应用程序,这种应用程序能够更好地满足公司的商业需求,并提供一个更加丰富的开发环境。在兼容以前设计习惯的基础上采用完全的可视化设计,使windows程序和网站程序的风格区别缩小,使用任何语种都只要遵守.NET规范,都可以使用ASP.NET,使得技术的推广速度相当快。2.1.2 技术比较ASP和JSP都是使用的脚本语言混合HTML编程,特别是ASP的脚本语言属于弱类型、面向结构的编程语言,而非面向对象,这就明显产生以下几个问题:1、代码逻辑混乱,难于管理:它使用的是脚本语言混合html编程,所以很难看清代码的逻辑关系,并且随着程序的复杂性增加,使得代码的管理十分困难,甚至超出一个程序员所能达到的管理能力,从而造成出错或这样那样的问题。 2、代码的可重用性差:由于是面向结构的编程方式,并且混合html,所以可能页面原型修改一点,整个程序都需要修改,更别提代码重用了。 3、弱类型造成潜在的出错可能:尽管弱数据类型的编程语言使用起来会方便一些,但相对于它所造成的出错几率就远远得不偿失的。 以上是语言本身的弱点,在功能方面ASP同样存在问题,第一是功能太弱,一些底层操作只能通过组件来完成,在这点上甚至还远远比不上PHP/JSP,在纠错/调试功能的完善,这点上ASP/PHP/JSP差不多。下面是ASP和ASP.NET在具体操作编程上有什么不同。在ASP程序中,当需要使用Server对象的Create Object方法来建立一个类实例的时候,首先要声明一个变量fso,之后将变量fso赋予FileSystemObject的对象(FileSystemObject对象可以在Scripting这个库中找到)。如果想要ASP代码得以正常运行,还必须确定相关的DLL文件已经被安装并且注册到服务器。当C#运行库被安装的时候,FileSystemObject对象是会被自动注册的。但是如果想使用第三方开发的组件或者使用自己创建的组件,就需要小心安装并且注册你的组件了。其具体的代码如下:Dim fsoSet fso = Server.CreateObject(Scripting.FileSystemObject)而在ASP.NET中,在声明一个变量的同时,可以指定它的类型并且初始化这个变量 为了引用一个类,需要使用这样的表示方法:名称空间.子名称空间.类。即如:Scripting.FileSystemObject fso = new Scripting.FileSystemObject();在上面的代码中,引用了FileSystemObject这个类,而FileSystemObject这个类可以在名称空间Scripting中找到。上面的名称空间实际上只是假设的一个名称空间,它并不存在于.NET的架构当中,所以上面的代码实际上是无法运行的。由此可以看出ASP和ASP.NET技术的区别了。ASP.NET使用的面向对象的语言,而不是一种脚本语言,所以它具有面向对象编程语言的一切特性,比如封装性、继承性、多态性等等,这就解决了刚才谈到的ASP的那些弱点。封装性使得代码逻辑清晰,易于管理,并且应用到ASP.NET上就可以使业务逻辑和Html页面分离,这样无论页面原型如何改变,业务逻辑代码都不必做任何改动;继承性和多态性使得代码的可重用性极大的提高,你可以通过继承已有的对象最大限度保护你以前的投资。并且C#和C+、Java一样提供了完善的调试/纠错体系。JSP同样是实现动态网页的一个利器。由于他的脚本语言是JAVA,所以继承了JAVA诸多优点。ASP.NET和JAVA的具体的区别。其重要体现在:1) 面向对象性: ASP.NET将C#作为一种面向对象语言,在很多方面来看,微软将C#成为与Java相似的语言。C#另一个有趣的地方是所有对象都自动变成为COM对象。如果C#能取得很大的市场占有量的话,那么它将给ASP.NET带来类似于Java的功能,并且具备更快的性能,因为它可以和Windows环境紧密集成。 C# 是ASP.NET开发中一个最重要的功能,这也是.NET框架的一个重要组成部分。2) 数据库连接: 在ASP中的一个亮点是它使用ADO对象,ODBC, OLE-DB和事务处理管理器,因此ASP Web数据库应用开发特别简单。ASP.NET发展了更多的功能,因为有了ADO.NET,ADO.NET带来了更强大更快速的功能。JSP和JDBC目前在易用性和性能上同ASP/ADO相比已有些落后,当新版本ASP.NET/ADO.NET出现后这样的差别就更明显。3) 大型站点应用: ASP.NET将对大型站点(web farms)有更好的支持。事实上,微软在这方面付出了巨大的努力。 ASP.NET可以让你考虑到多服务器(multiple servers)的场合,当你需要更强大的功能时,仅仅只需要增加一台服务器。整个.NET框架已经充分地提供了这个方法。ASP.NET提供了外部会话状态(external session state)来提供内置式web farm的支持。另外,由于请求的各组件相互间经过了充分的优化,所以速度很快。 于是ASP.NET现在可以在大型项目方面与JSP一样具有等同的能力。 而ASP.NET还有价格方面的优势,因为所有的组件将是服务器操作系统的一部分。对于JSP,需要购买昂贵的应用服务器群来达到同样的目的。4) ASP.NET还提供更多的其它方面的新特性,例如: *内置的对象缓存和页面结果缓存。 *内置的XML支持,可用于XML数据集的简单处理。 *服务器控制提供了更充分的交互式控制。 可以看出,由于JSP模型是在ASP之后,在许多方面借鉴了ASP,如:session、application等对象。同时JSP使用灵活而强大的JAVA语言,而不是低效的脚本语言,使得JSP与ASP相比,具有明显的优势。但是,ASP.NET又是在借鉴JSP的优点后推出的,这样ASP.NET又具有后发的优势。2.1.3 ASP.NET技术研究ASP. NET隶属于Microsoft. NET框架,是由.NET框架提供的编程类库所组成的,它提供了Web应用程序模型,并采用面向对象的思想模块化与组件化的技术而构建。那说到ASP.NET,就不得不先了解下.NET,其全称为Microsoft .NET。Microsoft .NET平台包括用于创建和操作新一代服务的.NET基础结构和工具;可以启用大量客户机的.NET User Experience;用于建立新一代高度分布式的数以百万计的.NET积木式组件服务;以及用于启用新一代智能互联网设备的.NET设备软件。Microsoft .NET产品和服务-包括Windows.NET,连同建立积木式服务的核心集成套件;MSNTM .NET;个人订购服务;Office.NET;Visual Studio .NET;以及用于.NET的BCentralTM。ASP. NET页面.NET框架CLR.NET类库ASP. NET状态管理器和cache IIS ISAP过滤器aspx或asmx图2.1 ASP.NET体系结构图上面的图就是ASP.NET的基本体系结构,其中.NET框架提供CLR(Common Language Runtime即通用语言运行时)编译和管理程序页面中代码的执行,类库则是提供了一系列的用于处理请求和生成响应的公共代码,程序员可以直接调用该类库。ISAPI(Internet Server Application Programming Interfaces)过滤器是ASP. NET与IIS通信的接口,其中的应用程序作为DLL来实现,并且加载到Internet Server的进程空间,这样可以保证应用程序更快地执行。ASP. NET本身包含一个缓存cache和一个状态管理器,其中cache用来缓存经常使用的Web页面,目的是提高服务性能。状态管理器用来跟踪用户的会话状态信息,目的是进行更加完美的数据交互。在数据库连接上ASP. NET是通过ADO. NET (Active Data Object 动态数据对象)上的Managed Provider(管理供应商)所提的应用程序编程接口(API)来实现数据源的数据访问,包括OLEDB和ODB(以开放性数据库互连)所支持的数据库。下面来说下ADO.NET的主要的特性:互操作性:ADO.NET模型最大限度地利用了由业界大型的外观标准XML提供的灵活性。ADO.NET使用XML在组件之间以及层之间传送数据集。任何支持XML格式的组件都可以处理数据,而且接收数据的组件也不一定是ADO.NET组件。发送或传送数据集的组件只需要向数据集的目的地发送数据集,而不用担心接收组件是如何去执行的,请求数据集的组件也就是目的组件可以像Visual Studio应用程序或其他应用程序那样执行接收任务。但是,很重要的一点是:接收组件应该支持XML格式。可维护性:可维护性现在已是评价一种软件程序的标准,可维护性的高低将直接影响应用程序的升级维护的操作负担。应用程序的维护我们期待的是提高其性能,在次,不用重新设计,而是调用应用程序之后层次的增加。如果原来的应用程序是在ADO.NET中使用数据集执行的,那么这种转变相对就容易的多,在ADO.NET中,层之间的通信相对简单,这是因为层是通过XML格式的数据集传送数据的。下面的是一个简化了的ADO.NET工作原理图: 应用程序的数据集应用程序的数据集XML数据集数据集命令数据图2.2 ADO.NET工作原理图可编程性:ADO.NET模型使用类型化的程序设计操作对象。在类型化程序设计中,程序设计环境或程序设计语言本身识别对象的类型,这对用户来说是很重要的。对那些没有或者有很少编程经验的终端用户来说,对代码的理解也是很容易的。而且,在非类型化的程序设计中,如果开发人员偶尔发生拼写错误,那么将产生一个运行时错误。而在类型的数据集中,误写导致的语法错误会在编译时就检测出来。性能:在ADO中,当使用COM组件技术跨层传送数据时,可以采用已短开连接的记录集形式,这些值必须转换为COM能够辨认的数据模型,这样就降低了性能。而ADO.NET能使用已断开连接的数据体系结构,这反过来会使得伸缩性更加的容易实现,因为这减少了数据的装载量(不需要任何的数据转换)。因此,在ADO.NET模型中,任何对象都可以在客户端进行处理,这样就提高了其性能。可伸缩性:基于WEB的以数据为中心的应用程序需要多个用户同时访问数据库,这增加了对访问数据库的要求,使得可伸缩性成为最主要的特征之一。使用资源(比如数据库连接和数据库锁定)的应用程序。不支持多用户同时访问数据,这是因为用户对有限资源的要求最终会超出它们的供应能力,因为ADO.NET使用了已断开连接的数据访问,所以应用程序不用长时间保持数据库锁定状态或者数据库连接激活状态。由此,ADO.NET可以通过鼓励程序员保存有限的资源来提供可伸缩性,并允许多用户同时访问数据。ADO.NET对象模型主要有两个层次:已连接的层:由管理提供程序组成的类组成已断开连接层:根植于Dataset自从Internet出现以来,网络安全一直是人们关注的问题。其中的原因包括在Internet上传送敏感数据,在Web应用程序之间交换敏感数据以及黑客的威胁等。对于Web应用程序的开发人员和管理员来说,安全是个重要的问题,也是个令人头痛的问题,因此需要格外细致的进行规划和设计。在ASP.NET应用程序中,安全性涉及三个基本的操作:身份验证,授权和模拟(冒名顶替)。身份验证(Authentication):这是验证用户身份的有效过程,以便决定是否允许通过,通常,身份验证就是验证用户名和密码的过程,除了这种常见的身份验证方式以外,还有比较复杂的验证方式。具体来说身份验证有三种形式:匿名验证,基本验证和集成的Windows验证。其中匿名验证即允许用户在不用通过用户名和密码的情况下浏览网站;基本验证即是我们平常说的用户和密码验证了,这中方式需要对密码进行加密,不然很可能被未授权的用户非法使用,但是加密技术一直不是很理想,所以这种验证方式的使用一直没被保密性较强的WEB应用程序使用。集成的Windows验证,除了满足基本的验证的条件外,用户还必须是有效的Windows用户。在这种模式下,IIS服务器将用Windows域名控制器验证用户名和密码。授权(Authorization):这是确保允许拥有有效身份的用户只能访问授予访问权限的那些资源的过程。我们可以对IIS服务器进行配置可以控制用户对资源的访问,通过标记网站上可允许的操作可以控制对IIS网站的访问权限。模拟(Impersonation)当请求从IIS传递到应用程序时,通过使用模拟,ASP. NET应用程序可以选择以这些应用程序当前正为之操作的客户的身份执行。通常这样做的原因是为了避免在ASP. NET应用程序代码中处理身份验证和授权问题。在WEB服务上开发人员可以用ASP. NET生成一个扩展名定为.asmx的文件,并把此文件配制为网络应用程序的一部分,就建立起了一个网络服务。asmx文件包含对在其他地方定义的受控的类的引用,或者包含这个类的定义。这个类是由ASP. NET提供的WebService类所派生。公有的类方法在标记上WebMethod属性后,就会成为网络服务方法,把HTTP请求发送到asmx文件中的URL后,这些方法就会被调用。网络服务为在Internet上绑定应用程序提供了一个利用现存体系架构和应用程序的简单的、灵活的、基于许多标准的模型。网络应用程序很容易与当地开发的服务或己存在的服务集成在一起,而不用考虑开发平台、开发语言或使用的对象模型,以用于实现任何组成的服务或应用程序。2.2 ASP.NET技术在实例中的应用实例是一个BtoC的电子商务网站,在网站设计中使用了ASP.NET一些关键技术2.2.1 ASP.NET内置对象的应用ASP.NET有七个主要的内置的对象,分别是:对象名对象说明Page用于设置与网页有关的属性、方法和事件Request从浏览器(用户端)获取信息Response发送信息到浏览器Server提供服务器端的属性和方法Session存储单个客户端的信息Application存储客户端的共享信息Exception捕捉ASP.NET的错误,返回错误信息Page对象最主要的事件有:Init.Load和UnLoad。当进行网页初始化时触发Page对象的Init事件,接着加载网页并触发Page对象的Load事件,然后如果包含其他服务器控件事件的时候,当满足发生条件则触发相应服务器控件的事件,最后离开时触发Page对象的UnLoad事件。在每个页面文件里几乎都可以找到Page对象的Load事件和Init事件。private void Page_Load(object sender, System.EventArgs e) /如果客户机上本商城的Cookie存在,则根据该Cookie显示个性化的顾客欢迎信息if (Request.CookiesIStore_UserName != null) WelcomeMsg.Text = 欢迎 + Request.CookiesIStore_UserName.Value + 来到网上商城!; private void Page_Init(object sender, EventArgs e) InitializeComponent(); 这是Default.aspx(首页)中的Page对象的Load事件和Init事件,其中Cookies存储了客户信息,用来显示个性话的客户欢迎信息。private void Page_Load(object sender, System.EventArgs e) /从传到该页面的请求对象的参数集合中获取GoodsID int GoodsID = Int32.Parse(Request.ParamsGoodsID); /获取商品的详细信息 IStore.IStoreDBO GoodsDetail = new IStore.IStoreDBO(); IStore.GoodsDetails myGoodsDetails = GoodsDetail.GetGoodsDetails(GoodsID); desc.Text = myGoodsDetails.Description; UnitCost.Text = String.Format(0:c, myGoodsDetails.UnitCost); ModelName.Text = myGoodsDetails.ModelName; ModelNumber.Text = myGoodsDetails.ModelNumber.ToString(); GoodsImage.ImageUrl = GoodsImages/ + myGoodsDetails.GoodsPicture; addToCart.NavigateUrl = AddToCart.aspx?GoodsID= + GoodsID; 上面的是GoodsDetails.aspx(用于显示商品的详细信息)中的Page对象的Load事件,其中desc.Text、UnitCost.Text、ModelName.Text、ModelNumber.Text、GoodsImage.ImageUrl和addToCart.NavigateUrl都是用来显示商品信息的页面控件。Request对象派生自HttpRequest类,它的主要功能是从客户端获取信息,包括浏览器种类、用户输入表单中的数据、Cookies中的数据和客户端认证等。if (thecontext.Request.Cookies IStore_CartID != null) Return thecontext.Request.Cookies IStore_CartID. Value;else Guid tempShoppingCartId = Guid.NewGuid();Thecontext.Response.Cookies IStore_CartID. Value = tempShoppingCartId. ToString ();return tempShoppingCartId.ToString();这是GetShoppingCartId()方法中使用Response对象的Cookies集合来获取用户购物车的ID。这个方法在多个页面事件中都有调用,例如在AddToCart.aspx页面中。Resquest对象的功能与Response对象的功能相反,它用于将服务器端的信息发送到浏览器。Resquest对象的常用方法有十个,其中最常用最简单的方法是Writer方法和Redirect方法。Writer方法是将指定的内容写入页面文件中,Redirect方法是通知浏览器连接指定的URL,即进行页面跳转。例如:Response.Redirect(Default.aspx)。Response.Write(alert(对不起,你的权限不够!);这一段就是使用的Resquest对象的Writer方法向浏览器发送信息。Server是最基本的ASP.NET对象,它派生自HttpServerUtility类,提供了服务器端的基本属性和方法。可以通过Page对象的Server属性来获取相对应的Server对象,即Page.Server。Server.Transfer(Login.aspx);这是在实例中Server 对象Transfer方法的简单应用。Session对象派生自HttpSession类,每个连接用户都拥有一个自己的Session对象,这个Session对象用于在该用户访问的各页面之间传递信息,即Session是同一连接所有网页的共用对象。在本例中Session对象的Contents属性记录的是用户的ID,在Login.aspx页面中开始加载记录:Session.Add(strUserID,userId);到用户注销退出系统调用Session对象的Clear方法清除Contents属性的变量:Session.Clear()。Application对象是让在同一个应用内的多个用户共享信息,并在服务器运行期间持久地保存数据。该对象在网站上应用最广的就是记录本网站的信息,如访问人数,在线人数等。由此可见Application对象和Session对象是差不多的,都是ASP.NET文件公用的对象,所不同的是所有用户连接的是同一个Application对象,而每个连接的用户都拥有各自的Session对象,有多少用户就会有多少的Session对象,而Application对象只有一个。2.2.2 页面控件的应用在ASP.NET中,基于服务器控件的思想已日趋的成熟,具有很好的可操作性、灵活性和扩展性。ASP.NET中可以使用的大多数控件都不需要在ASPX页面中嵌入很多的代码,只需将需要的控件拖入ASPX页面中,在添加几个属性,就可以让很多控件实现服务器端的功能。这些控件是被封装的,复杂的用户接口设计被隐藏在后台,开发人员无需关心这些控件的实现,只需要按照指定的方式添加一些代码就可以使用控件。然后可以通过编程的方式访问控件,以定义控件的外观,对事件的处理等。在ASP.NET中有HTML控件、WEB服务器控件和用户自定义控件3大类控件。下面是用户自定义控件和页面验证控件的应用。ASP.NET服务器控件已经提供了大量的功能,但是它们并不能包涵每一种情况。程序员往往希望将多个服务器控件封装成单个控件,而后在以后的站点中重用这些控件。用户控件是封装到可复用控件中的WEB窗体,在ASP.NET开发初期叫做Page let,它是除CodeBehind技术之外的另外一种将代码和内容分离、实现代码重用的技术。CodeBehind可以让多个不同页面的代码从同一基类派生出来,从而具有相似的行为。而用户控件不仅可以重用代码,还可以重用部分用户界面。用户控件和服务器控件一样,有自己的属性和事件,它的扩展名为.ascs。上图所示的是个用户控件(Header.ascx),是由7个Hyperlink服务器控件、1个Label服务器控件和事件组成的。其事件的代码为:Public abstract class Header: System.Web.UI.UserControl Protected System.Web.UI.WebControls.Label WelcomeUserLabel; Public Header() this.Init += new System.EventHandler(Page_Init); Private void Page_Init(objec
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 凉山自治州中储粮2025秋招信息技术岗高频笔试题库含答案
- 中国移动达州市2025秋招笔试行测题库及答案供应链采购类
- 安徽地区中石油2025秋招笔试模拟题含答案油品分析质检岗
- 牡丹江市中石油2025秋招面试半结构化模拟题及答案机械与动力工程岗
- 中国移动包头市2025秋招笔试性格测评专练及答案
- 商丘市中石油2025秋招笔试模拟题含答案炼油设备技术岗
- 珠海市中石油2025秋招笔试行测50题速记
- 三明市中石油2025秋招笔试提升练习题含答案
- 国家能源吉林市2025秋招机械工程类面试追问及参考回答
- 张掖市中石油2025秋招笔试模拟题含答案安全环保与HSE岗
- 成人重症患者颅内压增高防控护理专家共识(2024版)解读课件
- 山体滑坡事故应急处理模版课件
- 体检中心投诉处理流程
- 基于学科核心素养下的教学设计
- 人教版英语七年级(全册)单词表
- 全心衰竭的治疗与护理
- 扩张型心肌病治疗及护理
- 2002版干部履历表(贵州省)
- DL∕T 1396-2014 水电建设项目文件收集与档案整 理规范
- 行路难课件8省公开课一等奖新名师比赛一等奖课件
- 防欺凌隐患排查和矛盾化解记录表
评论
0/150
提交评论