一、先說幾句
已經好多年沒有使用c#進行應用程式的開發,即使在以前,用c#也只是做些簡單的應用程式而爾。但現在,公司突然將c#的重任交給我,而且還要負責架構部分。無奈只好從c#基本語法學起。但由於要開發三層架構的應用,使用wcf已經是大勢所趨。但找了好多wcf的學習資料,甚至還買了一本國產的wcf書籍,但結果還是一頭霧水,不得入門。真不知道是.net技術太過於先進,還是我已經不是以前那個自學成才的高手。
不過無論有什麼困難,問題還是得解決的。昨天晚上終於將乙個簡單的wcf應用程式建立起來了,當然,這也作為我在建立的第一篇文章。萬事起頭難,真希望難完這一次就好了。
二、建立服務端函式
「服務端函式」這個命名實在不規範,不過文章是給自己看的,就按自己的習慣進行命名吧。總而言之,我要在服務端建立乙個服務函式,供客戶端進行呼叫。首先執行vs2010,選擇檔案 -> 新建 -> 專案。在新建專案視窗左邊的目錄中,選擇「wcf」,再在右邊選擇「wcf 服務應用程式」。專案名稱叫「wcfserver」、解決方案名稱為「wcftest」:
新建後,預設的介面和實現檔案,其檔名預設service1,不是十分規範,所以我們將檔名和類名改命為coreservice。檔名的更改直接在解決方案資源管理中直接改名就好了。但對類名的更改,應該使用f2重構功能進行更改。
將類名和介面重新命名後,現在我們就需要增加自己的服務端函式了。在這個例子裡面,我們只是簡單地增加乙個取服務端時間的函式:getserverdatetime。首先開啟icoreservice.cs介面檔案,在最後增加乙個服務端函式介面:
[operationcontract]接著,開啟coreservice.svc.cs檔案,在類的最後面增加如下**:datetime getserverdatetime();
這個時間關閉程式就可以了。
三、建立客戶端呼叫程式
通過「解決方案資源管理器」,右鍵新建乙個專案。在新建專案視窗左邊目錄樹,選擇「windows」,在右邊列表中選擇「windows窗體應用程式」,而專案名稱則為「wcfclient」,最後將wcfclient程式「設為啟動專案」。
在wcfclinet的專案中,右鍵選擇「新增服務應用」選單。
在彈出的「新增服務應用」視窗中,將之前複製到位址貼粘上去後再「確定」。確定無誤後,直接點「確定」就可以了。
到目前為止,所有的準備工作都已經可以了。下在我們編寫一段**來實現呼叫服務端函式的功能。首先我們在視窗上新增乙個label和乙個button控制項:
雙擊button編寫如下**:
using (servicereference1.coreserviceclient host = new servicereference1.coreserviceclient())//顯示執行時間
label1.text = (system.environment.tickcount - starttime).tostring() + " ms";
host.close();
}這樣就大功告成了!不過有一點比較奇怪,就是如果是第一次執行,它的速度總經正常呼叫慢1到2秒。但只要客戶端不是第一次進行連線,則速度是相當的快。好了,整個wcf例子完成了,不過wcf的宿主還不是乙個單獨的應用程式,所以後面還會繼續精進。
學習 我的第乙個WCF程式,Hello
第一節的筆記紀錄 首先建立service,類庫helloindigo,建立類helloindigoservice,在類中定義契約ihelloindigoservice,並實現它。namespace hellodigo public class helloindigoservice ihelloind...
建立第乙個WCF程式
using system.servicemodel namespace host 而hellowcfservice.cs 實現如下 using system 縮短為baseaddress http localhost 8731 hellowcfservice 並修改program.cs檔案為 usi...
WCF 建立第乙個WCF應用程式
windows communication foundation wcf 是由微軟發展的一組資料通訊的應用程式開發介面,也可以說是一套軟體開發包。wcf合併了web服務 net remoting 訊息佇列和enterprise services的功能並整合在visual studio中。wcf專門用...