在前2節(jié)里,我們分別依次學(xué)習(xí)了《AJAX基礎(chǔ)概念和純AJAX示例》和《支持ASP.NET AJAX的Web Service》。今天繼續(xù)學(xué)習(xí)WCF與AJAX編程開(kāi)發(fā)實(shí)踐(3):支持ASP.NET AJAX的WCF服務(wù)。這一節(jié)里,我們會(huì)講解如何開(kāi)發(fā)一個(gè)WCF服務(wù),來(lái)支持ASP.NET Ajax客戶端的調(diào)用,并給出詳細(xì)的開(kāi)發(fā)過(guò)程和示例代碼。
以下是這個(gè)系列的文章結(jié)構(gòu),雖然是為了學(xué)習(xí)WCF與AJAX編程,但是為了我們更夠更好地理解和掌握這一框架,所以文章從最基本的概念開(kāi)始,然后逐步引入到AJAX和WCF開(kāi)發(fā)的內(nèi)容上。
這些在第一節(jié)里有過(guò)介紹。這里開(kāi)發(fā)一個(gè)支持AJAX的WCF服務(wù)十分的容易,主要原因呢,得益于Visual Studio功能的完善。我們可以輕而易舉地創(chuàng)建一個(gè)WCF服務(wù),來(lái)支持客戶端AJAX的調(diào)用。本節(jié)里大致介紹的順序從創(chuàng)建網(wǎng)站開(kāi)始,然后是創(chuàng)建WCF服務(wù),最后是客戶端的開(kāi)發(fā)工作。依次給出詳細(xì)的介紹,并配有截圖。這里以Visual Studio2008 英文版為例。截圖部分會(huì)配以文字說(shuō)明。中文版開(kāi)發(fā)過(guò)程一樣。
【1】創(chuàng)建ASP.NET 網(wǎng)站:
首先這里要求你安裝了Visual Studio2008 開(kāi)發(fā)環(huán)境。
創(chuàng)建一個(gè)普通的ASP.NET 網(wǎng)站,步驟很簡(jiǎn)單,也就是在New ->Web Site 選擇網(wǎng)站即可,如下圖所示:
【2】創(chuàng)建WCF Service:
【2.1】其次創(chuàng)建一個(gè)支持AJAX的WCF服務(wù)。
這里與之前的ASP.NET Web Service不同,我們需要自己創(chuàng)建一個(gè)支持AJAX的WCF Service即可,如圖所示:
【2.2】服務(wù)類(lèi)定義:
AjaxWCFService服務(wù)類(lèi)型定義了一個(gè)操作,和普通的WCF服務(wù)操作沒(méi)有區(qū)別,需要標(biāo)注[OperationContract]。這個(gè)操作的代碼很簡(jiǎn)單,就是接受一個(gè)name參數(shù),然后返回一個(gè)字符串。具體實(shí)現(xiàn)如下:
這里比較關(guān)鍵的一個(gè)服務(wù)屬性標(biāo)注就是:
[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)]應(yīng)它的作用就是表示W(wǎng)CF服務(wù)能否在 ASP.NET 兼容模式下運(yùn)行。我們這里設(shè)置為允許。
添加AjaxEnabledWCFService,Visual Studio會(huì)自動(dòng)為我們加上這些標(biāo)注。
【2.3】配置文件Web.Config:
Visual Studio會(huì)幫助我們添加一些重要的代碼和配置信息
【3】創(chuàng)建ASP.NET AJAX客戶端:
選擇我們需要一個(gè)客戶端,來(lái)調(diào)用WCF服務(wù)。
【3.1】這里創(chuàng)建ASP.NET AJAX客戶端,最重要的是要使用一個(gè)服務(wù)端控件ScriptManager。這個(gè)可以在ToolBox里找到。
它的作用很關(guān)鍵,上一節(jié)我們討論過(guò)。 ScriptManager 控件是 ASP.NET 中 AJAX 功能的中心。該控件可管理一個(gè)頁(yè)面上的所有 ASP.NET AJAX 資源。其中包括將 Microsoft AJAX Library 腳本下載到瀏覽器和協(xié)調(diào)通過(guò)使用 UpdatePanel 控件啟用的部分頁(yè)面更新。(更多內(nèi)容大家可以自己閱讀http://msdn.microsoft.com/zh-cn/library/system.web.ui.scriptmanager.aspx頁(yè)面的介紹)。
這里需要引用我們的AJAXWCFService.svc文件。代碼如下:
【3.2】HTML頁(yè)面設(shè)計(jì),我們就沿用第二節(jié)里的頁(yè)面控件?;静蛔鲂薷?。功能很簡(jiǎn)單,和第二節(jié)一樣,我們輸入用戶名UserName,然后調(diào)用WCF服務(wù),返回SayHello字符串。
【3.3】 剩下的就是Javascript函數(shù),這個(gè)過(guò)程也非常的簡(jiǎn)單,因?yàn)閂isual Studio2008的腳本代碼編寫(xiě)的提示也非常的方便,你可以方便地寫(xiě)出一個(gè)完成的Javascript函數(shù),這里也可以使用Jquery。 代碼如下:
【4】運(yùn)行結(jié)果:
這里我們可以直接在IE里測(cè)試一下效果,打開(kāi)瀏覽器,瀏覽Default.aspx網(wǎng)頁(yè),這個(gè)網(wǎng)頁(yè)里包含了我們調(diào)用WCF服務(wù)的客戶端Javascript腳本。
我們?cè)诳丶镙斎胄彰院螅c(diǎn)擊Search按鈕,就會(huì)看到調(diào)用WCF服務(wù)操作SayHello返回的結(jié)果。如圖所示:
參考:
1.http://msdn.microsoft.com/en-us/library/bb924552.aspx
2.WCF與AJAX編程開(kāi)發(fā)實(shí)踐(1):AJAX基礎(chǔ)概念和純AJAX示例
3.WCF與AJAX編程開(kāi)發(fā)實(shí)踐(2):支持ASP.NET AJAX的Web Service
聯(lián)系客服