ASP.NET AJAX

ASP.NET AJAX 是微软专为 ASP.NET 应用程式所发展的 AJAX 基础支持,研发代号为 Atlas,原有的 ASP.NET 应用程式可以很轻松的使用 ASP.NET AJAX 所提供的基础架构,开发具有 AJAX 能力的 Web 应用程式。

早期在 ASP.NET 2.0 时开始发展,它也是早期使用 CTP (Community Technology Preview) 来代表测试版本的产品之一,在开发初期就已经受到 ASP.NET 的开发人员相当程度的关注,而在历经一年左右的开发后,于 2007 年发表了在 ASP.NET 2.0 使用的 AJAX 1.0(版本号码为 1.0.61025),目前的版本为 3.5,与 .NET Framework 3.5 一起发布。

ASP.NET AJAX 4.0 将于 2010 年上半年与 Visual Studio 2010 和 .NET Framework 4.0 一起发表。

版本

  • ASP.NET 2.0 AJAX Extensions 1.0
  • ASP.NET AJAX 3.5
  • Microsoft AJAX Library 3.5 SP1
  • ASP.NET AJAX 4.0 Preview 3

组成

ASP.NET AJAX 的组成为 System.Web.Extension.dll 以及封装在 ASP.NET AJAX 函数库中的 AJAX Core APIs,System.Web.Extension.dll 是一个 .NET assembly,它封装了四个重要的 ASP.NET AJAX 控件:

  • ScriptManager 控件,为 ASP.NET 提供了重要的 JavaScript 以及部分刷新 (Partial Update)页面方法 (Page Methods) 等重要性质的支持。
  • UpdatePanel 控件,为提供即时刷新用户界面,以及触发更新的 Control trigger。
  • UpdateProgress 控件,可在 UpdatePanel 刷新页面的工作期间,显示一个处理中的消息。
  • Timer 控件,为 AJAX 的客户端提供了计时器的支持,可说是 DOM 中的 window.setInterval() 的强化实现。

ASP.NET AJAX 和其他浏览器一样,都使用 XMLHttpRequest 来与伺服端沟通,因此 ASP.NET AJAX 可以适用于许多的浏览器,例如 FirefoxOperaSafari 等,当然也包括了微软的 Internet Explorer 浏览器,但 ASP.NET 开发人员可以在完全没有 AJAX 基础知识的情况下,开发出 AJAX-enabled(具有 AJAX 功能)的 Web 应用程式[1]

架构

ASP.NET AJAX 分为 Server 和 Client 两个架构[2]

Server 端的组件包含:

  • Scripting Services,包含对 AJAX 的 scripting 的控制,例如 debug,全球化,本地语系化等。
  • Web Services,设置 Web Service 的路径,让 AJAX Client 可以抓取 Web Service 的参数。
  • Application Services,让 AJAX Client 可以使用 ASP.NET 2.0 的 Membership 和 Profile 服务。
  • Server Controls,包含 ASP.NET AJAX 的四个主要控件。

Client 端的组件包含:

  • Components:非可视化组件的支持。
  • Browser Capabilities:为个别浏览器所提供的支持。
  • Networking:对网络存取的支持,包含异步处理,JSON,WebRequest,Web Service 与 Application Service
  • Core:对 JavaScript 的基础支持,例如 events,序列化,类型系统等。

微软也开放了客户端的 ASP.NET AJAX Library 的原始代码,供开发人员做客制化使用[3]

AJAX Control Toolkit

AJAX Control Toolkit 是一个基于 ASP.NET AJAX 平台上开发的一组控件工具箱[4],在2011年7月31日的版本,它包含了下列 41 个常在 Web 开发中使用到的控件,可供开发人员免费使用与散布。

  • Accordion
  • AlwaysVisibleControl
  • Animation
  • AsyncFileUpload
  • AutoComplete
  • Calendar
  • CascadingDropDown
  • CollapsiblePanel
  • ColorPicker
  • ComboBox
  • ConfirmButton
  • DragPanel
  • DropDown
  • DropShadow
  • DynamicPopulate
  • FilteredTextBox
  • HoverMenu
  • HTMLEditor
  • HTMLEditorExtender
  • ListSearch
  • MaskedEdit
  • ModalPopup
  • MultiHandleSlider
  • MutuallyExclusiveCheckBox
  • NoBot
  • NumericUpDown
  • PagingBulletedList
  • PasswordStrength
  • PopupControl
  • Rating
  • ReorderList
  • ResizableControl
  • RoundedCorners
  • Seadragon
  • Slider
  • SlideShow
  • Tabs
  • TextBoxWatermark
  • ToggleButton
  • UpdatePanelAnimation
  • ValidatorCallout

参考资料

  1. ^ Browser Compatibility with ASP.NET AJAX. [2008-09-13]. (原始内容存档于2008-09-17). 
  2. ^ ASP.NET AJAX Overview. [2008-09-13]. (原始内容存档于2008-09-14). 
  3. ^ ASP.NET AJAX Downloads. [2008-09-13]. (原始内容存档于2008-09-12). 
  4. ^ AJAX Control Toolkit. [2008-09-13]. (原始内容存档于2008-09-13).