微软ASP.NET AJAX框架剖析

大约在2006年年初,AJAX迅速成为Web 2.0开发中的一个热点,也成为开发以用户为中心的Web应用程序事实上的标准。然而,要开发出高质量的AJAX应用程序,首先要求开发者是一名 JavaScript高手,并不得不使用一些远不如C#或Java那样完善的开发工具。因此,由于AJAX“先天”的异步性及浏览器之间的差异,开发、调试及维护AJAX应用程序的过程将变得非常艰难并耗费大量时间。为此,许多公司和个人争相开发出自己的AJAX产品。但归结来看,所有AJAX产品不外乎三大类型:回调框架、UI框架和完整框架。

第一,回调框架。这类框架一般由少数的几个客户端及服务器端库文件组成。它只允许开发者从客户端调用服务器端代码片段,并以序列化方式传送输入和输出参数。

第二,UI框架。典型的UI框架一般都是从现有的专业控件库演变而来,它们往往提供给开发者一些高级网格控件、图表控件和树控件,等等。这些控件都会支持异步回发机制并在客户端生成用于自动刷新页面的JavaScript代码。

第三,完整框架。相比于以上两种框架,完整框架则提供包含控件和应用程序服务在内的极为丰富的编程模型,更适宜于同时应用于客户端和服务器端。微软的ASP.NET AJAX框架属于第三种类别。

微软于2005年夏天着手开发自己的代号为“ATLAS”的AJAX方案。由于这个产品的开发过程采用了一种开放方式(与社团结合并完全开放源码),所以在短期内出现多个CTP版本,并于2007年1月份,正式推出并更名为ASP.NET AJAX 1.0(以下我们简称为“MS AJAX”),其官方支持网站为http://ajax.asp.net/

二、MS AJAX的目标

构建一套完整的Web用户体验框架—提供一组丰富的内置组件,并允许开发者方便地依照自己的需要加以扩展;因此,对于那些熟悉JavaScript脚本语言的开发者将极大地提高程序的可维护性和可重用性。
与ASP.NET 2.0编程模型有机集成—提供一种端对端的解决方案,使得MS AJAX应用程序能够非常容易地访问服务器端ASP.NET和.NET框架中现有的编程模型。
自由选择开发模型—实际开发中,开发人员可以根据需要选择以服务器端为中心还是以客户端为中心作为应用程序的基本开发模型。
完全跨平台并基于标准—兼容大多数浏览器和平台,它实现的MS AJAX脚本框架能够适用于任何流行的Web服务器。
零客户端安装—运行基于MS AJAX开发的应用程序时,不需要客户端安装任何内容。MS AJAX的“客户端”由一系列从浏览器下载到本地的JavaScript文件组成。

此外,MS AJAX框架还可以应用于PHP及ColdFusion等Web开发环境中。

三、MS AJAX体系结构

从总体上看,整个ASP.NET AJAX框架被划分为如下三个模块:

1、ASP.NET AJAX。这一部分是ASP.NET AJAX框架的核心部分,包括了核心AJAX类型系统,网络协议层,组件模型,扩展器基类,以及与ASP.NET集成的服务器端功能。

2、ASP.NET AJAX CTP。ASP.NET AJAX社区支持的“增值”CTP部分,包括了以前各个Atlas CTP版本包含的,但并不在完全支持的“核心”1.0版本内的额外的高级特性。微软的最终目标是,通过用户进一步的试用与反馈,逐步将其中稳定的部分增加到核心模块中去。

3、ASP.NET AJAX Control Toolkit。包含了基于ASP.NET AJAX 1.0版“核心”版本的大量(还在继续增加)的功能极强的免费AJAX控件。它是一个开源项目,由微软和非微软开发人员共同开发维护,主要支持站点是http://www.codeplex.com/

篇幅所限,在此我们略去对ASP.NET AJAX框架的安装介绍,具体请参考ASP.NET AJAX的官方网站。

服务器端主要技术

ASP.NET AJAX的主要设计目标有两点:(1)扩展现有的ASP.NET服务器端模型,让其能够自动生成支持富客户端的JavaScript代码;(2)为ASP.NET增加客户端编程模型,进一步简化客户端编程。

由此,整个ASP.NET AJAX框架实质上包含了两种截然不同(但不互相排斥)的API:客户端API和服务器端API。你可以通过直接的客户端编程、传统服务器端编程或这两者的任意组合构建AJAX应用。本质上,任何基于AJAX的页面都需要一些客户端JavaScript代码来处理浏览器的文档对象模型(DOM)和任何特定于应用程序的扩展。但是,不必将这类脚本代码编写工作留给ASP.NET程序员。事实上,框架可生成专门设计的脚本代码作为服务器端控件的输出。这种形式的间接页面更新是目前为止将AJAX功能添加到新的和现有的ASP.NET 2.0页面的最简单方法。在ASP.NET AJAX中,页面更新可由服务器控件(UpdatePanel控件)所自动插入的一段客户端代码来管理。

下图1展示了ASP.NET AJAX框架的服务器端架构。

图1:ASP.NET AJAX服务器端架构

ASP.NET AJAX框架中提供了自己的类似于ASP.NET服务器控件的MS AJAX服务器控件;但是,MS AJAX服务器控件却具有能够生成客户端JavaScript脚本的能力。因此,MS AJAX服务器控件进一步简化了产生MS AJAX客户端JavaScript脚本的过程,非常适合于专注于服务器开发的开发人员。MS AJAX包含了完整的服务器控件,如Button、Label、Option、TextBox、CheckBox、HyperLink和 Validator等,这些控件与现有的ASP.NET服务器控件非常类似。所有这些控件都会被无缝地集成进Visual Studio开发环境,所以,你可以如同使用ASP.NET服务器控件一般使用它们。__来自富华

posted @ 2009-03-22 13:03  silverPerson  阅读(432)  评论(0编辑  收藏  举报