日期:2010-09-11  浏览次数:20444 次

  大约有将近一百万名开发人员使用了.NET Framework的第一个版本来开发网站。所以在2003年的夏天,当从Microsoft传出将有新版本发布的传闻时,许多人的耳朵都竖了起来,这个新的版本将使得创建ASP.NET页面所需的代码行数减少70%。像这样大规模的提高生产效率在程序设计中是不多见的。当ASP.NET 2.0的代码样例在2003年秋的Microsoft专业开发人员大会(Microsoft Professional Developer’s Conference)上演示时,结果比预计的还要好。以前使用ASP.NET的第一个版本程序员需要花费几个小时才能做出的页面,现在使用ASP.NET 2.0只需要几分钟就完成了。简单来说,在.NET Framework 2.0最终版本发布之后,任何继续使用第一个版本创建ASP.NET页面的程序人员都将花费大量的额外时间才能达到相同的结果。

  也许就像其他任何领域一样,ASP.NET 2.0所提供的优势是能够方便地将数据集成进页面。程序员不再需要知道详细的连接、命令以及数据阅读器和数据适配器对象,就能执行普通数据任务了。对于初学者掌握能力,ASP.NET 2.0使得基本数据的使用简单易学,并且有能力进行更复杂的数据应用。

  .NET Framework

  Microsoft开发出了作为基本原理的.NET和一系列技术,用于在互联网中让计算机共同工作。总的目标就是让信息和进程在大范围的系统和设备之间顺畅地交流。.NET不是一种语言,也不是一个特别的产品。更确切地说,它是一套标准和规范,并已经应用于自2002年以来Microsoft发布的所有产品中。

  .NET包含了一种使用开放标准的XML格式交换信息的标准化格式。可扩展标记语言(Extensible Markup Language,XML)不需要请求者具备任何有关数据存储如何保存信息的专门知识—— 数据都以自描述的XML格式取出。同样地,目前几乎所有的数据存储都可以用XML来提供信息,这对于所有.NET数据客户都具有吸引力。

  .NET支持软件的Web Services标准,可请求在使用了开放平台标准的简单对象访问协议(Simple Object Access Protocol,SOAP)和XML的远程软件上运行代码。.NET网站可以从另外一个网站上找到该网站所提供的服务,并使用这些服务。这样可以使得网站从其他的网站上获得HTML、计算后的结果或者数据集。

  作为.NET开端的一部分,Microsoft发布了一套运行时编程工具和应用编程接口(API),称为.NET Framework,让开发团队能够创建.NET应用程序和XML Web Services。.NET Framework由公共语言运行库(Common Language Runtime,CLR)和一套统一的类库组成。

  CLR为运行的应用程序提供了一个完全管理的执行环境,其中包括几个服务,例如程序集装载和卸载、进程和内存的管理、安全实施以及即时编译等。CLR名称的意思就是指能够用多种语言编写应用程序,并且将源代码编译成CLR能够读懂并运行的中间语言,而无需考虑原来所使用的语言。这种“语言独立性”就是CLR的关键特性(也是ASP.NET的特性),它允许开发人员使用自己喜欢的语言工作,比如C#、VB或者Cobol,都能够获得.NET Framework的常用特性。

  .NET Framework还包括了一套类库,这套类库提供了每一个应用程序所需的常用功能。可以使用.NET Framework支持的任何语言来访问这些类库。由这些类库提供的服务(以及相应的命名空间)如下:

  · 基本类型(System)

  · 输入/输出(System.IO)

  · 数据访问(System.Data)

  · 安全(System.Security)

  · 数据结构(System.Collections)

  · 配置(System.Configuration)

  · 连网(System.Net)

  · 反射(System.Reflection)

  · 全球化(System.Globalization)

  · 绘画和制图(System.Drawing)

  · 跟踪和诊断(System.Diagnostics)

  · 窗口(客户端)应用程序模型(System.Windows.Forms)

  · Web应用程序模型(System.Web)

  注意,.NET Framework包含了两个应用程序编程模型,一个用于客户端应用程序(System.Windows.Forms),另一个用于基于Web的应用程序(System.Web)。本书着重讲解后一个模型。.NET Framework中的System.Web命名空间是.NET Framework的一部分,它提供了ASP.NET功能。换句话说,ASP.NET就是构建应用程序的所有.NET Framework的一部分。

  ASP.NET

  ASP.NET是一种用于创建基于Web的应用程序的编程模型。从本质上来说,运行时和.NET Framework类库集可以用于创建动态Web页。它需要在Web服务器的环境中运行,例如Microsoft Internet Information Server(Microsoft互联网信息服务器,IIS),并且根据服务浏览器请求指示在服务器上执行程序。与直接由Web服务器提供的静态HTML不同的是,ASP.NET页面实际上是在服务器上执行以后再产生结果的。页面的最后生成也许是由许多不同的指令和/或数据源构造的。

  ASP.NET页面以.aspx扩展名存储。页面由程序员将文本、标记(例如HTML)以及ASP.NET特定服务器标记和脚本组合在一起,然后存储在Web服务器上。可以将存储后的ASP.NET页面看成是一套描述如何创建一个HTML页面的指令。当该页面被请求浏览时,服务器端程序将会用纯标记来创建一个客户端浏览器可以读懂并能呈现(render)的页面。因为呈现后的输出是纯标记,所以任何浏览器都能够读懂;所有的动态过程都发生在Web服务器端。ASP.NET特定服务器标记非常强大,例如,它可以对用户的动作作出反应,连接至数据存储以及自动创建非常复杂的HTML结构。

  正像前面提到的那样,ASP.NET只是.NET Framework的一部分,所以 ASP.NET页面可以利用这个框架提供的所有服务,包括连网、数据访问、安全以及更多其他服务。因为ASP.NET可以使用所有这些服务,所以相比以前,能够创建更加丰富的Web应用程序。只需花少量的时间来构建所有应用程序所需的构建块,而将大多数时间用在应用程序独有的特殊逻辑上。

  ASP.NET还在Web编程中引入了一些独特的新技术,可以在典型的动态服务器页面(Active Server Pages,ASP)上极大地改善开发模式:

  · 语言独立性——因为ASP.NET是.NET Framework的一部分,所以可以使用您自己选择的语言来构建ASP.NET应用程序,例如C#、VB或J#。而典型的ASP则仅限于JScript或者VBScript页面。

  · 编译而不是解释——与典型的ASP在每一次页面请求时都解释编程结构不同,ASP.NET在服务器端动态地将页面编译成可以运行得非常快的本机编程指令。可以很明显地看到典型的ASP页面的性能与相同ASP.NET页面的性能之间相差的数量级别。

  · 事件驱动编程模式——在典型的ASP中,页面总是以自顶向下的线性方式执行,并且HTML标记常常与程序指令混合在一起。任何一个有一定ASP经验的人都知道这样会使得页面难以阅读,甚至更加难以维护。ASP.NET引入了事件驱动模型,这个模型允许您将代码与标记内容分离,将代码并入处理专门任务的有意义的单元中,例如响应客户端的按钮单击动作。这个类似VB的事件模型极大地提高了页面的可读性和可维护性。

  · 服务器控件——典型的ASP需要动态地将HTML片断代码接合在一起呈现,这样做的结果就是在应用程序中一遍又一遍地编写相同的代码(您需要多少次才能从数据库查询中构建一张表格)。ASP.NET带给Web编程的一个最大的好处就是能够将公共的呈现和行为封装成服务器控件(server control),可以在应用程序中很方便地重复使用。就像HTML标记一样,服务器控件以声明的形式创建,但是表现为一个位于服务器端的可编程对象,它可以与代码进行交互并输出定制的动态HTML呈现。ASP.NET包含了大约80多个服务器控件,这些控件封装了从标准表单元素到复杂控件(如网格和菜单)的所有内容。

  · 控件设计时间的改善(当使用Visual Web Developer时)—— 开发人员通过使用设