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