大约在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服务器控件一般使用它们。

转自:http://hi.baidu.com/tangdecai/blog/item/5bff9351df2dfc2243a75b7f.html

微软ASP.NET AJAX框架剖析(1)相关推荐

  1. 微软ASP.NET AJAX框架剖析

    一.简介 大约在2006年年初,AJAX迅速成为Web 2.0开发中的一个热点,也成为开发以用户为中心的Web应用程序事实上的标准.然而,要开发出高质量的AJAX应用程序,首先要求开发者是一名 Jav ...

  2. 基于微软ASP.NET AJAX框架开发幻灯片播放网页

    一. 简介      最近,微软ASP.NET Ajax 1.0框架以其完整的基于Ajax的web开发方案呈现在web技术人员的前面,凭借与遗留ASP.NET系统的有机整合以及完全面向对象的客户端Ja ...

  3. 深入剖析微软ASP.NET Ajax中的数据绑定构架下篇之二

    四.例2-数据库绑定 现在,我们来讨论更为复杂的数据库绑定的例子.根据我们前面的讨论,我们找到了使用DataSource的典型场所:在前面的例1中,我们使用了一种内存数据来模拟有状态的web服务.但是 ...

  4. Asp.net Ajax框架教程

    目录 (一).概述... (二).应用场景代码示例... 1).ScriptManager控件示例...     1. 在异步调用服务端注册客户端脚本新方法...     2. 捕获Ajax异步调用中 ...

  5. 探讨微软ASP.NET AJAX控件开发技术(服务器端)

    一.简介 到目前为止,我们已经讨论了开发Ajax控件所涉及的客户端相关技术.现在,让我们来讨论此过程中与服务器端相关的一些技术. 需要说明的是,在[客户端]篇中我们的举例本质上仅是使用ASP.NET ...

  6. Asp.net Ajax框架教程[教程下载]

    Asp.net Ajax 框架教程 目录 (一).概述... (二).应用场景代码示例... 1).ScriptManager控件示例...      1. 在异步调用服务端注册客户端脚本新方法... ...

  7. 《ASP.NET AJAX 应用剖析立即上手》推荐序!

    <ASP.NET AJAX 应用剖析立即上手>推荐序 2007 年 3 月 7 日,1165 位程序设计师挤满台北国际会议中心,迎接 Microsoft ASP.NET AJAX 的正式发 ...

  8. 《ASP.NET AJAX 应用剖析立即上手》简体版即将上市!

    博文视点年终大作 <ASP.NET AJAX 应用剖析立即上手> 简体版即将上市! 内容简介:     这是来自台湾畅销书作者董大伟的力作,他是台湾微软MVP,ASP.NET AJAX D ...

  9. 用ASP.NET AJAX框架扩展HTML Map控件

    [摘要]在本文中,我将向你展示如何使用ASP.NET AJAX框架对添加可点击的热点的HTML Map控件进行扩展.经扩展后,当我们的鼠标移动到这些热点上后,即弹出关于这些热点的详细信息;但是,这些详 ...

  10. Microsoft Asp.Net Ajax框架入门(12) 了解异步通信层

    VS 2008 本文通过两个简单的例子,了解Asp.Net Ajax Asynchronous Communication Layer Asp.Net Ajax异步通信层提供了一系列客户端的类,用于客 ...

最新文章

  1. 桂林机场春运期间新增多条航线航班 实现接力承运无缝衔接
  2. 通信网络基础期末复习-第五章-路由算法
  3. java条件配置,三、使用JAVA必备条件—环境配置
  4. 机器学习笔记:岭回归(L2正则化)
  5. Oracle Supplemental 补全日志介绍
  6. linux java jar war_简单介绍Java 的JAR包、EAR包、WAR包区别
  7. 彻夜怒肝!Spring Boot+Sentinel+Nacos高并发已撸完,快要裂开了!
  8. ECMAScript:客户端脚本语言的标准
  9. Get!读懂数据科学和机器学习,看这文就够了!
  10. mysql的分页如何操作_Mysql有关分页的操作
  11. 由软件工程看中国人急功近利的心态
  12. 刚刚申请的博客,自己也是新手!
  13. 数据库系统概论第五版(王珊)-基础篇(一)
  14. 最详细windows xp下安装mac的教程(转自远景论坛69nc)
  15. 在手机上Link of class 'Lcom/example/test/MainActivity;' failed
  16. m4a转换成mp3如何操作?
  17. 超详细: Type-C接口Macbook笔记本无法充电(时连时断)的傻瓜处理流程
  18. visio的使用技巧
  19. Android Study Material Design 十 再探沉浸式
  20. 轻量却超强——推荐几款好用的截图工具

热门文章

  1. 【飞桨PaddleSpeech语音技术课程】— 多语言合成与小样本合成技术应用实践
  2. 电脑硬件故障维护小全
  3. MySQL可视化 Navicat for MySQL 字体调整
  4. 学校图书馆管理系统/图书管理系统的设计与实现
  5. 黑苹果Big Sur下驱动高通模块Atheros DHXA-195(AR9285无线网卡和AR3011 蓝牙3.0)
  6. Opencv 形态学操作 灰度、滤波、膨胀腐蚀、开闭运算、梯度-python代码
  7. MATLAB免疫算法求解超市物流配送中心选址问题实例
  8. 设计模式-4.行为型模式(模板方法模式/策略模式/命令模式/职责链模式/状态模式/观察者模式/中介者模式/迭代器模式/访问者模式/备忘录模式/解释器模式)
  9. 2019美赛B题PSO算法
  10. java四方支付系统