出版時(shí)間:2009-3 出版社:清華大學(xué)出版社 作者:Shahran Khosravi 頁數(shù):1229 譯者:劉志忠
Tag標(biāo)簽:無
前言
歡迎使用本書。ASP.NET AJAX框架包括兩個(gè)框架:ASP.NET AJAX客戶端框架和ASP.NET AJAX服務(wù)器端框架。 大家都知道,客戶端編程和服務(wù)器端編程存在很大的差別。產(chǎn)生差別的主要原因是由于客戶端編程缺乏像ASP.NET/.NET Framework一樣功能豐富的編程框架。如果能夠在一個(gè)具有像ASP.NET/.NET框架一樣編程風(fēng)格和能力的框架下編寫您的客戶端程序,那一定會(huì)得到不錯(cuò)的體驗(yàn)。使用ASP.NET AJAX客戶端框架吧!它使得在客戶端編程具有盡可能多的和ASP.NET/.NET一樣豐富的編程特點(diǎn)。這些能力僅受限于客戶端技術(shù)的基礎(chǔ)限制,如JavaScript的限制。 ASP.NET AJAX服務(wù)器端框架擴(kuò)展了ASP.NET框架,從而使得服務(wù)器端能夠支持那些支持AJAX的Web應(yīng)用。ASP.NET AJAX客戶端框架和服務(wù)器端框架一同攜手,來滿足支持AJAX應(yīng)用的客戶端和服務(wù)器的需求。也就是說,ASP.NET AJAX客戶端技術(shù)可以和其他服務(wù)器端技術(shù)一起使用而不僅僅是ASP.NET框架?! ”緯褂锚?dú)特的方法深入分析了ASP.NET AJAX客戶端和服務(wù)器端框架,該方法具有以下特征?! ?實(shí)用真實(shí)示例:本書的討論將基于大量的實(shí)際示例展開,這些示例都可以在您自己的ASP.NET AJAX應(yīng)用中使用?! ?底層機(jī)制分析:本書將深入分析ASP.NET AJAX客戶端和服務(wù)端框架的底層機(jī)制,從而使您可以深入了解它們的工作原理,并對(duì)其進(jìn)行擴(kuò)展以滿足您的應(yīng)用需求。 ● 代碼逐行分析:本書使用了大量的代碼逐行分析,使得您可以在自己的ASP.NET AJAX應(yīng)用中實(shí)現(xiàn)一些類似的功能。 本書讀者對(duì)象 本書主要針對(duì)初次學(xué)習(xí)ASP.NET AJAX的ASP.NET開發(fā)人員。學(xué)習(xí)本書,并不需要具備ASP.NET AJAX的預(yù)備知識(shí)?! ”緯饕獌?nèi)容 本書共包括24章和6個(gè)附錄,分別如下: ● 第1章 AJAX相關(guān)技術(shù) 本章通過示例對(duì)在支持AJAX的Web應(yīng)用中所使用的一些主要技術(shù)進(jìn)行一個(gè)簡單綜述,包括XMLHttpRequest、XML及JSON等。 ● 第2章 JavaScript基本類型擴(kuò)展 本章主要給出了JavaScript的基本類型擴(kuò)展。在其中,您將了解到這些擴(kuò)展類型如何改進(jìn)了JavaScript的基本類型,包括 Array、Boolean、Date、Error、Object及String,并讓您盡可能地像在.NET框架中一樣應(yīng)用這些類型?! ?第3章 內(nèi)置的和自定義異常類型 本章首先深入介紹了ASP.NET AJAX的一些內(nèi)置的異常類型,包括ArgumentException、ArgumentNullException、ArgumentOutOfRangeException、ArgumentTypeException、ArgumentUndefinedException、InvalidOperationException、NotImplementedException及ParameterCountException,然后介紹了一種開發(fā)自定義異常類型的方法,使用該方法實(shí)現(xiàn)了一個(gè)異常DuplicateItemException,然后通過一個(gè)頁面來使用這個(gè)自定義的異常類型?! ?第4章 JavaScript面向?qū)ο缶幊毯皖愋头瓷鋽U(kuò)展 本章首先對(duì)ASP.NET AJAX面向?qū)ο缶幊?OOP)和類型反射擴(kuò)展機(jī)制中一些在底層使用的JavaScript技術(shù)進(jìn)行研究。這些技術(shù)使得JavaScript具有OOP屬性并支持類型反射擴(kuò)展。然后本章詳細(xì)分析了Type類型及其方法。在此,您可以通過學(xué)習(xí)大量的實(shí)例來了解如何定義名稱空間、接口、類及枚舉類型,如何實(shí)現(xiàn)一個(gè)實(shí)現(xiàn)了一個(gè)或多個(gè)接口的類,以及如何實(shí)現(xiàn)一個(gè)從其他類派生出來的類?! ?第5章 事件編程模型擴(kuò)展 本章將循序漸進(jìn)地為您介紹一種實(shí)現(xiàn)自定義ASP.NET客戶端類,并為其添加事件的方法,從而使得類的使用者能夠擴(kuò)展它們的功能來執(zhí)行與應(yīng)用相關(guān)的邏輯。然后提供了一個(gè)具體實(shí)例來使用這種方法。本章還討論了EventArgs、CancelEventArgs和EventHandlerList等幾個(gè)類及其方法和屬性。 ● 第6章 DOM擴(kuò)展 本章主要解釋了ASP.NET AJAX DOM擴(kuò)展如何擴(kuò)展傳統(tǒng)的DOM編程技術(shù),從而使其支持.NET的方法和屬性,以及如何在自己的DOM編程中使用這些擴(kuò)展。本章主要介紹ASP.NET AJAX委托、DomElement和DomEvent客戶端類及其方法和屬性?! ?第7章 組件開發(fā)基礎(chǔ)設(shè)施 本章主要介紹ASP.NET AJAX組件開發(fā)的基礎(chǔ)設(shè)施及其主要接口,包括IDisposable、INotifyDisposing、INotifyPropertyChanged和IContainer以及兩個(gè)重要的類Component和Application。此外,您還可以通過大量的實(shí)例學(xué)習(xí)到如何實(shí)現(xiàn)這些接口以及如何實(shí)現(xiàn)一個(gè)從Component基類派生出來的自定義組件。本章還包括組件的應(yīng)用、組件的生命周期以及應(yīng)用級(jí)事件等?! ?第8章 開發(fā)客戶端控件 本章描述了Control、Label、Image及HyperLink等客戶端控件及其方法和屬性,并給出了使用這些自定義控件的相應(yīng)示例。還給出并討論了一個(gè)自定義Image控件的實(shí)現(xiàn)。該控件擴(kuò)展了ASP.NET AJAX客戶端Image控件的功能?! ?第9章 事件冒泡機(jī)制及客戶端Button控件 本章首先介紹CommandEventArgs事件數(shù)據(jù)類和客戶端Button控件。然后討論了ASP.NET AJAX 事件冒泡機(jī)制,并討論了如何實(shí)現(xiàn)一個(gè)自定義的控件,使其事件冒泡給它的父控件,以及如何實(shí)現(xiàn)一個(gè)自定義控件來捕獲它的子控件所冒泡的事件。本章還實(shí)現(xiàn)了一個(gè)自定義的客戶端控件GridView,該控件使用了ASP.NET AJAX的事件冒泡機(jī)制?! ?第10章 類型描述擴(kuò)展 本章詳細(xì)介紹了TypeDescriptor類和ICustomTypeDescriptor接口。基于此,您將了解到ASP.NET類型描述能力為您的應(yīng)用所帶來的好處:它使得您的客戶端代碼可以獨(dú)立于客戶端代碼所處理的特定的對(duì)象類型。這將使得用戶代碼可以不經(jīng)過修改而與不同的對(duì)象類型進(jìn)行交互。本章實(shí)現(xiàn)了3個(gè)Web頁面,在這些頁面中您可以檢測(cè)任何ASP.NET AJAX類型的屬性、事件和方法。還實(shí)現(xiàn)一個(gè)自定義的客戶端控件CustomTable。該控件使用ASP.NET AJAX類型描述能力來顯示任意類型的數(shù)據(jù)記錄。最后,本章介紹了動(dòng)態(tài)注入元數(shù)據(jù)信息的方法?! ?第11章 數(shù)據(jù)類 本章首先討論了IData接口,然后深入介紹了ASP.NET AJAX的數(shù)據(jù)類DataColumn、DataRow 和DataTable。還實(shí)現(xiàn)一個(gè)自定義控件。該控件實(shí)現(xiàn)了IData接口并可以顯示任何數(shù)據(jù)源(如DataTable)的數(shù)據(jù)?! ?第12章 客戶-服務(wù)器通信 本章主要涉及到ASP.NET AJAX 框架客戶-服務(wù)器通信層及其主要的類,詳細(xì)討論了WebRequest、WebRequestExecutor、WebRequestManager、 NetworkRequestEventArgs 和XMLHttpExecutor,并結(jié)合一些實(shí)例來討論如何在您自己的ASP.NET AJAX 應(yīng)用中使用這些類?! ?第13章 通過SOAP消息使用Web服務(wù) 本章首先詳細(xì)討論了WSDL文檔和SOAP消息,然后結(jié)合一個(gè)實(shí)例給出了使用ASP.NET AJAX框架的客戶/服務(wù)器通信層的類來和Web服務(wù)交互SOAP消息的方法?! ?第14章 通過JSON消息使用Web服務(wù) 本章深入討論了 WebServiceProxy和WebServiceError類,并給了3種不同的途徑來實(shí)現(xiàn)客戶端調(diào)用服務(wù)器端的方法:調(diào)用頁面方法、Web服務(wù)方法及Web服務(wù)橋。還詳細(xì)分析了.asbx文件,給出并實(shí)現(xiàn)了ASP.NET AJAX REST方法調(diào)用-請(qǐng)求-處理基礎(chǔ)設(shè)施的主要組件,包括ScriptHandlerFactory、RestHandlerFactory、RestHandler、HandlerWrapper 和ScriptModule類,并實(shí)現(xiàn)了一個(gè)實(shí)例來使用這些方法。本章還使用這些方法分析了頁面方法調(diào)用和Web服務(wù)橋?! ?第15章 代理類 本章詳細(xì)介紹了與頁面方法、Web服務(wù)橋及Web服務(wù)方法相關(guān)的代理類。接著,本章還討論了服務(wù)器端ScriptManager和ScriptManagerProxy控件,以及服務(wù)器端ScriptManagerProxy控件在父/子頁面方案中的作用。然后還實(shí)現(xiàn)了ASP.NET AJAX 自動(dòng)代理-類-產(chǎn)生器基礎(chǔ)設(shè)施主要組件的完整功能流程,包括ScriptManager、ServiceReferenceCollection、ServiceReference、ClientProxyGenerator 和 RestClientProxy- Handler。您可以看到在應(yīng)用中該基礎(chǔ)設(shè)施如何產(chǎn)生與頁面方法、Web服務(wù)橋、Web服務(wù)方法相關(guān)的代理類。最后本章給出了一個(gè)使用這些方法的實(shí)例?! ?第16章 行為 本章詳細(xì)介紹了Behavior 基類及其方法和屬性,并介紹了如何從該基類派生出新的類來實(shí)現(xiàn)自定義的行為。然后討論了ASP.NET AJAX 控件工具包中的行為基類BehaviorBase,并討論了如何從BehaviorBase類派生新的類來實(shí)現(xiàn)自定義的工具包行為?! ?第17章 服務(wù)器端script控件和extender控件 本章深入介紹了ASP.NET AJAX 服務(wù)器端框架主要組件的完整功能流程,該流程涉及兩類重要服務(wù)器端控件的內(nèi)部功能,即script控件和extender控件。分析這兩類控件有助于您理解服務(wù)器端控件如何和相應(yīng)的客戶端組件進(jìn)行交互,它們之間的異同以及如何實(shí)現(xiàn)自定義的script控件和extender控件。本章所實(shí)現(xiàn)的ASP.NET AJAX服務(wù)器端框架的組件包括:IExtenderControl 、ExtenderControl、IScriptControl、ScriptControl、ScriptDescriptor、ScriptComponent- Descriptor 、ScriptBehaviorDescriptor、ScriptControlDescriptor、ScriptReference、ResolveScript- Reference、ScriptReferenceCollection 和ScriptManager。本章最后實(shí)現(xiàn)了自定義的服務(wù)器端script控件和extender控件,從而使得您可以開發(fā)自己的服務(wù)器端script控件和extender控件?! ?第18章 Web服務(wù)橋與轉(zhuǎn)換器 本章首先給出了一個(gè)使用Amazon Web服務(wù)的、支持Web服務(wù)橋的服務(wù)器端script控件,然后詳細(xì)討論了ASP.NET AJAX 轉(zhuǎn)換器,包括XmlBridgeTransformer和XsltBridgeTransformer。接著,本章使用這些轉(zhuǎn)換器改進(jìn)了支持Web服務(wù)橋的服務(wù)端script控件。還介紹了如何實(shí)現(xiàn)自定義的轉(zhuǎn)換器?! ?第19章 UpdatePanel和ScriptManager 本章使用了大量實(shí)例來學(xué)習(xí)如何實(shí)現(xiàn)異步局部頁面呈現(xiàn),如何實(shí)現(xiàn)觸發(fā)器以及通過多種不同的方法來實(shí)現(xiàn)有條件地更新服務(wù)器端UpdatePanel控件,包括:指定ChildrenAsTrigger屬性,直接將控件添加到其他服務(wù)器端UpdatePanel控件,通過內(nèi)容網(wǎng)頁間接將控件添加到其他服務(wù)器端UpdatePanel控件,通過用戶控件間接將控件添加到其他服務(wù)器端UpdatePanel控件,以及在代碼中顯式調(diào)用它的Update方法。最后,本章實(shí)現(xiàn)了兩個(gè)自定義的、支持局部頁面呈現(xiàn)的服務(wù)器端控件BaseMasterDetailControl和BaseMasterDetailControl2。
內(nèi)容概要
本書以AJAX為核心闡述對(duì)象,介紹了它對(duì)JavaScript所做的各種擴(kuò)展,還介紹了在ASP.NET環(huán)境下創(chuàng)建客戶端應(yīng)用所需的一些核心控件。通過大量的實(shí)例,本書詳述了AJAX的內(nèi)部機(jī)制,并且緊跟時(shí)代潮流,重點(diǎn)描述了如何依靠異步通信機(jī)制,更快、更好、更有效地實(shí)現(xiàn)客戶端和服務(wù)器端之間的通信。
作者簡介
Shahram Khosravi,博士。他是一名資深的軟件工程師、顧問、作家和講師。在面向?qū)ο蟮姆治?、設(shè)計(jì)和編程方面有十多年的經(jīng)驗(yàn)。講授課程包括ASPNET、Web服務(wù)、.NET技術(shù)、XML技術(shù)、C#等。Shahr8m還撰寫了多本關(guān)于ASP、NET的書,并在微軟的MSDN存線文檔以及Dr.Dobb’S Journal、asp.neetPRO等雜志上發(fā)表技術(shù)文章多篇。
書籍目錄
第1章 AJAX相關(guān)技術(shù) 1.1 Google Suggest 1.2 XMLHttpRequest 1.3 XML 1.4 JSON 1.4.1 對(duì)象 1.4.2 數(shù)組 1.4.3 字符串 1.4.4 數(shù)字 1.4.5 null、true和false 1.5 ASP.NET AJAX 1.6 安裝ASP.NET AJAX Extensions和ASP.NET Futures 1.7 小結(jié)第2章 JavaScript基本類型擴(kuò)展 2.1 ASP.NET AJAX Array類型擴(kuò)展 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類型擴(kuò)展 2.3 ASP.NET AJAX Date類型擴(kuò)展 2.4 ASP.NET AJAX Object類型擴(kuò)展 2.5 ASP.NET AJAX String類型擴(kuò)展 2.5.1 endsWith 2.5.2 startsWith 2.5.3 trim 2.5.4 格式化 2.6 ASP.NET AJAX Error類型擴(kuò)展 2.6.1 create 2.6.2 popStackFrame 2.6.3 popStackFrame的內(nèi)部機(jī)理 2.7 小結(jié)第3章 內(nèi)置的和自定義異常類型 3.1 ASP.NET AJAX內(nèi)置異常類型 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 實(shí)現(xiàn)自定義異常類型 3.2.1 實(shí)現(xiàn)自定義異常類型的流程 3.2.2 使用流程 3.2.3 clickCallback 3.2.4 validateInput 3.3 小結(jié)第4章 JavaScript面向?qū)ο缶幊毯皖愋头瓷鋽U(kuò)展 4.1 JavaScript函數(shù) 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 小結(jié)第5章 事件編程模型擴(kuò)展 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 添加一個(gè)事件處理程序 5.2.5 移除一個(gè)事件處理程序 5.3 小結(jié)第6章 DOM擴(kuò)展 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 構(gòu)造函數(shù) 6.5.2 靜態(tài)方法 6.5.3 實(shí)例方法 6.6 使用DomEvent類 6.6.1 Mover 6.6.2 TableProvider 6.7 小結(jié)第7章 組件開發(fā)基礎(chǔ)設(shè)施 7.1 接口 7.1.1 IDisposable 7.1.2 INotifyDisposing 7.1.3 INotifyPropertyChange 7.2 組件 7.3 IContainer 7.4 應(yīng)用 7.4.1 addComponent 7.4.2 removeComponent 7.4.3 getComponents 7.4.4 findComponent 7.5 應(yīng)用生命周期 7.6 組件生命周期 7.7 繼續(xù)應(yīng)用生命周期之旅 7.7.1 endCreateComponents 7.7.2 raiseLoad 7.7.3 應(yīng)用生命周期小結(jié) ……第8章 開發(fā)客戶端控件第9章 事件冒泡機(jī)制及客戶端Button控件第10章 類型描述擴(kuò)展第11章 數(shù)據(jù)類第12章 客戶-服務(wù)器通信第13章 通過SOAP消息使用Web服務(wù)第14章 通過JSON消息使用Web服務(wù)第15章 代理類第16章 行為第17章 服務(wù)器端script控件和extender控件第18章 Web服務(wù)橋和轉(zhuǎn)換器第19章 UpdatePanel和ScriptManager第20章 在用戶控件和自定義控件中使用UpdatePanel第21章 頁面生命周期和異步的局部頁面呈現(xiàn)第22章 ASP.NET AJAX客戶端PageRequestManager第23章 異步局部頁面呈現(xiàn):服務(wù)器端處理第24章 異步局部頁面呈現(xiàn):客戶端處理附錄A XML腳本附錄B 綁定附錄C 動(dòng)作附錄D 數(shù)據(jù)控件附錄E 模板化控件附錄F ListView
章節(jié)摘錄
第1章 AJAX相關(guān)技術(shù) 傳統(tǒng)的Web頁面技術(shù)使用服務(wù)器端技術(shù)和資源來操作其頁面與服務(wù),并將其發(fā)送給它們的終端用戶。傳統(tǒng)Web頁面要求終端用戶將整個(gè)頁面回傳給服務(wù)器,這些頁面在服務(wù)器上可以運(yùn)行需要的服務(wù)器端代碼以向用戶傳送請(qǐng)求的服務(wù)和頁面。換句話說,傳統(tǒng)Web頁面使用了click.and.wait這種對(duì)用戶不友好的交互方式。該方式需要用戶等待一定的時(shí)間,從而打斷了用戶的工作流,因此,降低了用戶的體驗(yàn)。click.and-wait用戶交互模式使得傳統(tǒng)的Web應(yīng)用的表現(xiàn)和用戶體驗(yàn)與相應(yīng)的桌面應(yīng)用相差甚遠(yuǎn)?! JAX(Asynchronous Java ScriptAnd XML)是目前流行的一種w曲應(yīng)用開發(fā)方法,該方法使用HTML、XHTML、CSS、DOM、XML、XSLT和JavaScript等客戶端技術(shù),以及XMLHTTP請(qǐng)求和隱藏框架技術(shù)之類的異步客戶端回調(diào)技術(shù)來開發(fā)更高級(jí)的、響應(yīng)更快速的Web應(yīng)用。這些應(yīng)用將打破click-and-wait交互模式,使用起來很像桌面應(yīng)用。換句話說,AJAX拉近了Web應(yīng)用和相應(yīng)的桌面應(yīng)用之間的差距?! ”菊聦⑹紫扔靡恍┚唧w示例來討論支持AJAX的Web頁面的主要特性?! ?.1 Google Suggest Google SuggestWeb頁面包含一個(gè)支持AJAX的搜索框。當(dāng)您輸入搜索項(xiàng)時(shí),該搜索框能實(shí)現(xiàn)補(bǔ)全搜索項(xiàng)的功能,如圖1-1所示。在后臺(tái),這個(gè)支持AJAX的搜索框使用AJAX技術(shù)異步地從Web服務(wù)器上下載需要的數(shù)據(jù),并將其顯示給終端用戶,但并不打斷用戶和頁面的交互。所有這些客戶和服務(wù)器間的通信都在用戶在搜索框中輸入搜索項(xiàng)時(shí)由后臺(tái)進(jìn)行處理。
編輯推薦
將為您提供開發(fā)ASP.NET AJAX應(yīng)用所必需的技能和知識(shí)。ASP.NET AJAX將ASP.NET/.NET Framework中的服務(wù)器端編程技術(shù)引入到客戶端框架,從而帶來了客戶端編程的豐富特性?!禔SP.NET AJAX編程參考手冊(cè):涵蓋ASP.NET 3.5及2.0》主要闡述ASP.NET AJAX是如何在客戶端模擬這些豐富特性的?! 禔SP.NET AJAX編程參考手冊(cè):涵蓋ASP.NET 3.5及2.0》通過大量實(shí)例、深入的描述以及代碼分析,全面涵蓋了ASP.NET AJAX服務(wù)器端和客戶端框架。書中的所有代碼都通過了ASP.NET 2.0和ASP.NET 3.5的測(cè)試。通過《ASP.NET AJAX編程參考手冊(cè):涵蓋ASP.NET 3.5及2.0》,您將學(xué)習(xí)到這些框架之間是如何進(jìn)行協(xié)同以滿足AJAx應(yīng)用需求的。
圖書封面
圖書標(biāo)簽Tags
無
評(píng)論、評(píng)分、閱讀與下載
ASP.NET AJAX編程參考手冊(cè) PDF格式下載