出版时间:2009-3 出版社:清华大学出版社 作者:Shahran Khosravi 页数:1229 译者:刘志忠
Tag标签:无
前言
欢迎使用本书。ASP.NET AJAX框架包括两个框架:ASP.NET AJAX客户端框架和ASP.NET AJAX服务器端框架。 大家都知道,客户端编程和服务器端编程存在很大的差别。产生差别的主要原因是由于客户端编程缺乏像ASP.NET/.NET Framework一样功能丰富的编程框架。如果能够在一个具有像ASP.NET/.NET框架一样编程风格和能力的框架下编写您的客户端程序,那一定会得到不错的体验。使用ASP.NET AJAX客户端框架吧!它使得在客户端编程具有尽可能多的和ASP.NET/.NET一样丰富的编程特点。这些能力仅受限于客户端技术的基础限制,如JavaScript的限制。 ASP.NET AJAX服务器端框架扩展了ASP.NET框架,从而使得服务器端能够支持那些支持AJAX的Web应用。ASP.NET AJAX客户端框架和服务器端框架一同携手,来满足支持AJAX应用的客户端和服务器的需求。也就是说,ASP.NET AJAX客户端技术可以和其他服务器端技术一起使用而不仅仅是ASP.NET框架。 本书使用独特的方法深入分析了ASP.NET AJAX客户端和服务器端框架,该方法具有以下特征。 ● 实用真实示例:本书的讨论将基于大量的实际示例展开,这些示例都可以在您自己的ASP.NET AJAX应用中使用。 ● 底层机制分析:本书将深入分析ASP.NET AJAX客户端和服务端框架的底层机制,从而使您可以深入了解它们的工作原理,并对其进行扩展以满足您的应用需求。 ● 代码逐行分析:本书使用了大量的代码逐行分析,使得您可以在自己的ASP.NET AJAX应用中实现一些类似的功能。 本书读者对象 本书主要针对初次学习ASP.NET AJAX的ASP.NET开发人员。学习本书,并不需要具备ASP.NET AJAX的预备知识。 本书主要内容 本书共包括24章和6个附录,分别如下: ● 第1章 AJAX相关技术 本章通过示例对在支持AJAX的Web应用中所使用的一些主要技术进行一个简单综述,包括XMLHttpRequest、XML及JSON等。 ● 第2章 JavaScript基本类型扩展 本章主要给出了JavaScript的基本类型扩展。在其中,您将了解到这些扩展类型如何改进了JavaScript的基本类型,包括 Array、Boolean、Date、Error、Object及String,并让您尽可能地像在.NET框架中一样应用这些类型。 ● 第3章 内置的和自定义异常类型 本章首先深入介绍了ASP.NET AJAX的一些内置的异常类型,包括ArgumentException、ArgumentNullException、ArgumentOutOfRangeException、ArgumentTypeException、ArgumentUndefinedException、InvalidOperationException、NotImplementedException及ParameterCountException,然后介绍了一种开发自定义异常类型的方法,使用该方法实现了一个异常DuplicateItemException,然后通过一个页面来使用这个自定义的异常类型。 ● 第4章 JavaScript面向对象编程和类型反射扩展 本章首先对ASP.NET AJAX面向对象编程(OOP)和类型反射扩展机制中一些在底层使用的JavaScript技术进行研究。这些技术使得JavaScript具有OOP属性并支持类型反射扩展。然后本章详细分析了Type类型及其方法。在此,您可以通过学习大量的实例来了解如何定义名称空间、接口、类及枚举类型,如何实现一个实现了一个或多个接口的类,以及如何实现一个从其他类派生出来的类。 ● 第5章 事件编程模型扩展 本章将循序渐进地为您介绍一种实现自定义ASP.NET客户端类,并为其添加事件的方法,从而使得类的使用者能够扩展它们的功能来执行与应用相关的逻辑。然后提供了一个具体实例来使用这种方法。本章还讨论了EventArgs、CancelEventArgs和EventHandlerList等几个类及其方法和属性。 ● 第6章 DOM扩展 本章主要解释了ASP.NET AJAX DOM扩展如何扩展传统的DOM编程技术,从而使其支持.NET的方法和属性,以及如何在自己的DOM编程中使用这些扩展。本章主要介绍ASP.NET AJAX委托、DomElement和DomEvent客户端类及其方法和属性。 ● 第7章 组件开发基础设施 本章主要介绍ASP.NET AJAX组件开发的基础设施及其主要接口,包括IDisposable、INotifyDisposing、INotifyPropertyChanged和IContainer以及两个重要的类Component和Application。此外,您还可以通过大量的实例学习到如何实现这些接口以及如何实现一个从Component基类派生出来的自定义组件。本章还包括组件的应用、组件的生命周期以及应用级事件等。 ● 第8章 开发客户端控件 本章描述了Control、Label、Image及HyperLink等客户端控件及其方法和属性,并给出了使用这些自定义控件的相应示例。还给出并讨论了一个自定义Image控件的实现。该控件扩展了ASP.NET AJAX客户端Image控件的功能。 ● 第9章 事件冒泡机制及客户端Button控件 本章首先介绍CommandEventArgs事件数据类和客户端Button控件。然后讨论了ASP.NET AJAX 事件冒泡机制,并讨论了如何实现一个自定义的控件,使其事件冒泡给它的父控件,以及如何实现一个自定义控件来捕获它的子控件所冒泡的事件。本章还实现了一个自定义的客户端控件GridView,该控件使用了ASP.NET AJAX的事件冒泡机制。 ● 第10章 类型描述扩展 本章详细介绍了TypeDescriptor类和ICustomTypeDescriptor接口。基于此,您将了解到ASP.NET类型描述能力为您的应用所带来的好处:它使得您的客户端代码可以独立于客户端代码所处理的特定的对象类型。这将使得用户代码可以不经过修改而与不同的对象类型进行交互。本章实现了3个Web页面,在这些页面中您可以检测任何ASP.NET AJAX类型的属性、事件和方法。还实现一个自定义的客户端控件CustomTable。该控件使用ASP.NET AJAX类型描述能力来显示任意类型的数据记录。最后,本章介绍了动态注入元数据信息的方法。 ● 第11章 数据类 本章首先讨论了IData接口,然后深入介绍了ASP.NET AJAX的数据类DataColumn、DataRow 和DataTable。还实现一个自定义控件。该控件实现了IData接口并可以显示任何数据源(如DataTable)的数据。 ● 第12章 客户-服务器通信 本章主要涉及到ASP.NET AJAX 框架客户-服务器通信层及其主要的类,详细讨论了WebRequest、WebRequestExecutor、WebRequestManager、 NetworkRequestEventArgs 和XMLHttpExecutor,并结合一些实例来讨论如何在您自己的ASP.NET AJAX 应用中使用这些类。 ● 第13章 通过SOAP消息使用Web服务 本章首先详细讨论了WSDL文档和SOAP消息,然后结合一个实例给出了使用ASP.NET AJAX框架的客户/服务器通信层的类来和Web服务交互SOAP消息的方法。 ● 第14章 通过JSON消息使用Web服务 本章深入讨论了 WebServiceProxy和WebServiceError类,并给了3种不同的途径来实现客户端调用服务器端的方法:调用页面方法、Web服务方法及Web服务桥。还详细分析了.asbx文件,给出并实现了ASP.NET AJAX REST方法调用-请求-处理基础设施的主要组件,包括ScriptHandlerFactory、RestHandlerFactory、RestHandler、HandlerWrapper 和ScriptModule类,并实现了一个实例来使用这些方法。本章还使用这些方法分析了页面方法调用和Web服务桥。 ● 第15章 代理类 本章详细介绍了与页面方法、Web服务桥及Web服务方法相关的代理类。接着,本章还讨论了服务器端ScriptManager和ScriptManagerProxy控件,以及服务器端ScriptManagerProxy控件在父/子页面方案中的作用。然后还实现了ASP.NET AJAX 自动代理-类-产生器基础设施主要组件的完整功能流程,包括ScriptManager、ServiceReferenceCollection、ServiceReference、ClientProxyGenerator 和 RestClientProxy- Handler。您可以看到在应用中该基础设施如何产生与页面方法、Web服务桥、Web服务方法相关的代理类。最后本章给出了一个使用这些方法的实例。 ● 第16章 行为 本章详细介绍了Behavior 基类及其方法和属性,并介绍了如何从该基类派生出新的类来实现自定义的行为。然后讨论了ASP.NET AJAX 控件工具包中的行为基类BehaviorBase,并讨论了如何从BehaviorBase类派生新的类来实现自定义的工具包行为。 ● 第17章 服务器端script控件和extender控件 本章深入介绍了ASP.NET AJAX 服务器端框架主要组件的完整功能流程,该流程涉及两类重要服务器端控件的内部功能,即script控件和extender控件。分析这两类控件有助于您理解服务器端控件如何和相应的客户端组件进行交互,它们之间的异同以及如何实现自定义的script控件和extender控件。本章所实现的ASP.NET AJAX服务器端框架的组件包括:IExtenderControl 、ExtenderControl、IScriptControl、ScriptControl、ScriptDescriptor、ScriptComponent- Descriptor 、ScriptBehaviorDescriptor、ScriptControlDescriptor、ScriptReference、ResolveScript- Reference、ScriptReferenceCollection 和ScriptManager。本章最后实现了自定义的服务器端script控件和extender控件,从而使得您可以开发自己的服务器端script控件和extender控件。 ● 第18章 Web服务桥与转换器 本章首先给出了一个使用Amazon Web服务的、支持Web服务桥的服务器端script控件,然后详细讨论了ASP.NET AJAX 转换器,包括XmlBridgeTransformer和XsltBridgeTransformer。接着,本章使用这些转换器改进了支持Web服务桥的服务端script控件。还介绍了如何实现自定义的转换器。 ● 第19章 UpdatePanel和ScriptManager 本章使用了大量实例来学习如何实现异步局部页面呈现,如何实现触发器以及通过多种不同的方法来实现有条件地更新服务器端UpdatePanel控件,包括:指定ChildrenAsTrigger属性,直接将控件添加到其他服务器端UpdatePanel控件,通过内容网页间接将控件添加到其他服务器端UpdatePanel控件,通过用户控件间接将控件添加到其他服务器端UpdatePanel控件,以及在代码中显式调用它的Update方法。最后,本章实现了两个自定义的、支持局部页面呈现的服务器端控件BaseMasterDetailControl和BaseMasterDetailControl2。
内容概要
本书以AJAX为核心阐述对象,介绍了它对JavaScript所做的各种扩展,还介绍了在ASP.NET环境下创建客户端应用所需的一些核心控件。通过大量的实例,本书详述了AJAX的内部机制,并且紧跟时代潮流,重点描述了如何依靠异步通信机制,更快、更好、更有效地实现客户端和服务器端之间的通信。
作者简介
Shahram Khosravi,博士。他是一名资深的软件工程师、顾问、作家和讲师。在面向对象的分析、设计和编程方面有十多年的经验。讲授课程包括ASPNET、Web服务、.NET技术、XML技术、C#等。Shahr8m还撰写了多本关于ASP、NET的书,并在微软的MSDN存线文档以及Dr.Dobb’S Journal、asp.neetPRO等杂志上发表技术文章多篇。
书籍目录
第1章 AJAX相关技术 1.1 Google Suggest 1.2 XMLHttpRequest 1.3 XML 1.4 JSON 1.4.1 对象 1.4.2 数组 1.4.3 字符串 1.4.4 数字 1.4.5 null、true和false 1.5 ASP.NET AJAX 1.6 安装ASP.NET AJAX Extensions和ASP.NET Futures 1.7 小结第2章 JavaScript基本类型扩展 2.1 ASP.NET AJAX Array类型扩展 2.1.1 add 2.1.2 addRange 2.1.3 clear 2.1.4 clone 2.1.5 contains 2.1.6 enqueue 和dequeue 2.1.7 forEach 2.1.8 indexOf 2.1.9 insert 2.1.10 parse 2.1.11 remove 2.1.12 removeAt 2.2 ASP.NET AJAX Boolean类型扩展 2.3 ASP.NET AJAX Date类型扩展 2.4 ASP.NET AJAX Object类型扩展 2.5 ASP.NET AJAX String类型扩展 2.5.1 endsWith 2.5.2 startsWith 2.5.3 trim 2.5.4 格式化 2.6 ASP.NET AJAX Error类型扩展 2.6.1 create 2.6.2 popStackFrame 2.6.3 popStackFrame的内部机理 2.7 小结第3章 内置的和自定义异常类型 3.1 ASP.NET AJAX内置异常类型 3.1.1 ArgumentException 3.1.2 ArgumentNullException 3.1.3 ArgumentOutOfRangeException 3.1.4 ArgumentTypeException 3.1.5 ArgumentUndefinedException 3.1.6 InvalidOperationException 3.1.7 NotImplementedException 3.1.8 ParameterCountException 3.2 实现自定义异常类型 3.2.1 实现自定义异常类型的流程 3.2.2 使用流程 3.2.3 clickCallback 3.2.4 validateInput 3.3 小结第4章 JavaScript面向对象编程和类型反射扩展 4.1 JavaScript函数 4.2 JavaScript类 4.3 Type 4.4 registerClass 4.5 getName 4.6 isClass 4.7 registerNamespace 4.8 isNamespace 4.9 registerInterface 4.10 getInterfaces 4.11 isInterface 4.12 继承 4.13 getBaseType 4.14 initializeBase 4.15 resolveInheritance 4.16 callBaseMethod 4.17 getBaseMethod 4.18 implementsInterface 4.19 inheritsFrom 4.20 isImplementedBy 4.21 getRootNamespaces 4.22 parse 4.23 registerEnum 4.24 isEnum 4.25 isFlags 4.26 小结第5章 事件编程模型扩展 5.1 事件编程模型 5.1.1 Sys.EventArgs 5.1.2 Sys.CancelEventArgs 5.1.3 EventHandlerList 5.2 使用事件编程 5.2.1 基本类 5.2.2 事件 5.2.3 ShoppingCart 5.2.4 添加一个事件处理程序 5.2.5 移除一个事件处理程序 5.3 小结第6章 DOM扩展 6.1 DomElement 6.1.1 getElementById 6.1.2 addCssClass 6.1.3 containsCssClass 6.1.4 removeCssClass 6.1.5 toggleCssClass 6.1.6 getLocation 6.1.7 setLocation 6.1.8 getBounds 6.2 MouseButton 6.3 Key 6.4 委托 6.4.1 Namespace 6.4.2 Mover 6.4.3 TextProvider 6.4.4 ImageProvider 6.5 DomEvent 6.5.1 构造函数 6.5.2 静态方法 6.5.3 实例方法 6.6 使用DomEvent类 6.6.1 Mover 6.6.2 TableProvider 6.7 小结第7章 组件开发基础设施 7.1 接口 7.1.1 IDisposable 7.1.2 INotifyDisposing 7.1.3 INotifyPropertyChange 7.2 组件 7.3 IContainer 7.4 应用 7.4.1 addComponent 7.4.2 removeComponent 7.4.3 getComponents 7.4.4 findComponent 7.5 应用生命周期 7.6 组件生命周期 7.7 继续应用生命周期之旅 7.7.1 endCreateComponents 7.7.2 raiseLoad 7.7.3 应用生命周期小结 ……第8章 开发客户端控件第9章 事件冒泡机制及客户端Button控件第10章 类型描述扩展第11章 数据类第12章 客户-服务器通信第13章 通过SOAP消息使用Web服务第14章 通过JSON消息使用Web服务第15章 代理类第16章 行为第17章 服务器端script控件和extender控件第18章 Web服务桥和转换器第19章 UpdatePanel和ScriptManager第20章 在用户控件和自定义控件中使用UpdatePanel第21章 页面生命周期和异步的局部页面呈现第22章 ASP.NET AJAX客户端PageRequestManager第23章 异步局部页面呈现:服务器端处理第24章 异步局部页面呈现:客户端处理附录A XML脚本附录B 绑定附录C 动作附录D 数据控件附录E 模板化控件附录F ListView
章节摘录
第1章 AJAX相关技术 传统的Web页面技术使用服务器端技术和资源来操作其页面与服务,并将其发送给它们的终端用户。传统Web页面要求终端用户将整个页面回传给服务器,这些页面在服务器上可以运行需要的服务器端代码以向用户传送请求的服务和页面。换句话说,传统Web页面使用了click.and.wait这种对用户不友好的交互方式。该方式需要用户等待一定的时间,从而打断了用户的工作流,因此,降低了用户的体验。click.and-wait用户交互模式使得传统的Web应用的表现和用户体验与相应的桌面应用相差甚远。 AJAX(Asynchronous Java ScriptAnd XML)是目前流行的一种w曲应用开发方法,该方法使用HTML、XHTML、CSS、DOM、XML、XSLT和JavaScript等客户端技术,以及XMLHTTP请求和隐藏框架技术之类的异步客户端回调技术来开发更高级的、响应更快速的Web应用。这些应用将打破click-and-wait交互模式,使用起来很像桌面应用。换句话说,AJAX拉近了Web应用和相应的桌面应用之间的差距。 本章将首先用一些具体示例来讨论支持AJAX的Web页面的主要特性。 1.1 Google Suggest Google SuggestWeb页面包含一个支持AJAX的搜索框。当您输入搜索项时,该搜索框能实现补全搜索项的功能,如图1-1所示。在后台,这个支持AJAX的搜索框使用AJAX技术异步地从Web服务器上下载需要的数据,并将其显示给终端用户,但并不打断用户和页面的交互。所有这些客户和服务器间的通信都在用户在搜索框中输入搜索项时由后台进行处理。
编辑推荐
将为您提供开发ASP.NET AJAX应用所必需的技能和知识。ASP.NET AJAX将ASP.NET/.NET Framework中的服务器端编程技术引入到客户端框架,从而带来了客户端编程的丰富特性。《ASP.NET AJAX编程参考手册:涵盖ASP.NET 3.5及2.0》主要阐述ASP.NET AJAX是如何在客户端模拟这些丰富特性的。 《ASP.NET AJAX编程参考手册:涵盖ASP.NET 3.5及2.0》通过大量实例、深入的描述以及代码分析,全面涵盖了ASP.NET AJAX服务器端和客户端框架。书中的所有代码都通过了ASP.NET 2.0和ASP.NET 3.5的测试。通过《ASP.NET AJAX编程参考手册:涵盖ASP.NET 3.5及2.0》,您将学习到这些框架之间是如何进行协同以满足AJAx应用需求的。
图书封面
图书标签Tags
无
评论、评分、阅读与下载