出版時間:2009-9 出版社:機(jī)械工業(yè)出版社 作者:(美)卡爾德諾 等著,羅江華 等譯 頁數(shù):401
Tag標(biāo)簽:無
前言
介紹 服務(wù)器控件是我們所構(gòu)建的ASP.NET應(yīng)用程序不可或缺的一方面.它們將瀏覽器外觀和服務(wù)器功能封裝于一個可重用的對象之中.它們可以在一個單獨(dú)的ASP.NET應(yīng)用程序中跨多個頁面使用,同時還可以跨多個ASP.NET應(yīng)用程序使用.ASP.NET有許多預(yù)構(gòu)建的服務(wù)器控件.我們有一些簡單的控件(例如,標(biāo)簽),還有一些類似GridView這樣的復(fù)雜控件.我們可以創(chuàng)建自己的服務(wù)器控件來實現(xiàn)沒有一個現(xiàn)有控件可以滿足的需求,只需要通過繼承合適的基類然后重載所需的方法,即可實現(xiàn)?! ∵@種使用服務(wù)器控件的方式封裝了瀏覽器的外觀和服務(wù)器功能的模式,從起初的ASP.NET1.0開始就很好地為我們的需求服務(wù),但是我們對服務(wù)器控件的需求一直在改變。 最近剛出現(xiàn)的新服務(wù)器控件需求,就是與AJAX功能的結(jié)合能夠直接放在服務(wù)器控件的能力. 這種需求出現(xiàn)的原因是,我們的Web應(yīng)用程序需要更立即的響應(yīng)以及比傳統(tǒng)ASP.NET控件提供的重畫整個屏幕的那種模式更直觀的交互性。這種需求已經(jīng)浮現(xiàn)出來,因為用戶正在使用類似Gmail、Live.com、Yahoo!Mail以及其他一些不需要每次點擊一個按鈕或需要接收新數(shù)據(jù)時重畫屏幕這樣的站點.所以,它們選擇了AJSX來獲取新的數(shù)據(jù),然后基于所取得的新數(shù)據(jù)來更新或添加屏幕的一部分.因為這些站點的大量應(yīng)用,用戶在使用這些站點的過程中已經(jīng)習(xí)慣了這種體驗,他們期望其他站點也能夠像他們所喜好的這些站點一樣,表現(xiàn)得同樣優(yōu)雅?! ∫驗槲覀兊挠脩粽谝笠环N本質(zhì)上使用了AJAX的站點體驗,我們使用服務(wù)器控件來構(gòu)建我們的ASP.NET站點,我們需要一個簡單的方式來創(chuàng)建服務(wù)器控件,不僅需要封裝瀏覽器外觀和服務(wù)器功能,而且還要包含AJAX的功能,這樣服務(wù)器控件才啟用了AJAX功能. 退一步看,不像其他一些你可能已經(jīng)讀到過的技術(shù),ASP.NETAJAX服務(wù)器控件沒有提供任何不能實現(xiàn)的東西.我們總是能夠?qū)JAX功能嵌入服務(wù)器控件中……這還真苦惱?! ∥覀冊泻脦追N方法在服務(wù)器控件中包含JavaScript,比如將其作為一個資源嵌入,但是我們最終其實還是要做相同的三個任務(wù).為了讓我們的服務(wù)器控件具有客戶端的兼容性,我們總是需要連接幾個字符串來構(gòu)成一個JavaScript語句和功能,寫探測瀏覽器的語句來確保JavaScript有跨瀏覽器的兼容性,然后添加屬性或呈現(xiàn)出附著JavaScript功能到服務(wù)器控件的客戶端版本的HTML.這并非不可能,但是這通常有某種錯誤傾向,而且總是有這種服務(wù)器代碼和JavaScript的混合,而變得很難維護(hù),甚至是更難以閱讀。另外,如果你有幾個擁有客戶端能力的服務(wù)器控件,要確保每個服務(wù)器控件要求的客戶端功能在呈現(xiàn)到瀏覽器時沒有相互覆蓋,這是很困難(并非不可能)的事情.跟蹤到那樣的問題也總是要大約有趣的一個小時吧。 如果我們想要包含一個用戶能在服務(wù)器控件中點擊按鈕時與服務(wù)器異步通信的機(jī)制,那么困難度就會呈指數(shù)上升.就算是有一個通信庫的幫助器工具,讓控件正確地和服務(wù)器通信還是需要一些訣竅?! ∵@些妨礙很有問題,會導(dǎo)致一些不好的編程習(xí)慣和代碼,會嚇跑一些程序員,讓它們甚至不敢嘗試在它們的服務(wù)器控件中包含進(jìn)AJAX功能?! ∵@些問題正是微軟ASP.NETAJAX所解決掉的問題?! ≡诒緯?,我們教你如何使用ASP.NETAJAX來創(chuàng)建封裝了AJAX功能的服務(wù)器控件.ASP.NETAJAX提供了服務(wù)器和客戶端編程的構(gòu)建模型,用來輕易地添加AJAX能力到服務(wù)器控件.但是ASP.NETAJAX減少了給服務(wù)器控件添加AJAX能力的復(fù)雜性,我們可以創(chuàng)建那些有AJAX能力的服務(wù)器控件,只會受到自己的創(chuàng)造力的限制.如果我們想要一個能夠自己根據(jù)新數(shù)據(jù)更新的列表框,如果我們想要一個能動態(tài)從服務(wù)器生成預(yù)先鍵入(type-ahead)的文本框,或者我們想要一個按鈕來提交地址去驗證,我們都可以輕易地通過ASP.NETAJAX來完成這些事情。
內(nèi)容概要
本書介紹了如何使用ASP.NET AJAX來創(chuàng)建具有AJAX功能的服務(wù)器端控件,通篇都結(jié)合ASP.NET AJAX的三個方面:Microsoft AJAX庫、ASP.NET 2.0 AJAX擴(kuò)展以及ASP.NET AJAX控件工具箱來進(jìn)行探討。本書被分成了四個主要部分。第一部分主要聚焦Micosoft AJAX庫和JavaScript語言。第二部分主要講述創(chuàng)建分布式的啟用AJAX的控件。第三部分介紹通信,闡述了客戶端控件與服務(wù)器端交流時的不同之處。最后,在第四部分,重點介紹了ASP.NET AJAX控件工具箱的相關(guān)知識。 本書內(nèi)容詳實,結(jié)構(gòu)清晰,圖文并茂,可作為相關(guān)技術(shù)人員的參考書籍。
作者簡介
Adam Calderon是interknowlogy公司應(yīng)用程序開發(fā)實踐團(tuán)隊負(fù)責(zé)人也是微軟MVP。他從Alpha版本開始對ASP.NET AJAX進(jìn)行研究,并且將這項技術(shù)率先應(yīng)用到了ATLAS訪問程序中。他是微軟UI服務(wù)器框架咨詢理事會的成員,參與引導(dǎo)微軟ASP.NET平臺未來的發(fā)展方向。Adam也是開發(fā)社區(qū)的活躍
書籍目錄
譯者序?qū)Ρ緯馁澴u(yù)序言前言致謝第一部分 客戶端代碼 第1章 JavaScript編程 1.1 常規(guī)的JavaScript 1.2 string 1.3 面向?qū)ο驤avaScript編程 1.4 小結(jié) 第2章 微軟AJAX庫編程 2.1 擴(kuò)展內(nèi)置的JavaScript類型 2.2 擴(kuò)展微軟 AJAX庫 2.3 重要的新類型 2.4 維護(hù)范圍 2.5 小結(jié)第二部分 控件 第3章 組件 3.1 組件定義 3.2 Sys.Component 3.3 控件 3.4 behavior 3.5 小結(jié) 第4章 Sys.Application 4.1 背景資料 4.2 組件管理 4.3 初始化流程 4.4 unload流程 4.5 小結(jié) 第5章 為服務(wù)器控件添加客戶端能力 5.1 腳本生成體系結(jié)構(gòu) 5.2 使用ExtenderControl添加客戶端behavior 5.3 使用ScriptControl添加客戶端功能 5.4 使用IScriptControl接口添加客戶端功能到復(fù)合控件中 5.5 小結(jié) 第6章 ASP.NET AJAX本地化 6.1 ASP.NET中的本地化 6.2 ASP.NET AJAX本地化 6.3 小結(jié) 第7章 在局部回傳環(huán)境中進(jìn)行控件開發(fā) 7.1 UpdatePanel行為 7.2 局部回傳在客戶端組件的效果 7.3 JavaScript語句和文件的加載 7.4 Sys.Application 事件 7.5 小結(jié)第三部分 通信 第8章 ASP.NET AJAX 通信架構(gòu) 第9章 應(yīng)用程序服務(wù)第四部分 AJAX控件工具箱 第10章 ASP.NET AJAX 控件工具箱架構(gòu) 第11章 使用ASP.NET AJAX工具箱給服務(wù)器控件添加客戶端功能第五部分 附錄 附錄A Visual Studio 2008中的JavaScript 附錄B 驗證方法參數(shù) 附錄C ASP NET handlers和modules 附錄D 客戶端錯誤處理代碼
章節(jié)摘錄
產(chǎn)品類為前面講過的產(chǎn)品服務(wù)提供方法簽名和數(shù)據(jù)類型聲明。這個代理類從概念來說與生成Web服務(wù)代理類相似,在.NET中與Web服務(wù)工作,同時提供了許多抽象類,使得這一模型如此成功。依賴于服務(wù)器生成產(chǎn)品類是用來創(chuàng)建操作一個實例類,這個實例類被初始化,運(yùn)用新的操作符或者提供兩種不同的方式與產(chǎn)品服務(wù)交互的靜態(tài)類。實例的實現(xiàn)提供了一種靈活的調(diào)用服務(wù)的方式,使用一套獨(dú)特的設(shè)定來實現(xiàn)每個調(diào)用。靜態(tài)實現(xiàn)提供了一個全球化的方法來調(diào)用服務(wù),鞏固設(shè)置,并利用它們的實現(xiàn)每個調(diào)用。在我們討論產(chǎn)品類之后,我們指出了我們所支持的方法的區(qū)別,以及它們所提供的優(yōu)勢?! ∪绯绦蚯鍐?-20所示,在JavaScript函數(shù)表明了調(diào)用靜態(tài)代理類時的一種普通模式,這個靜態(tài)代理類提供了一種方法處理尋找服務(wù)器和兩個回調(diào)函數(shù)處理異步響應(yīng)。用產(chǎn)品類工作時,首先要了解的是命名空間從何而來。所有代理類都要使用的命名空問,是取決于Service-Contract屬性的命名空間性質(zhì)應(yīng)用于服務(wù)類。就我們而言,我們使用的是ajaxbooksam-ple.com,它是當(dāng)我們創(chuàng)建自己的激活A(yù)JAX WCF服務(wù)時所使用的名字?! ≡诖砩善陂g,在代理類上為每個操作創(chuàng)建一個方法,這些方法被服務(wù)公開。這些方法本身由一種與服務(wù)器略有不同的簽名組成,其中部分原因是啟動了產(chǎn)品類WebServiceProxy的基礎(chǔ)服務(wù)。在我們的Lookup方法中,有一個附加的參數(shù)設(shè)置,其中包括一個可選的成功回調(diào)函數(shù)指針,一個可選的失敗回調(diào)函數(shù)指針和一個可選的用戶上下文參數(shù)。當(dāng)異步請求結(jié)束的時候,這兩個回調(diào)函數(shù)被代理類用來回調(diào)進(jìn)JavaScript代碼用戶上下文參數(shù)提供了一種方式來傳遞用戶自定義的異步調(diào)用數(shù)據(jù),并在調(diào)用結(jié)束之后使其可用。當(dāng)你有一個處理所有服務(wù)操作的請求和你需要復(fù)交的上下文信息,來成功封裝調(diào)用的共同回調(diào)函數(shù)時,這將會很有用?! ‘?dāng)Web服務(wù)請求成功,并且傳遞JavaScript對象表示的JSON反串行化結(jié)果,用戶上下文值和Web服務(wù)方法名被調(diào)用時,onSuccess回調(diào)函數(shù)將被調(diào)用。當(dāng)Web服務(wù)請求失敗,并傳遞一個WebServiceError對象實例,用戶上下文值和Web服務(wù)方法名被調(diào)用時,onFfiled回調(diào)函數(shù)將會被調(diào)用。被傳人的WebServiceError對象包含一個標(biāo)志位標(biāo)明請求是否已超時,以及請求的錯誤信息、棧追蹤、異常類型和狀態(tài)碼(見表8-4)。這些值可以用來幫助判定傳輸過程中發(fā)生的錯誤類型。
媒體關(guān)注與評論
“如果你是一位ASP.NET開發(fā)人員,并且正在尋找使用AJAX技術(shù)來開發(fā)基于Web 2.0應(yīng)用程序的捷徑,那么本書正是你需要的。使用你了解到的工具和方法來構(gòu)建一個具有超強(qiáng)交互的AJAX功能正是當(dāng)代Web應(yīng)用程序所需要的?!薄 猄hawn Burke 微軟AJAX控件工具箱主管 “你知道什么令人沮喪?”當(dāng)我閱讀或聽到一種技術(shù),并開始使用它,然后因為文檔提供的示例概念過于簡單或者一本僅對文檔進(jìn)行簡單介紹的參考書籍時,就是這樣的心情。Adam Calderon和Joel Rumerman將使你構(gòu)建ASP.NET AJAX服務(wù)器控件的技能更上一層樓。它們不僅為你展示應(yīng)該如何使用這項技術(shù),而且還深入地探討了其內(nèi)部機(jī)制。本書適合那些想要通過自定義方式來封裝一些比UpdatePanel控件更復(fù)雜的控件的讀者。如果你正在尋找這樣一本資料,那么這本書是最好的了?!薄 猅homas Lewis 微軟Web用戶體驗宣傳經(jīng)理 “本書是講述AJAX框架方面最完整、最權(quán)威的一本指南,作者對該項技術(shù)的靈活性、擴(kuò)展性進(jìn)行了深入淺出的剖析,本書適合初級、高級開發(fā)人員?!薄 狫ason.Schmitt Steelbox Networks公司產(chǎn)品副總裁 眾望所歸“Adam Calderon和Joel Rumerman推出了這本以構(gòu)建AJAX服務(wù)器控件為主題的書籍。本書是專門針對ASP.NET AJAX開發(fā)人員的“紅藥丸”(參看電影《黑客帝國》)。自定義控件和組件是所有.NET開發(fā)人員進(jìn)行代碼重用的最好機(jī)會,本書將控件開發(fā)引入了AJAX時代?!薄 狫oe Stagner 微軟開發(fā)工具和平臺高級程序經(jīng)理 本書得到了微軟核心技術(shù)團(tuán)隊負(fù)責(zé)人和多位作者的支持。該系列的作者團(tuán)隊中匯聚了很多技術(shù)專家,他們有的在微軟從事軟件技術(shù)架構(gòu)、軟件開發(fā)工作,還有來自外界社區(qū)的開發(fā)人員?! ?Don Box 微軟架構(gòu)師 對專業(yè).NET開發(fā)者來說,本書是一個重要資源。它涵蓋了所有的基礎(chǔ)知識,從專家的觀點到引證,再到操作方式。這一系列的書籍是那些想擴(kuò)展基礎(chǔ)知識和專業(yè)技能人員的必備書籍?! ?John Montgomery 微軟開發(fā)區(qū)、主群組程序經(jīng)理 本系列包含對開發(fā)者來說很重要的信息,他們需要從.NET Framework中獲得大量信息。我們的作者都是選自創(chuàng)造這些技術(shù)的關(guān)鍵人物,也是最受尊敬的專業(yè)人員?! ?Brad Abrams 微軟組群程序經(jīng)理
編輯推薦
ASP.NET AJAX服務(wù)器控件甚至能封裝最強(qiáng)大的AJAX功能。幫助你構(gòu)建更加優(yōu)雅、可維護(hù)和可擴(kuò)展的應(yīng)用程序。這是第一本針對有經(jīng)驗的ASP.NET開發(fā)人員所編寫的用于實現(xiàn)自定義ASP.NET AJAX服務(wù)器控件的書籍。不同于其他ASP.NET AJAX書籍,《ASP.NET AJAX服務(wù)器控件高級編程(.NET3.5版)》專注于服務(wù)器控件的開發(fā)以及在ASP.NET 3.5 AJAX中所展現(xiàn)出來的效率提升,并且探討在最新的Visual Studio 2008中如何加快開發(fā)AJAX的特性?! ?chuàng)建面向?qū)ο蟮目鐬g覽器的JavaScript代碼,可以支持.NET樣式的類、接口、繼承和方法覆蓋?! ∨c組件、行為和控件一起工作并了解它們?nèi)绾闻cDOM元素關(guān)聯(lián)?! ×私釹ys.Application以及在微軟AJAX庫中進(jìn)行對象創(chuàng)建、初始化和事件處理所扮演的作用?! ?gòu)建Extender和Script控件,提供集成的腳本生成相應(yīng)的客戶端副本。 本地化ASP.NET AJAX控件,包括客戶端腳本?! “l(fā)現(xiàn)ASP.NET AJAX客戶端和服務(wù)器之間的通信架構(gòu)和針對Windows Communication Foundation(WCF)新的支持?! ±斫釧SP.NET AJAX應(yīng)用程序服務(wù)。 創(chuàng)建自定義應(yīng)用程序服務(wù)?! 榫植凯h(huán)境回傳設(shè)計控件?! ±斫釧SP.NET AJAX控件工具箱的體系架構(gòu)及它所提供的諸多特性?! ∈褂肁JAX控件工具箱開發(fā)具有高交互性的控件。 理解AJAX控件工具箱的體系架構(gòu)并充分利用工具箱來構(gòu)建控件。
圖書封面
圖書標(biāo)簽Tags
無
評論、評分、閱讀與下載
ASP.NET AJAX服務(wù)器控件高級編程 PDF格式下載