(1)微软.NET战略和ASP.NET简介

      摘要:ASP.NET又叫ASP+,但并不只仅是ASP的简单升级,而是MicroSoft推出的新一代Active Server Pages脚本语言。ASP.NET是微软发展的新型体系结构.NET的一部分,它的全新技术架构会让每个人的网络生活都变得更简单。html

从今天开始,我为你们讲解ASP.NET编程,一开始主要以理论为主,在后面的课程中会加入实操。欢迎你阅读《ASP.NET编程入门》,经过对本书的阅读,咱们相信你可以对ASP.NET会有更深刻的了解。数据库

      首先须要特别指出的是,ASP.NET不只仅只是有了一个新界面而且修复了一些缺陷的ASP3.0的升级版本(即不一样于ASP2.0升级到ASP3.0的转变)。更为重要的是,ASP.NET吸取了ASP之前版本的最大优势并参照Java、VB语言的开发优点加入了许多新的特点,同时也修正了之前的ASP版本的运行错误。编程

      要了解ASP.NET的真实面目,咱们首先就得了解一下微软.NET战略。windows

1.1.1 微软.NET的历史浏览器

      随着网络经济的到来,微软公司但愿帮助用户,可以在任什么时候候、任何地方、利用任何工具均可以得到网络上的信息,并享受网络通讯所带来的快乐。.NET战略就是为着实现这样的目标而设立的。缓存

      微软公开宣布,从此将着重于网络服务和网络资源共享的开发工做,并称,将会为公众提供更加丰富、有用的网络资源与服务。安全

      微软新一代平台的正式名称叫作"新一代Windows服务"(NGWS),如今微软已经给这个平台注册了正式的商标--MicroSoft.Net。在.Net环境中,微软不只仅是平台和产品的开发者,而且还将做为架构服务提供商、应用程序提供商,开展全方位的Internet服务。在谈及这个平台中使用的新技术,微软透露,它将在.Net环境中提供更多新产品和一揽子的全套服务。服务器

MicroSoft .NET平台的基本思想是:       侧重点从链接到互联网的单一网站或设备上,转移到计算机、设备和服务群组上,使其通力合做,提供更普遍更丰富的解决方案。用户将可以控制信息的传送方式、时间和内容。计算机、设备和服务将可以相辅相成,从而提供丰富的服务,而不是像孤岛那样,由用户提供惟一的集成。企业能够提供一种方式,容许用户将它们的产品和服务无缝地嵌入本身的电子构架中。这种思路将扩展二十世纪八十年代首先由PC赋予的我的权限。网络

      MicroSoft .NET将开创互联网的新局面,基于HTML的显示信息将经过可编程的基于XML的信息获得加强。XML是经"万维网联盟"定义的受到普遍支持的行业标准,Web浏览器标准也是由该组织建立的。微软公司为开发它投入了大量精力,但它并非MicroSoft的专有技术。XML提供了一种从数据的演示视图分离出实际数据的方式。这是新一代互联网的关键,提供了开启信息的方式,以便对信息进行组织、编程和编辑;能够更有效地将数据分布到不一样的数字设备;容许各站点进行合做,提供一组能够相互做用的"Web服务"。多线程

1.1.2 微软.NET的介绍

1.1.2.1 MicroSoft .NET综述       MicroSoft .NET平台包括用于建立和操做新一代服务的.NET基础结构和工具;能够启用大量客户机的.NET User Experience;用于创建新一代高度分布式的数以百万计的.NET积木式组件服务;以及用于启用新一代智能互联网设备的.NET设备软件。

      MicroSoft .NET产品和服务-包括Windows.NET,连同创建积木式服务的核心集成套件;MSNTM .NET;我的订购服务;Office.NET;Visual Studio .NET;以及用于.NET的bCentralTM。

.Net环境中的突破性改进在于:       1. 使用统一的Internet标准(如XML)将不一样的系统对接;       2. 这是Internet上首个大规模的高度分布式应用服务架构;       3.使用了一个名为"联盟"的管理程序,这个程序能全面管理平台中运行的服务程序,而且为它们提供强大的安全保护后台;

.NET平台包括以下组件:       1.用户数据访问技术。其中包括一个新的基于XML的、以浏览器为组件的混合信息 架构,叫作"通用画板";       2.基于Windows DNA 2000的构建和开发工具;       3.一系列模块化的服务,其中包括认证、信息传递、存储、搜索和软件送递功能;       4.一系列驱动客户设备的软件;

1.1.2.2 Microsoft.NET平台带来的重要意义

      咱们来看一下MicroSoft .NET对开发人员、IT专业人员、以及企业应用的巨大意义。

      对于开发人员MicroSoft .NET的策略是将互联网自己做为构建新一代操做系统的基础,对互联网和操做系统的设计思想进行合理延伸。这样,开发人员必将建立出摆脱设备硬件束缚的应用程序,以便轻松实现互联网链接。MicroSoft .NET无疑是当今计算机技术通向计算时代的一个很是重要的里程碑。

NET的核心组件有:       一组用于建立互联网操做系统的构建块,其中包括Passport.NET(用于用户认证)以及用于文件存储的服务、用户首选项管理、日历管理以及众多的其它任务构建和管理新一代服务的基本结构和工具,包括Visual Studio.NET、.NET企业服务器、.NET框架和Windows.NET可以启用新型智能互联网设备的.NET设备软件。

.NET用户体验       .NET对最终用户来讲很是重要,由于计算机的功能将会获得大幅度提高,同时计算机操做也会变得很是简单。特别地,用户将彻底摆脱人为的硬件束缚:用户能够自由冲浪于互联网的多维时空,而不是束缚在便携式电脑的方寸空间--可经过任何桌面系统、任何便携式电脑、任何移动电话或PDA进行访问,并可对其进行跨应用程序的集成。

      .NET可以使用户轻松进行互联网链接,并轻松完成那些在当今看来十分费时并且费力的事务,它们每每要求用户进行数据重输入并需运行几个小时才能完成。经过将多项安全数据流合并到单一的用户界面(或者甚至是可编程决策引擎),.NET架构将用户从充斥于当今Web的数据竖井的束缚中解脱出来。用户能够自由访问、自由查看、自由使用他们的数据。

      .NET对开发人员来讲也十分重要,由于它不但会改变开发人员的开发应用程序的方式,并且使得开发人员能建立出全新的各类应用程序。新型开发范例的核心是Web服务这个概念的引入。Web服务是一种经过简单对象访问协议(SOAP),在互联网上展露其功能性的、极为公开的服务。SOAP是一种基于可扩展标记语言(XML)制定的协议。

      在过去,开发人员经过集成本地系统服务来构建应用程序。在这种模型下,开发人员能够访问丰富的开发资源并能严格控制应用程序的行为。

      现在,开发人员已在很大程度上挣脱了这种模型的束缚,致力于构建具备复杂结构的n层化系统,这种系统能将网络上众多的应用程序一并进行集成,大大提高了应用程序的价值。这样,开发人员即可把精力集中在充分挖掘软件独特的商业价值,而不是构建基本结构上。可喜的局面将应运而生:软件投放市场的时间大大缩短、开发人员的编程效率明显提升,最终把质量上乘的软件呈现给用户。

      咱们正在进入一个崭新的计算时代--一个由互联网(尤为是Internet核心技术XML)实现的时代。利用XML,可以建立出可供任何人从任何地方使用的、功能很是强大的应用程序。它极大地拓展了应用程序的功能,并实现了软件的动态提供。在这种状况下,软件已不彻底指那些从光盘进行安装的程序,而是演变成了一种服务--相似于ID调用程序或按收看次数进行收费的电视--人们可经过通讯媒体订购的服务。

      n层计算技术具备可以大幅度提升生产力、紧密耦合的特色,而Web概念具备面向消息、松散耦合的特色,咱们将两者有机地糅合在一块儿,实现了上述构想。咱们将这种计算风格称为Web服务,它的出现标志着人类已经迈入应用程序开发技术的新纪元。Web服务是一种应用程序,它能够经过编程并使用标准的Internet协议,像超文本传输协议(HTTP)和XML,将功能展现在互联网和企业内部网上。还可将Web服务视做Web上的组件编程。

      从理论上讲,开发人员可经过调用Web应用编程接口(API),将Web服务集成到应用程序中。其调用方法与调用本地服务相似,不一样的是Web API调用可经过互联网发送给位于远程系统中的某一服务。例如,MicroSoft Passport(Passport)服务使得开发人员可以对应用程序进行认证。经过对Passport服务编程,开发人员能够充分利用Passport的基本结构,经过运行Passport来维护用户数据库,以确保其正常运行、按期备份等等。       .NET正是根据这种Web服务原则而建立的,微软目前正着手提供这个基本结构,以便经过.NET平台的每一部分来实现这种新型的Web服务。而Visual Studio.NET、.NET框架、Windows.NET和.NET企业服务器,正是为进行基于Web服务模型的应用程序开发而度身定作的新一代开发工具和基本结构。.NET构建块服务、新增的.NET设备支持以及即将到来的.NET用户体验,将为人们完全攻克这一难题划上一个圆满的句号,令人们可以充分利用Web服务模型,如愿以偿地开发出新一代应用程序。

.NET对IT专业人员的重要意义       目前,IT专业人员可以利用与构建.NET平台相同的技术。

      .NET Enterprise Servers和Windows 2000操做系统,为建立具备高度可管理性的、能迅速投入市场的应用程序提供了坚实基础。它们利用的是可扩展标记语言(XML),所以随着Web体系结构的革新,在此平台上建立的程序依然颇有价值。

      .NET平台的核心是,采用有效的、分门别类的方式来构建应用程序,达到其史无前例的规模。该平台上的Web服务模型指的是:企业应用程序的中心业务要素一般由本地管理,而支持它们的服务(如用户认证、文件存储、用户首选项管理、日历、邮件等等)却无须本地管理,能够被无缝订购。为了存储用户文件和邮件,IT专业人员每每在服务器上安装新的独立磁盘冗余阵列(RAID阵列),而有了.NET,他们在这一方面将会花费较少的精力,而更多地致力于怎样为公司增长效益。

      该Web服务模型还将动态配置新软件的发布和更新。用户将以极其紧密的链接方式工做,所以更易于管理。而简化的管理又可以使IT专业人员更能适应变幻莫测的业务需求。

      开发应用程序的.NET Web服务模型将为企业应用程序的建立开辟一条新路。经过企业内外多种服务的联合,很容易把企业内部数据和客户及合做伙伴的相关数据结合在一块儿,大大简化了应用程序的建立过程。这就为最终用户发掘了空前的功能涵盖性。例如,利用某公司的雇员福利程序,能够从其HR数据库订购信息,经过Web订购福利管理公司的服务、订购工资管理公司的服务。终端用户能够在简单、直观的界面下操做,而这个界面能够显示他们的累积休假时间、我的所得福利以及上次工资额。

.NET对企业的重要意义       MicroSoft .NET平台将从根本上改善计算机和用户之间进行交互的方式,最大限度地发挥电子商务中计算技术的重要做用。首先,让咱们来分析一下当前商务计算世界的现状:

      人与计算机进行交互的手段极为有限--一般使用键盘和鼠标进行输入,使用监视器监控输出。

      用户信息基本上是本地信息;若是从另外一台机器进行登陆,则没法获取用户的我的首选项设置、数据及应用程序。

      用户必须亲自处理信息,而经过设置智能选项表明用户自动进行操做,则无异因而纸上谈兵。

      同一用户存放于不一样应用程序和站点的数据,很难(或根本不可能)进行自动合并和关联,用户没法统一进行查看。

      想在家里或在路上工做的用户,不能方便地访问办公室电脑中的应用程序和数据。这无疑成为一道阻止人们得到更高工做效率的鸿沟。

      不能使用其它设备访问专为特定设备设计的数据(这些设备包括PC、寻呼机、移动电话以及PDA等);最多能够按期进行同步。

      .NET将保证彻底消除当今计算技术中的全部缺陷。.NET定能实现确保用户从任何地点、任何设备均可访问其我的数据和应用程序的宏伟蓝图。除此以外,.NET技术还可实现多个应用程序在逻辑上的松散耦合连接和紧密耦合连接。

      用户能够经过手写、语音和图象技术与其我的数据进行交互。这些数据将安全地存放在互联网上,用户经过办公室(或家庭)PC,还能够经过移动电话或寻呼机、PDA、甚至是新发明的寻呼机--移动电话--PDA--PC联合设备访问这些数据。应用程序可进行灵活的功能调整,以适应用户所用设备的功能情况。应用程序可根据用户预约义的选项集和指令集,彻底代替用户自动执行相应的操做。

      上述功能将协同做用,以便大幅度地提升用户使用计算技术的生产效率。根据设计,.NET使得用户无需在如何与计算机进行交互上劳神,从而全身心地投入到使计算机自动执行任务、实现最终目标的工做中。经过使用XML行业标准,可将用户数据进行跨站点和应用程序的连接,从而轻松实现当前很难实现的操做。好比:对用户在数家不一样银行、信用卡公司以及计费代理商那里的数据进行集中处理;这样,用户即可依据处理后的数据支付账单,将费用明细报告归档。

      .NET把雇员、客户和商务应用程序整和成一个协调的、能进行智能交互的总体,而各公司无疑将是这场效率和生产力革命的最大受益者。简言之,.NET承诺为人类创造一个消除任何沟鸿的商务世界。

1.1.2.3 MicroSoft .NET 的基本模块

网络服务一览

      一般说来,一个网络服务只是一个做为服务――经过Internet标准此服务能与其它网络服务集成在一块儿――发行的简单的应用程序。换句话说,它是可经过URL定位的自动将信息返回到须要它的客户端那里的一种资源。网络服务一个重要的特色是客户不须要知道一种服务是怎样实现的。在本节中,我将向你解释网络及网络服务如何把基于组件技术的最好的方面结合在一块儿的,而且介绍与网络服务通讯所需的基本框架。 同组件同样,网络服务提供"黑匣子"函数,它能够被再次做用而不用关心此服务是怎样实现的。网络服务提供被称为契约的精肯定义的接口,此接口描绘了所提供的服务。开发人员能够将远程服务、本地服务和定置代码组合在一块儿而集成应用程序。例如,某公司可使用以下服务组建一在线商店:微软护照(原文:Passport)服务以验证用户身份,第三方我的化服务以使网页匹配每个用户的参数,信用卡处理服务,销售税服务,对每一个运输公司的包裹跟踪服务,连接公司内部库存管理程序的内部目录服务,以及少许定置代码以使他们的商店能脱颖而出。

      然而,网络服务与如今的组件技术不一样,它不使用须要在服务器和客户机有明确的、同类型基本构架的具体的对象模型协议,例如DCOM、 RMI或 IIOP 。尽管与具体组件技术紧密结合的实如今一个受控的环境中能很好地被接受,但它们在网络环境中变得不切实际。由于一个集成商业程序的参与者会发生变化,随着时间的推移,技术也在变化,因此在全部参与者间确保一个单一的、统一的体系架构就变得十分困难。网络服务采起了另一种途径,它使用普便存在的网络协议和数据格式,如HTTP和XML,进行通讯。支持这些网络标准的任何系统都支持网络服务。

      并且,网络服务契约描述的是以术语报文形式提供的服务,这些服务是由网络服务生成和接受的,而不是描述服务是如何实现的。经过把重点放在报文上,网络服务模板就彻底对语言、平台和对象模板一无所知。 用任何一套编程语言、对象模型和平台的彻底特性集,均可实现网络服务。网络 服务可在任何平台被用任何语言所实现的应用程序使用。只要用于解释服务容量、报文序列和所指望协议的契约获得认同,那么所实现的网络服务及网络服务用户就可相互不一样,而不会影响会话另外一端的应用程序。

      网络服务模板对最小体系架构的要求很低,以确保网络服务在使用任何技术和编程语言的平台上实现和访问。对网络服务互用性的解决可只依靠网络标准。然而,为了使应用程序更容易使用网络服务,简单地赞成经过标准网络协议就能够访问网络服务是不够的。当网络服务和网络服使用者依靠标准的方式表示数据和命令、表示网络服务契约 、算出网络服务所提供的容量时,网络服务才容易使用。

      XML是定义一个标准的、可扩展的用于提供命令和典型数据的语言明显的一种选择。虽然为表示命令和典型数据能够定义使用其它技巧(好比编码为一种查询字符串)的规则,但XML被专门设计为描述数据的标准元语言。简单对象存取协议(SOAP)是以一种可扩展的方式使用XML表示数据和命令的工业标准。网络服务可选择用SOAP决定报文的格式。

      XML是网络服务契约的一种使能技术。服务契约语言 (SCL)是记录网络服务契约的XML语法。因为SCL是基于XML的,因此对开发者和开发工具来讲,容易生成、解释契约。关于SCL细则的草案很快会出台(注意:如今的SOAP Toolkit for Visual Studio 6.0支持称为SDL的SCL的早期版本)。

      Disco 规范为服务提供者发布网络 服务契约和相应的机制描述了一个标准方式,这将使开发者或开发工具可找到契约文献。当你读到这里时, Disco规范的草案应出台了。

      象SOAP, SCL和Disco这样的标准有助于开发者,由于它们不须要明白和实现所使用的每个网络服务的访问方式。支持这些标准的更好的、已充分测试的、高性能的体系架构将由开发平台提供,这会大大简化整个开发过程。

MicroSoft .NET Framework

      MicroSoft .NET框架的目的是使你更容易创建网络应用程序和网络服务。图2 显示了MicroSoft .NET框架的体系。创建在操做系统最上层的服务,是管理运行时代码需求的common language runtime,这些代码能够用任何现代编程语言所写。Runtime提供了许多服务,这些服务有助于简化代码开发和应用程序的开发同时也将提升应用程序的可靠性。.NET Framework包括一套可被开发者用于任何编程语言的类库。在此之上是许多应用程序模板,这些模板特定地为开发网络站点和网络服务提供高级组件和服务。

Common Language Runtime

      运行语言(runtime)调入并运行用任何运行感知编程语言所写的代码。以运行为目标的代码被称为受控(managed )代码,受控代码代码只是意味着在内部可执行代码与运行自身间存在已定义好的合做契约。对于象生成对象、调用方法等这样的任务,被委托给了运行语言,这使得在运行语言能为可执行代码增长额外的服务。

      运行语言以交叉语言集成、自描述组件、简单配制和版本化及集成安全服务为特色。

      运行语言使用一种新的能表达大部分现代编程语言语义的通用类型系统,通用类型系统定义了一套标准类型及生成新标准的规则。运行语言知道怎样生成、执行这些类型。编译器和解释器使用运行语言服务定义类型、管理对象、进行方法调用,而不是使用工具或特定于语言的方法。

      类型系统的主要设计目的是使多种语言能深度集成。用一种语言所写的代码能继承用另外一种语言所写的类的实现,用一种语言所写的代码抛出的异常能被用另外一种语言写的代码捕获,象调试和剖析之类的操做会在彻底封闭下工做,而不用考虑代码所用的语言。这就意味着编写可重用类库的开发者,再也不须要为每一种编程语言或编译器生成一个版本,而且使用类库的开发者再也不受到为他们使用的编程语言开发的库的限制。

      自描述组件――如今MicroSoft .NET框架上已成为可能――简化了开发和配制,并提升了系统的可靠性。许多由运行语言提供的服务是由元数据及用于补充可执行代码的信息所驱动。由于全部的信息都储存在一块儿,只有可执行的(代码)才被称为自描述组件。

      自描述组件的一个主要优势是,使用它们并不须要其它文件。类的定义不须要单独的头文件;经过检查元数据对类的定义能够从组件自身得到。跨语言或过程边界访问组件并不须要各自的IDL文件、类型文件或proxy/stubs;所必需的信息已存在于元数据之中。为识别开发者请示的服务属性,并不须要展开各自的配制信息。 最主要的是,因为元数据是在编译过程当中由源代码生成,并与可执行代码储存在一块儿,它将永远和可执行部分同步。

      除了改善对单个组件的配制,Microsft .NET框架定义了一个应用程序配制模板,以解决定置应用程序安装和DLL版本化(一般被称为"DLL Hell")这一复杂过程的问题,运行语言提供了支持这个模板的服务。 Microsft .NET框架 引入了组合体的概念。一个组合体是一组资源和类型,并包括有关这些资源和类型的元数据,也就是被做为一个单元配制的。元数据被称为组合体的名单,它包含象类型和资源表之类能被组合体外看得见的信息,这个名单也包括有关从属关系之类的信息,例如组合体创建时的版本号。开发人员能够指定版本策略,以指示运行语言是否装入系统上已安装的依赖于组合体的最新版本,装入一指定版本,或在编译时使用的版本。

      某软件组件的多个拷贝总能够存在于一样的操做系统上,然而,一般说来,只有其中的一个拷贝能被操做系统注册、调入内存、执行。对系统来讲,定位和调入内存的策略是全局性。.NET Framework Common Language Runtime 增长了所必须的体系架构以支持管理组件定位和调入的每一个应用程序策略,这一般被称为并行配制。

      组合体能够被一个应用程序私有,或被多个应用程序共享。一个组合体的多个版本能够同时配制在同一台机器上。应用程序配制信息定义了到何处去查找组合体,这样runtime就能为同时运行的两个不一样的应用程序装入同一组合体的不一样版本。这就消除了由组件版本的不兼容性引发的问题,提升了系统总体的稳定性。若是必要,若是必要,管理员能够为配制时刻的组合体增长配制信息,例如一个不一样的版本策略,可是编译时提供的原始信息永远不会丢失。

      由于组合体是自描述的,因此并不须要在系统上进行显式注册。应用程序的配制简单到只需将文件拷贝到目录中既可(若是为了使应用程序可以运行,必须安装未经组织过的组件的话,状况会稍微复杂一点)。配制信息保存在可被任何文本编辑器编辑的XML文件中。

      最后,运行语言也提供完整的、广泛深刻的安全服务,以确保未经受权的用户不能访问机器上的资源,而且代码不会执行未经容许的动做。这就提升了系统总体的安全性可靠性。 因为运行语言用于装入代码、生成对象、执行方法调用,因此当受控代码装入内存、执行时,运行语言能进行安全检查,强化安全策略。 Microsft .NET框架不只规定代码访问安全,还规定基于角色的安全。经过代码访问安全机制,开发人员能为应用程序指定完成工做所必需的权限。例如,代码或许须要写文件或访问环境变量的权力。这类信息和有关代码标志的信息一块儿存储在配制级上的。当代码装入内存及执行方法调用时,运行语言验证是否能给予代码所要求的权限。若是不能,将记录一条安全冲突信息。给予权限的策略,这被称为信任策略,是由系统管理员创建的,而且是创建在关于代码的证据基础之上,好比:代码是谁发布的,是从什么地方得到的,以及在组合体中找到的代码标志和它要求的权限。开发人员能够指定他们显然不须要的权限,以防止其它人恶意使用他们的代码。若是所须要的权限依赖直到运行时刻才会知道的信息,那么就可写入纲邻性的安全检查。 除了代码访问安全,运行语言还支持基于角色的安全。基于角色的安全创建同代码访问安全同样的权限模板,只是这些权限是创建在用户的身份之上,而不是创建在代码的标志之上。角色代表了用户所属的类,而且能够在开发和配制阶段定义。给予权限的策略被分配到每一个预约义的角色。在运行时刻,用户的身份被肯定,代码将表明这个身份运行。运行语言决定用户是哪一个角色的成员,而后给予基于这个角色的权限。

      在查看Microsft .NET框架的可编程模板前,先看一下它所提供的服务。

服务框架       在Common Language Runtime之上是服务框架,此框架提供能被任何现代编程语言调用的类。全部的类都遵循一套命名和设计方针,以大大减少开发人员的学习上的弯路。

框架包括一套开发人员但愿在标准语言库中存在的基类库,例如:集合、输入/输出,字符串及数据类。另外,基类库提供访问操做系统服务如图画、网络、线程、全球化和加密的类。服务框架也包括数据访问类库,及开发工具,如调试和剖析服务,可以使用的类。本文章没有详细讨论全部的类,我将重点放在数据访问类上,由于大多数网络服务须要对数据的访问。固然,你能够在MicroSoft .NET Framework SDK中找到关于服务框架类库的附加信息。

数据访问服务       几乎全部的网络服务都须要查询和更新永久性数据,不管是以简单文件,仍是以相关数据库,或是以其它的存储类型存在。为了提供对数据的访问,服务框架包括ActiveX Data Objects+ (ADO.NET)类库。如同名子所暗示地那样,ADO.NET由ADO发展而来。ADO+被设计为基于网络的可扩展的应用程序和服务提供数据访问服务。ADO.NET为链接的指针风格的数据访问,同时也为更适合于把数据返回到客户端应用程序的无链接的数据模板提供高性能的APIs流,就象在之后介绍的那样。

      就象其他几个部分同样,ADO.NET定义了那些连接数据仓库、 对数据仓库发送命令及从中获取结果的类。这些类由受控数据提供者(managed data provider)实现。ADO+中连接和命令对象看上去和ADO中的是同样的,而且一个名为DataReader的新类提供了经过高性能API流获取结果的能力。DataReader在功能上同前向、只读的ADO记录集(Recordset)是等同的,可是DataReader被设计用来最小化内存中生成的对象的数量,以提升性能,避免垃圾积累。在.NET Framework中包含了针对MicroSoft SQL Server?的受控数据提供者以及可经过OLE DB访问的任何数据仓库。

      ADO.NET的一个主要创新是引入了数据集(Dataset)。一个数据集是内存中提供数据关系图的高速缓冲区。数据集对数据源一无所知,它们能够由程序或经过从数据仓库中调入数据而被生成、填充。不论数据从何处获取,数据集都是经过使用一样的程序模板而被操做的,而且它使用相同的潜在的数据缓冲区。使用.NET平台的开发人员可以用数据集代替传统ADO中无链接的记录集。

      受控数据提供者为数据仓库和数据集公开一名为DataSetCommand 的接口对象。DataSetCommand 使用ADO.NET连接和命令以从数据仓库中填充数据集,并把在数据集中发生的变化解析到数据仓库中。

      就象DataReaders 显示了对于相关数据的有效的流访问同样,XmlReaders 显示了对XML数据的流访问。开发人员使用DataNavigator 能够滚动和编辑内存中的XML文档。DataNavigator在功能上和W3C Document Object Model (DOM)是同样的,但它更有效,并提供了能很好映射关系数据表的对象模板。DataNavigator 支持Xpath语法以对数据流进行导航。ADO.NET为那些但愿继续使用DOM做为XML对象模板而不是使用更有效的DataNavigator模板的开发人员提供了一个XMLDocument类。

      因为全部的数据均可被看做XML,因此开发人员能够为任何数据使用转换和确认服务。ADO.NET定义了一个消费DataNavigator、生成一个新的XmlReader的通用转换体系。.NET Framework提供了一个支持W3C XSL Transformations (XSLT)细则的特殊转换组件。ADO.NET同时提供了一使用XML简图确认XmlReader的确认引擎。ADO.NET支持经过DTDs, XSD或 XDR定义的简图。

表单应用模板

      从概念上讲,在服务框架的最上面是两个应用程序模板:Windows应用程序模板和网络应用程序模板。尽管我把重点放在把微软.NET 框架用做开发网络服务和网络应用程序的一种途径上,但框架也可用于开发较传统的基于Windows的应用程序(固然,这些应用程序也能使用网络服务)。

      编写Windows客户应用程序的开发人员可以使用Win表单应用程序模板以利用Windows丰富的用户接口特色,包括如今的ActiveX控件和Windows 2000的新特色,如透明的、分层的、浮动窗口。能够选择传统的Windows或网络外观。得知它和如今的基于Windows表单包的类似性之后,开发人员会发现Win表单可编程模板和对设计阶段的支持很是直观。

      Win 表单利用了Microsft .NET框架 runtime以减小基于Windows的客户应用程序的开销。只要应用程序和组件是用Win所写或被Win表单应用程序使用,那么它们就能被框架安全模板在客户机上安全地执行。若是以这种方式使用或执行,那么某人从Internet下载下来的生猛游戏就不会对配制信息和数据产生破坏,不然会自动地给用户地址薄里的每个人发送电子邮件。

      Microsft .NET框架 装配模板简化了应用程序的配制和版本化 。应用程序可被配制为使用它们在编译和测试所用的共享组件,而不是使用刚好在客户机器上安装的随便什么版本的组件,这就提升了应用程序的可靠性,减小了应用程序所支持调用的主要因素:用户接口控件和其它共享组件版本的不兼容性。

      网络应用程序模板创建在Microsft .NET框架 上网络应用程序共享一个通用应用程序模板。在这个模型中,网络应用程序是一套起源于基URL 的URLs。所以它包含用于生成在浏览器中观看的网页的网络应用程序和网络服务。在本节中,我将详细介绍称为Active Server Pages+ (ASP.NET)的网络应用程序可编程模板如同你从名字猜到的那样,ASP.NET是由活动服务器页面发展而来。ASP.NET利用common language runtime 和服务框架网络应用程序提供了一个可靠的、自动化的、可扩展的主机环境。ASP.NET也受益于common language runtime 集成模板,简化了应用程序的配制。另外,它提供简化应用程序开发的服务(如状态管理服务)以及高水平的编程模板(如ASP.NET Web Forms和ASP.NET Web Services)。

      ASP.NET的核心是HTTP运行语言,一个高性能的用于处理基于低级结构的HTTP请求的运行语言,而基于的结构与MicroSoft Internet Information Services (IIS)所提供的ISAPI结构类似。如同你在图5所看到的,HTTP 运行语言是在象服务器上的IIS或客户机上的IE之类的unmanaged 主机过程当中运行的受控代码。HTTP runtime负责处理引入的全部HTTP请求,并对每一个请求应用程序的URL进行解析,而后把请求分配到应用程序以进行进一步的处理。HTTP 运行语言是多线程的,并异步处理请求,所以劣质的应用程序代码阻碍不了它对新请求的处理。并且HTTP 运行语言假定失败必会发生,所以它被控制为尽最大力量自动地从访问冲突、内存泄漏、死锁等事故中恢复过来。除非是硬件故障,运行语言的目标是100%的可靠性。

      ASP.NET使用基于构件的Microsft .NET框架配制模板,所以它得到了如XCOPY配制、构件并行配制、基于XML配制等优势。ASP.NET另外一个主要优势是,它支持应用程序的实时更新。管理员没必要关掉网络服务器或者甚至不用中止应用程序的运行就能够更新应用文件。应用程序文件永远不会被加锁,所以甚至在程序运行时文件就能够被覆盖。当文件更新后,系统会温和地转换到新的版本。系统检测文件变化,并用新的应用程序代码创建一个新的应用程序实例,而后将引入的请求路由到应用程序。当全部被现存的应用程序实例处理的未完成的请求处理完后,该实例就被销毁了。

      在应用程序中,HTTP请求是经过HTTP模块的一个管道路由的,最终到达请求处理程序。HTTP模块和请求处理程序是一些实现特殊接口的受控类,而这些接口是由ASP.NET定义的。这种管道结构使得为应用程序增长服务很是方便:只需补充一个HTTP模块。例如,安全,状态管理及跟踪都被实现为HTTP模块。高级可编程模块,如网络服务和网络表单,一般被实现为请求处理程序。一个应用程序能连接与多个请求处理程序--每一个处理程序一个URL,可是全部的HTTP请求都经过一样的管道路由。

      网络基本上是一个无状态模型,而且在HTTP请求间没有联系,这使得编写网络应用程序很困难,由于应用程序一般须要维护跨多个请求的状态。ASP.NET加强了由ASP引入的状态管理服务,以便为网络应用程序提供三种类型的状态:应用程序、会话、用户。就象在ASP中同样,应用程序状态特定于一个应用程序实例,而且不会持久。会话状态是特定于一个用户与应用程序间的会话的。与ASP会话状态不一样,ASP.NET会话状态储存在一个独立的过程当中,而且可把它配制成能够储存到一个独立的机器上。这使得会话状态当应用程序在网络群(Web farm)扩展时很是有用。用户状态相似于会话状态,但一般它不会超时,而且是永久性的。所以,用户状态对储存用户参数和其它个性化的信息是有用的。全部状态管理服务都被实现为HTTP模块,所以它们容易增长到应用程序管道中,或从中删除。若是除了由ASP.NET提供的服务外,还须要额外的状态管理服务,那么可由第三方的模块提供。

      ASP.NET一样提供高速缓冲服务,以改善性能。输出缓冲可彻底节省网页翻译,段缓冲储存部分的网页。因为提供了相应的类,因此只要须要,应用程序、HTTP模块以及请求处理程序能够在高速缓存中储存任意数量的对象。

      下面快速浏览一下创建在ASP.NET可编程模块之上的两个高级可编程模块:ASP.NET 网络 表单和 ASP.NET 网络 服务。

ASP.NET 网络表单

      网络表单把基于Visual Basic?的表单的高生产性的优势带到了网络应用程序的开发中来。网络表单支持传统的将HTML内容与角本代码混合的ASP语法,可是它提出了一种将应用程序代码和用户接口内容分离的更加结构化的方法。引入的网络表单控件用于为封装通用用户接口元素提供了一种机制。这些新的特色使得开发工具在支持VB小应用程序的同时,也支持设计时模块,使得WUSIWYG工具支持网页布局。

      网络表单控件负责生成用户接口,典型状况是在HTML表单中。ASP.NET是提供了一套映射传统的HTML用户接口小部件(包括列表框,文本框和按钮)的网络表单控件和一套附加的更加复杂的网络控件(如日历和广告转板)。这些控件的一个重要特色是,它们能够被编写以适应客户端的能力;同一网页把大范围的客户端平台和表单因素做为目标。换句话说,网络表单控件能"嗅"到正在查找表单的客户,而后返回合适的用户经验――多是适合低级浏览器的HTML3.2或是适于IE5.0的动态HTML。

      考虑到网络是一种无状态的联接模型,网络应用程序开发人员所面临的一个很复杂的问题是,他们要对用户与基于网络的接口的交互做用做出反应。网络利用ASP.NET的体系架构提供了一套丰富的服务,以帮助开发人员创建交互式网页。这些服务的净做用是使基于组件的、事件驱动的可编程模块,对开发人员来讲,很是象客户端的表单程序设计。用户与网页交互做用的状态管理的复杂性被ASP.NET 网络 表单和网络表单控件隐藏起来了。对开发人员来讲,提供的丰富数据绑定服务使得显示经过数据访问服务获得的数据变得很是容易。

      代码与内容的分离使ASP.NET网页能动态地编译到受控类中,用以提升性能。每一个引入的HTTP请求都被传递到一个新的网页实例,所以开发人员不须要关心代码中的线程安全性。

ASP.NET 网络服务

      ASP.NET 网络 服务体系架构为用ASP.NET创建网络 服务提供了一高级可编程模板。虽然创建网络服务并不须要使用网络 服务平台,可是它提供许多的优势将简化开发过程,而且它使用的编程模型对用ASP或VB工做的开发人员来讲是很熟悉的。使用这个可编程模型,开发人员不须要理解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上绑定应用程序提供了一个利用现存体系架构和应用程序的简单的、灵活的、基于许多标准的模型。网络应用程序很容易与当地开发的服务或已存在的服务集成在一块儿,而不用考虑开发平台、开发语言或使用的对象模型,以用于实现任何组成的服务或应用程序。

      Microsft .NET框架在现有开发人员技巧之上,提供了一个应用程序模板和关键技术,用于简化安全、可靠、可扩展、高可用性的网络服务的创建、部署和不断的发展。

      经过上面的介绍,咱们可以感受到MicroSoft .NET对于咱们从此的程序设计将产生巨大的影响。

1.1.3 ASP.NET历史

      咱们在讲述ASP.NET历史以前,让咱们来回顾一下ASP。

      ASP的第一个版本是0.9测试版。它给WEB开发带来一阵暴风,它可以将代码直接嵌入HTML,使得设计WEB页面变得更简单,更强大,而且经过内置的组件可以实现强大功能,最明显的就是ActiveX Data Objects (ADO),它使得创建一个动态页面如小孩子玩游戏同样简单。

      最终出场的是Active Server Page 1.0,它作为IIS的附属产品免费发送。而且不久就在Windows平台上普遍使用。ASP与ADO的结合使用开发者很容易地在一个数据库中创建和打开一个记录集。这不无疑是它如此快就被大众接受的因素,由于你如今能使用这些脚本创建和打开一个记录集,处理和输出任何数据,以任何顺序,几乎只要你能想到的,它就能完成。

      1998年,微软公司又发布了ASP 2.0 。ASP 1.0和ASP 2.0主要区别是外部的组件须要实例化。有了ASP 2.0 和IIS 4.0,咱们就有可能创建ASP应用了,并且每一个组件就有了自已单独的内存空间。内置的MicroSoft Transaction Server(MTS)也使用制作组件便得简单。

      微软公司接着开发了Windows 2000操做系统。 这个Windows版本给咱们带上了IIS 5.0 以及 ASP 3.0。这次并非简单对ASP进行补充,核心的不一样其实是把不少的事情交给了COM来作。在windows 2000中,微软结合了MTS与COM核心环境作出了COM+,这就让主机有了一种新的方法来使用组件,一样给主机带来了更多的稳定性,成了一个能够升级的效率高的工做平台。IIS 5.0在表面上彷佛没有改什么,可是在接口上动的手术比较大。在内部,它使用COM+ 组件服务来对组件提供一个更好的执行的环境。

      有了这些,微软公司推出了ASP.NET,ASP.NET又叫ASP.NET,他不是ASP的简单升级,而是MicroSoft推出的新一代Active Server Pages。ASP.NET是微软发展的新的体系结.NET的一部分,其中全新的技术架构会让每一个人的编程生活变得更的简单。

1.1.4小结

      在本章中,咱们介绍了微软.NET的历史,以及对.NET的构成、性能进行了一个详细的介绍,同时,咱们还详细介绍了ASP.NET的历史。在下面的章节中,咱们将按实例一步一步的讲解ASP.NET。

      转自:http://www.lezhu99.com/1.html

相关文章
相关标签/搜索