在过去的一年中,Web应用程序领域内出现了一系列令人难以置信的提高用户体验的技术。随着Web继续作为Web应用程序和服务的聚集点并不断发展,用户体验逐渐成为吸引并留住用户的核心要素,也间接决定了网站的生产力和收益。因此,能够完全发挥浏览器平台潜能,提供更加丰富用户体验、更多个性化支持、更强交互性等的网站数量上开始爆炸式的增长。
所有这些非凡的改进所需要的技术基础均已经存在了很长一段时间,不过它在最近才得到一个专有的名字——Ajax。作为该领域的先驱,微软公司在大约十年前就开始了在IE中对DHTML和CSS的尝试,而当前版本的JavaScript语言才仅有几年的历史。不仅如此,作为Ajax的基石——能够以另外一种更加灵活的方式实现浏览器和服务器通信的XMLHttpRequest对象,早在1998年即被集成于IE中,并在早期的先驱应用,例如Outlook Web Access中得到了广泛使用。
但是为什么Ajax在一夜之间变得如此火爆呢?显然,因为这项技术已经趋于成熟并已被标准化。目前为止,Ajax在各种平台和浏览器上的兼容性比从前任何时候都强,它已经可以运行于绝大多数的个人计算机上。个人计算机的计算能力也有了显著的增长。最终导致Web自主地进化成一个“富”平台。这些趋势也导致了公众对更良好、更有区分度的用户体验的需求。
与这些用户体验同时到来的还有对开发者更大的挑战。开发者通常都缺少用来有效处理DHTML和JavaScript的框架、工具以及技能,这已经成为了一个不争的事实。各种浏览器之间的差异也是导致麻烦的一个常见原因。而且,Ajax类型的应用程序也比较难以开发,因为它天生是一个异步工作的模型。为了解决这些问题,各种Ajax类库应运而生,但其中却鲜有提供了完善的框架、并能够和现有的Web编程模型和编程工具良好集成的类。
2005年夏天,在开始设计Atlas的时候,我们决定开发出一个端对端的框架以及与该框架相关的开发工具,这套架构和工具将给任何一个基于标准的Web客户端平台编写应用程序的开发者带来无以伦比的效率。从较高层次而言,我们是针对如下几个目标来设计Atlas的:
q 丰富的Web用户体验框架。允许任何开发者通过将各种控件和组件连接到一起来编写交互的、可个性化的Web应用程序。Atlas将提供丰富的内建组件,并允许开发者方便地依照需要自行开发。即使熟悉脚本语言的开发者也可以从这些能够提高可维护性和可重用性的模式中获益匪浅。
q 与.NET编程模型无缝集成。我们将提供一种端对端的解决方案,让Atlas应用程序能够容易地访问服务器端ASP.NET和.NET框架中完善的编程模型。
q 可以选择应用程序模型以服务器端为中心还是以客户端为中心。允许使用ASP.NET这样以服务器端为中心的模型的开发者通过Atlas技术轻松地增强应用程序的功能,而并不需通晓脚本语言或是客户端的异步通信机制。同时,任何一个开发者也都将可以使用Atlas技术的丰富功能充分利用浏览器的潜力。
q 完全跨平台并基于标准。我们期望开发者使用Atlas编写的应用程序可以运行于任何一种浏览器之上。Atlas被设计为可以工作在绝大多数流行的浏览器和平台之上,即开发者无需担心或关注应用程序的浏览器兼容性。Atlas脚本架构将同样适用于任何Web服务器。
q 无需客户端安装。Atlas不需要客户端进行任何形式的安装,即可立即运行于桌面计算机之上。Atlas的“客户端”由一系列由浏览器下载到本地的JavaScript文件组成,就像普通的Web内容一样。
为了达到这些目标,我们开发了一个免费的、跨平台的且基于标准的框架,让开发者可以容易地创建提供更加丰富、更强交互性、更多个性化支持的Web用户体验。
在Atlas的开发过程中,我们还采用了一种开放的方式,这已成微软公司一种新的编写开发工具和框架的方法。在产品开发的早期,我们采用社区技术预览版(Community Technology Preview,CTP)的形式不断地将最新版本的Atlas提供给开发者——仅仅在项目开始不到八周的时间内我们就发布了Atlas的第一个版本,并且在此以后保持每隔四周到六周发布一个新的预览版本的速度。通过发布这些CTP版本,在产品开发的早期我们即收到了大量有用的反馈,这为Atlas的发展提供了莫大的帮助,我们需要对开发者社区的参与表示由衷的感谢。在继续朝着Atlas最终发布版本努力的同时,我们也为社区开发者提供了一些新的参与方法,例如近期发布的Atlas控件工具包(Atlas Control Toolkit),就是一个我们与社区开发者协作编写的Atlas服务器端控件的集合。
采用这种开放的开发模型并不是一帆风顺的。在Atlas的第一个预览版中,我们的产品还处于雏形阶段,几乎没有任何文档或示例。早期为数不多Atlas的使用者和合作者不得不深入到代码中来理解它的行为,而且在其发展到今天之前的几个月中无法施以援手。
本书的作者Laurence即为早期的合作者之一,在这部权威的Atlas指南中也清楚地显示出了他对该产品的了解。本书将给读者带来开始使用Atlas创建丰富Web应用程序所需要的全部知识。它从Ajax模型和ASP.NET开始入手,讨论了Ajax的完整概念;然后,引领读者广泛地了解了Atlas,包括客户端脚本框架、Atlas服务器端ASP.NET 控件,以及随Atlas提供的丰富的内建控件/组件等。
Laurence通过简单明了的描述,结合代码示例介绍每一个主题,将概念以清楚且实用的方式表达出来。其中最值得称道的是第11章,演示了使用Atlas创建一个其实应用程序的全过程。
我个人对Atlas及其潜在的对创建丰富的Web体验的支持非常兴奋。如果读者正在寻求能释放创造力,并能给用户带来不同体验的开发工具,那么Atlas和这本书将一定会给你带来相当大的收获。衷心地希望读者能够与我们在开发Atlas时一样,享受使用Atlas开发时的乐趣。
Shanku Niyogi
微软公司,UI框架和服务开发组,产品单元经理







