每本书都会讲述一个故事,即使是这一本关于Web编程的书也不例外。这个故事要从2005年夏天说起,那是在美国洛杉矶的专业开发人员大会(Professional Developer Conference,PDC)上,微软第一次向我们展示了Atlas,这是ASP.NET AJAX最初的名字。它让我们为之振奋,我们立即开始着手使用这种年轻并在不断发展的框架。最初(今天也是如此),我们通过论坛、用户组和博客集思广益,学习并促进这项最新技术的成长。.
Manning邀请我们合作编写这本书时,看上去似乎是顺理成章的,想想看我们在学习这个框架的过程中投入了多少时间。我们的目标是为读者提供一些强有力的工具,帮助他们成为成熟的ASP.NET AJAX 开发人员。对我们而言,这意味着要对JavaScript更为精通、能够创造出支持Ajax的(Ajax-enabled)控件,并了解如何利用一些最佳实践和模式来丰富ASP.NET应用。在这个过程中,通过分享我们从.NET社区、从日常工作以及从微软学到的经验教训,展现我们对于ASP.NET AJAX的强大特性方面投入了怎样的热情。
本书之所以与众不同(甚至无可替代),关键在于它将以一种特殊的方式详细解释如何使用和理解这个框架。首先从很简单的例子开始,然后会逐步过渡到一些更复杂的实际场景,要解决这些复杂问题,要求读者掌握这种技术,并提高技术水平。
如今本书已经完成,“故事”也讲完了,相信我们的目标已经达到,可以为你奉上一本独特而全面的ASP.NET AJAX学习指南。学好这本书将使你如虎添翼,能够构建现今用户所期望的那种丰富而直观的应用,这正是我们的希望。
关于本书
从ASP.NET AJAX 1.0版本发布以来,将近一年的时光已经悄悄逝去。随着Ajax模式带来的热潮,这个框架已经在ASP.NET开发人员中得到了广泛的应用。ASP.NET AJAX 官方网站提供了一些视频教程和在线文档,还建立了相关的论坛。既然有这么多资源可用,有人可能认为再写一本书没有多大意义。
我们的观点则截然相反。的确,在线文档可以作为很不错的一般性参考资料,搜索ASP.NET论坛可以得到最新的技巧和方法,这一点也不假。但我们相信,要想精通这个框架,最根本的是要对ASP.NET AJAX为ASP.NET 引入的新概念和开发技术有深入的了解。什么是客户页面生命周期?部分回送是如何工作的?为什么需要编写支持Ajax的控件?这本书的目标之一就是解释各种技术在ASP.NET AJAX下如何工作。我们还希望尽可能多地提供代码,展示如何利用ASP.NET AJAX的帮助实现常见的Ajax应用场景。
这本书的每一章都会尽力解释相关概念出现的原因以及如何使用。我们认为,应该多采用简单的示例,这样一来,读者可以很快开始编写代码,而且不会因为具体的代码而对ASP.NET AJAX概念分散注意力。一旦掌握了主要概念,接下来将增加难度,提供一些更高级的例子。
我们认为,Ajax开发是面向客户的。因此,本书专门用6章的篇幅来介绍以客户端为中心的开发模型。其中两章讨论了这个框架的将来版本中将加入的一些特性,目前这些特性是作为CTP(Community Technical Preview,社区技术预览版)提供的。客户端中心开发模型和服务器中心开发模型都将非常详细地讨论。总之,这本书的目标是使你对ASP.NET AJAX 扩展框架有一个深入而全面的认识。
本书面向读者
这本书面向想要掌握ASP.NET AJAX扩展框架的ASP.NET开发人员。尽管我们写这本书时主要考虑新手和中级开发人员,但高级开发人员也能从中受益,因为他们能从书中了解到ASP.NET AJAX框架为ASP.NET世界引入的新概念和编程技术。
要想充分理解书中的内容,需要对Ajax范型和JavaScript编程语言有一定的了解,不过我们也提供了大量背景材料,如果你是一个新手,这些内容可以帮助你很快熟悉相关的概念。要强调一点,这本书是针对ASP.NET AJAX框架的,这是许多常见Ajax模式的一种实现。因此,书中不会泛泛而谈有关Ajax及其技术和模式。如果你刚刚踏入Ajax世界,强烈建议你读另外一本有关Ajax概念的书(不针对某一个具体框架)。我们特别推荐Dave Crane、Eric Pascarello和Darren James编写的Ajax in Action 一书,这本书由Manning于2005年10月出版。
阅读路线图
这本书分为4大部分,旨在使读者循序渐进,从使用ASP.NET AJAX完成开发的初级阶段一直发展到成为这个领域的专家。
第1部分从第1章到第6章,涵盖了ASP.NET AJAX的基础知识和两个开发模型,即服务器中心开发模型和客户端中心开发模型。通过这几章的热身,你开始熟悉Ajax编程和ASP.NET AJAX 基础架构的基本要素。你将了解构成这个框架的各个部分,以及如何有效地使用ASP.NET AJAX框架改善Web应用程序。
第2部分包括第7章到第10章,将深入介绍这些开发模型,其中涵盖一些复杂的问题和高级技术。在此之前,我们首先会打基础,以便理解ASP.NET AJAX编程的基本知识。除此之外,这一部分还会应用这些知识来解决现实情况中的一些有难度的问题。
第3部分包括第11章和第12章,其中重点介绍了ASP.NET Futures的特性。在这一部分中,我们将分析ASP.NET AJAX提供的特性。
第4部分就是第13章。这一章将使用从前面各章获得的技能来实现最常见的一些Ajax模式,帮助你跻身为一位ASP.NET AJAX专家。
本书的思路是提供概念描述和实用代码,而不只是作为一本参考手册。出于这个原因,强烈建议你通读所有章节,因为每一章都建立在前一章的基础之上,而且复杂程度逐步上升。如果你只关心某一个开发模型,从下表可以看出本书涵盖内容的大致划分。
章号章 名以客户端为中心
.的开发人员以服务器端为中心
的开发人员掌握了ASP.NET AJAX的人员
1ASP.NET AJAX简介×××
2Microsoft Ajax Library第一步××
3Ajax开发人员需要的JavaScript知识××
4Ajax服务器扩展剖析××
5建立异步网络调用×××
6
利用UpdatePanel实现部分页面更新 ××
7UpdatePanel深入剖析××
8ASP.NET AJAX客户组件××
9构建支持Ajax的控件××
10利用Ajax Control Toolkit开发××
11XML Script××
12拖放技术××
13实现常用的Ajax模式×××
第1章向ASP.NET开发人员介绍Ajax和ASP.NET AJAX扩展框架。基于有关的基础知识和术语,我们将介绍服务器中心开发模型和客户端中心开发模型。采用客户端中心开发模型,可以充分利用DHTML和JavaScript开发Ajax应用,而无需依赖ASP.NET服务器技术。采用服务器中心开发模型,则可以充分利用ASP.NET,把ASP.NET服务器控件与客户端功能结合起来。..
有了以上基础和对ASP.NET AJAX特性的简要介绍之后,第2章和第3章将介绍Microsoft Ajax Library,这是ASP.NET AJAX框架的客户部分。在第2章中,我们将解释一些基本概念,如应用模型(Application model)和客户端页面生命周期等,并概述Microsoft Ajax Library提供的所有特性。第3章中,我们将重点介绍如何使用JavaScript和Microsoft Ajax Library实现面向对象编程。了解了JavaScript语言和JSON的基础知识之后,还将深入介绍Microsoft Ajax Library提供的面向对象构造。
第4章讨论了许多ASP.NET开发人员都会遇到的一种常见情况:将一个现有的ASP.NET应用升级到ASP.NET AJAX。在这一章中,你将认识一组新的服务器控件集,它称为Ajax服务器扩展(Ajax server extensions),并了解这些控件如何帮助你妥善而轻松地改进一个现有的应用程序。
强调了前一章介绍的服务器中心模型之后,第5章将探讨Ajax开发中的一个关键问题:从浏览器向服务器建立异步网络请求。这一章将详细讨论如何使用ASP.NET Web服务、ASP.NET应用服务(如验证和个性化)和桥技术等内容。
后面几章主要强调UpdatePanel控件和部分页面更新机制。从第6章开始,我们解释了如何正确而高效地使用UpdatePanel控件。第7章将揭示部分页面更新机制的底层工作原理,并深入地讨论在此过程中如何对应用程序施加更多的控制。
第8章中,我们将再回过头来讨论Microsoft Ajax Library,分析客户组件模型。这个模型类似于服务器端.NET Framework所用的模型,采用客户组件模型可以使用JavaScript创建组件。利用组件能够轻松地封装和重用客户端代码中的某些部分,并简化支持Ajax的服务器控件的开发。
第9章将讨论支持Ajax的控件,解释客户组件如何与ASP.NET服务器控件关联,从而丰富其功能。在这一章中,你将了解如何构建扩展器(extender)和脚本控件,这是ASP.NET AJAX新引入的两类服务器控件。
第10章专门介绍Ajax Control Toolkit,这是目前最大的支持Ajax的控件集。这个工具包是微软主持的一个开源项目,得到了来自Ajax群体的多方贡献。在这一章中,我们将讨论Ajax Control Toolkit提供的一些支持Ajax的控件,还将介绍开发支持Ajax的控件所用的Toolkit API,以及用于轻松创建动画和视觉效果的Animation框架。
第11章和第12章探讨了ASP.NET AJAX的未来。我们将详细讨论ASP.NET AJAX以后版本中将包含的一些特性。这些特性目前还只是作为评估代码单独打包(包名称为ASP.NET Futures)。在第11章中我们介绍了XML Script,这是一种声明式语言,类似于ASP.NET标记代码,用于在Web页面中实例化客户组件。可以用它执行复杂的客户端代码而无需编写一行JavaScript。第12章专门介绍拖放引擎,它用于在一个Web页面中拖放DOM元素。在这一章中,你将利用客户端中心开发模型和服务器中心开发模型从头开始构建一个支持拖放的购物车。
最后,第13章展示了如何使用ASP.NET AJAX框架实现一些最常见、最有用的Ajax模式。除了实现诸如拖放部件和逻辑导航之类的经典模式外,我们还决定留出一些篇幅介绍编码模式。第13章将介绍一些高级问题,如编写脚本文件的调试版本以及如何扩展Microsoft Ajax Library,从而进一步提高JavaScript开发的生产力。
附录A和附录B专门讨论如何建立安装和使用ASP.NET AJAX所需的工具。附录A介绍了ASP.NET AJAX框架和Ajax Control Toolkit的安装。在此还展示了如何安装Visual Studio模板,以及如何向Visual Studio Toolbox增加服务器控件。附录A中专门有一节介绍如何安装Adventure- Works数据库,本书中的一些例子用到了这个数据库。
附录B介绍了Ajax开发人员必备的一些工具。在此解释了如何安装和使用Firebug,以便在Firefox浏览器中调试Web应用。你还将了解如何安装和使用Web Development Helper和Fiddler来访问浏览器控制台以及调试HTTP业务流。最后一节展示了如何配置Visual Studio 2005以便调试JavaScript代码。
排版约定
本书有以下排版约定:
技术术语用楷体显示。
代码示例和代码片段用等宽字体如Active Object显示。
命名空间和类型以及这些类型的成员也用等宽字体显示。
很多代码段右边会出现编号的注解。在这些代码后面将对这些注解进行更充分地讨论。
在这本书中,我们还会用一些特殊段落强调某些主题,更深入地剖析ASP.NET AJAX和.NET框架。例如:
说明 这些段落提供了.NET Framework的其他详细信息,或者给出了因特网上这些额外信息的来源,其中显示的URL地址到2007年8月1日还都是有效的。
源代码下载
购买了本书的读者都可以从Manning网站得到书中提供的所有程序源代码。可以访问网站www.manning.com/gallo或www.manning.com/ASPNETAJAXinAction来了解下载代码的有关事宜。
作者在线
如果购买了这本书,还可以自由访问一个个人网上论坛——Author Online(作者在线)。你可以访问网站来了解有关这个论坛的详细规则以及订阅和使用这个论坛,获取每一章节的代码,还可以查看书中内容的更新和修正情况。真诚邀请你对这本书做出评论(无论好坏),询问技术问题,你还能从作者和其他ASP.NET AJAX 程序员那里得到帮助。可以从本书网站www.manning. com/gallo或www.manning.com/ASPNETAJAXinAction访问这个论坛。
Manning向读者承诺提供这样一个场所:可以让各个读者之间以及读者与作者之间进行有意义的对话。但对作者的参与程度不做承诺,因为作者的参与和贡献完全是自愿的(而且是无偿的),所以你的问题和评论要更为有趣才能引起作者的关注!
可以通过modulino@gmail.com或者他的博客(aspadvice.com/blogs/garbin)直接与Alessandro联系。
要联系David,可以直接通过david.barkol@neudesic.com或访问他的博客weblogs.asp.net/davidbarkol。
通过rama.vavilala@gmail.com可以直接联系Rama。
关于书名
通过结合内容介绍、概述和指导性示例,实战系列图书可以帮助读者更有效地学习和记忆。根据认知学的研究,人们能记住的知识往往是他们在自主探索中所发现的知识。
尽管Manning出版公司内部没有一个人是认知学方面的专家,但我们相信,要使学到的东西真正成为自己的知识,必须通过探索、试验和复述所学到的知识(这一点很有意思)等几个阶段。只有在主动地探索之后人们才能理解并记住(也就是真正掌握)新鲜事物。人要在实战中学习。实战系列的核心就是通过实例来驱动。这要求读者去尝试,去试验新的代码,并探索新的思想。
选用这个书名还有另外一个更一般的原因:我们的读者往往很忙,他们想利用书来完成一项工作或解决一个问题。读者所要的是能帮助他们随时应对实际问题的书,在关键时候提供关键知识的书。他们需要能够在实战中提供帮助的书。这个系列的书就是专门为这些读者设计的。
关于封面插图
本书封面上的插图是Béarn人,他们居住在法国西南部Béarn地区。这个区域以其鲜明的反差而著称,山谷与高山同在,一直绵延到与西班牙交界的比利牛斯山。
这幅插图取自法国的J.G. St. Saveur著的《旅行百科》,1796年出版。旅游在当时是一个很新的现象,像这样的旅游书很流行,它们向旅游者和在家神游者介绍法国其他地区以及国外的居民。
《旅游百科》中收录的各式各样的图片生动地反映了200年前世界各地的鲜明的不同特色。在那个时期,即使两地仅相距几十英里,人们的服饰也可能是迥异的,单从服饰就可以清楚地区分他们是哪里人。这本旅游书可以活灵活现地反映出那个时代存在的隔离感和距离感,其实除了当今这个无处不联系的时期外,历史上的所有时期都存在着这种距离感。
从那以后,服饰语言发生了很大变化,原先各个地域多种多样的服饰,正在逐步消失。现在即使是不同大洲的居民,通常也很难加以区别。如果从好的一方面看,我们也许是在用文化的多样性和视觉上的多样性来换取个人更为多样化的人生,或者是一种更加多姿多彩、更有意思的才智人生。
这本旅游书中的图片将两百年前的各色地域风情展现在我们眼前,作为Manning公司,我们用这样的封面来赞美计算机行业的强大的创造力和无穷的乐趣。...