Atlas—微软的Ajax工具包(来自MSDN Scott Guthrie)

来源:互联网 发布:中国教育数据统计网 编辑:程序博客网 时间:2024/06/14 09:51

======================================================
注:本文源代码点此下载
======================================================

微软现在已经进入了asp.net 2.0和visual web developer 2005发布版最后的rtm里程碑时刻。为了达到zbb(zero bug bounce),微软已经锁定了这些产品的特性,着重优化最终的质量、性能和可靠性。

与此同时,微软开始了下一个发布版本的研发,其中一个重要的研究方向就是通过ajax风格的编程在浏览器中实现日益流行的富客户端应用。

今后的ie中将拥有ajax所需的所有东西——dhtml、jscript和xmlhttp。实际上outlook web access从1998年开始就已经提供了这种伟大的浏览体验了。在asp.net 2.0中,微软使用异步回调及舒适的ajax风格的应用程序的编写更加简单,并且,微软为此提供了大量的内建控件。

目前,几乎所有的浏览器都提供了ajax所需的技术,使用这种模式的富客户端应用程序也不断出现。今天,世界上出现了不计其数的ajax风格的站点,包括google的很多站点、a9和flickr。微软的很多站点也使用了这项技术,如start.com和msn virtual earth项目。

ajax的风行说明用户对于丰富的web体验的需求日益增长。然而,开发和调试ajax风格的web应用程序是一项非常艰难的工作。要编写一个丰富的web ui,开发者需要详细地掌握dhtml和javascript,并且还要掌握各种浏览器之间在设计细节上的不同。然而没有哪些工具能够简化这些应用程序的设计和开发。最后,调试和测试这些应用程序会变得异常困难。

微软致力于简化ajax风格web应用的开发,并提供丰富的、可交互的和个性化的用户体验。开发者可以对客户端脚本不甚了解;但他们可以无缝地将浏览器ui与他们编写的其他应用无缝地集成在一起,并且他们可以很容易地开发和调试这些应用程序。

出于这一目的,微软启动了一个新的项目,研发代号为“atlas”。同时,微软还启动了一个站点来持续更新其核心进展和示例,并围绕它建立一个活跃的社区。在9月份的pdc大会上,开发者可以看到atlas的技术预览版。

以下是atlas所拥有的特性。

atlas客户端脚本框架

atlas客户端脚本框架是可扩展的、100%面向对象的javascript客户端脚本框架,允许开发者很容易地构建拥有丰富的ui功能并且可以连接web services的ajax风格浏览器应用程序。使用atlas,开发者可以使用dhtml、javascript和xmlhttp来编写web应用程序,而无须掌握这些技术的细节。

atlas客户端脚本框架可以在所有的现代浏览器上运行,不论使用的是什么web服务器。它还完全不需要安装,只要在页面中引用正确的脚本文件即可。

atlas客户端脚本框架包含下列组件:

l一个可扩展的核心框架,其中为javascript添加了很多新特性,如生存期管理、继承、多播事件处理器和接口

l一个基础类库,提供了通用特性,如丰富的字符串操作功能、计时器和运行任务等

l一个ui框架,可以跨浏览器实现html的动态行为

l一个网络栈,用于简化对服务器的连接和对web services的访问

l一组具有丰富ui功能的控件,如自动完成文本框、弹出面板、动画控件和拖放

l一个浏览器兼容的层(layer),用于在不同浏览器中定位不同的脚本行为

atlas的asp.net服务器控件

对于asp.net应用程序,微软专门设计了一组ajax风格的服务器控件,并且加强了现有的asp.net页面框架和控件,以便支持atlas客户端脚本框架。

asp.net 2.0中有一项称作异步客户端回调(asynchronous client callbacks)的新特性,使得构建从服务器上更新内容时不会引发页面中断的asp.net页面变得很容易。异步客户端回调包装了xmlhttp,能够在很多浏览器上工作。asp.net本身就包括了很多使用回调的控件,包括具有客户端分页和排序功能的gridview和detalsview控件,以及treeview控件的虚拟列表支持。

atlas客户端脚本框架将完全支持asp.net 2.0回调,但微软希望在今后进一步增强浏览器和服务器之间的集成性。例如,你可以将atlas客户端控件的数据绑定并指定为服务器上的asp.net数据源控件,并且可以从客户端异步地控制web页面的个性化特征。

asp.net web services集成

和任何客户端应用程序一样,一个ajax风格的web应用程序通常也需要访问web服务器的一些功能。atlas应用程序连接服务器的模型和其他平台类似,都是使用web services来实现。

通过asp.net web services集成,atlas应用程序将可以在任何支持xmlhttp的浏览器上通过atlas客户端用本框架来直接访问任何宿主了asp.net的asmx或indigo服务。该框架将会自动处理、代理和脚本到对象、对象到脚本的序列化问题。通过使用web services集成,开发者可以使用单一的编程模型来编写web services,并且在任何应用程序中使用它们,不论是基于浏览器的站点上还是智能客户端应用程序中。

atlas的asp.net构建块

在asp.net 2.0中,微软构建了一组丰富的构建块服务(building block services),这使得构建强大、个性化的web应用程序变得不可思议的简单。这些构建块极大地降低了在开发通用的web应用程序过程中需要编写的代码数量,比如管理用户、通过角色验证用户和存储用户的个性化设置信息等。

使用atlas,我们可以在任何浏览器上的任何客户端应用程序中向访问web services那样访问这些功能。例如,如果你正在开发一个站点来显示用户的to-do项目,你可以使用asp.net的profile服务来将他们存放在服务器上的用户自定义配置文件中。这样,即使用户从一台机器转移到另一台机器上,也同样可以访问这些项目。

微软将提供的服务包括(全部是基于asp.net 2.0的):

lprofile:在服务器上存放每个用户特有的数据

lui个性化:在服务器上存放个性化的ui设置信息

l验证:验证用户

l角色:基于用户的角色验证用户任务和提供不同的ui

由于这些构建块是基于服务器的,开发者需要对他们应用和其他站点一样的安全模型。这些服务不需要客户端下载任何东西——只要在浏览器中引用脚本代理即可。

所有的asp.net 2.0构建块服务都是可插拔的,这使用一种通用的提供者(provider)模型可扩展模式在后台实现。微软提供的内建提供程序允许开发使用sql server数据库或active directory作为存储容器,开发者也可以很容易地插接自己的提供程序。例如,你可能希望使用集群而不是数据库服务器来存放用户的配置文件,这时,你只需将你的提供程序插接进来即可——这一切都由开发者来决定。

客户端构建块服务

除了dhtml、jscript和xmlhttp,微软还提供了一组附加的服务来加强客户端的功能,并提供增强的体验。

对于这样的服务,本地浏览器缓存就是一个很好的例子。当启用了本地浏览器缓存时,web站点就可以将内容存储到缓存中,并在需要的时候很快地取出。但浏览器并未提供向缓存中存放数据的api,而且象google map或owa这样的应用程序不得不通过很多工作产生一个唯一的url,才能使浏览器缓存它。在atlas中,微软提供了可编程的本地存储/缓存,因此应用程序可以很方便、有效并且安全地在本地缓存数据。

同其它应用程序的集成是检验web体验是否丰富的另一个新的标准。例如,当一个用户浏览一个拍卖网站并对一件商品出价时,他可能想随时知道这个拍卖什么时候结束,但他如何才能将这个事件添加到个人的日历程序中?atlas带来了一系列客户端构建块服务,当用户选择“添加到日历”时,浏览器将调用接驳点来获取日历数据,并将其传递到本地的日历程序中。此时页面上无须下载或运行任何特殊的代码或执行任何初始化动作,因此,这比activex要安全得多。

下一步

随着我们的技术进展,还会发生很多事情。我们现在已经开始研发、开发和调试工具的下一个版本了,因此,我们将很快为这些类型的丰富web应用程序提供更加伟大的开发体验。

您可能会问的一个问题是:atlas如何在avalon和智能客户端上使用?

我们可以看到,atlas是编写丰富的、可交互的和个性化的web浏览器应用程序的最好方式,而avalon是微软的下一代表现层模型,可以在windows平台上提供最丰富的用户体验。avalon将使用最新的媒体集成功能和硬件加速设备,提供卓越的视觉体验。avalon将带来超越浏览器的体验。

当然,当你构建avalon应用程序的时候,你依然可以重用asp.net和atlas中的编程模型。例如,avalon客户端上依然可以使用asp.net构建块服务和客户端构建块服务。这种模型可以使你平滑地过渡到下一代应用程序。


======================================================
在最后,我邀请大家参加新浪APP,就是新浪免费送大家的一个空间,支持PHP+MySql,免费二级域名,免费域名绑定 这个是我邀请的地址,您通过这个链接注册即为我的好友,并获赠云豆500个,价值5元哦!短网址是http://t.cn/SXOiLh我创建的小站每天访客已经达到2000+了,每天挂广告赚50+元哦,呵呵,饭钱不愁了,\(^o^)/
原创粉丝点击