本隨筆參考自wcf程式設計系列(一)初識wcf,純屬讀書筆記,加深記憶。
1、簡介:windows communication foundation(wcf)是微軟為構建面向服務的應用程式所提供的統一程式設計模型。在wcf之前,.net framework提供了多種分布式技術,如asp.net web服務、.net framework遠端處理、企業服務、wse以及microsoft訊息佇列。一般我們在編寫乙個應用程式時通常會同時使用多項技術,所以,微軟將這些分布式應用程式整合到了一起,形成了wcf這個框架。即通過wcf能實現上面所有的分布式功能。
2、wcf的基本組成
(2)、繫結:定義服務的通訊方式(傳輸協議、編碼方案)
(3)、契約:定義服務的具體實現
(4)、終結點(endpoint):由位址、繫結、契約共同構成乙個終結點,伺服器通過終結點向客戶端公開服務,客戶端通過終結點來呼叫服務。
注:wcf是面向介面程式設計
3、簡易demo
(1)、第一步
i、首先建立乙個iservice類庫(服務層)。
ii、引用引入system.servicemodel命名空間和當前解決方案的service命名空間和iservice命名空間
iii、然後在服務層下面新建乙個服務介面iuserinfoservice,並在該介面上新增[servicecontract]特性(及服務契約),表明該介面是乙個服務
iiii、在介面中定義add方法,並在方法上新增[operationcontract]特性,表示add方法是iuserinfoservice服務介面的乙個服務方法,客戶端可遠端呼叫該方法
using system;(2)、第二步using system.servicemodel;
namespace iservice
}
i、建立乙個service類庫(服務層的具體實現)
ii、實現服務層中的所有方法
using system;ok,到這裡服務端的wcf服務建立完成using iservice;
namespace service}}
(3)、第三步,個人覺得是wcf最重要的一步,同時也是提現它功能強大的地方之一,提供wcf服務的宿主(它的宿主可以使任何應用程式,包括web應用程式、控制台、windows form程式),這裡使用控制台程式。
宿主程式:wcf通過改程式向外部發布服務,也就是說改程式必須保持啟動的狀態,否則wcf中的服務,外界將無法獲取。
i、建立乙個控制台程式host,作為wcf的宿主程式
ii、引入system.servicemodel命名空間和iservice命名空間和service命名空間
iii、通過下面的**啟動wcf服務
using system;當然,現在肯定啟動不了,因為最重要的配置檔案,還沒有設定。使用wcf大部分時間,都在配配置檔案。using system.collections.generic;
using system.linq;
using system.servicemodel;
using system.text;
using system.threading.tasks;
namespace host}}
}
<?xml version="1.0" encoding="utf-8" ?>ok,所有的準備工作都以就緒,現在重新生成整個解決方法。右鍵host,開啟其本地資料夾,找到host.exe程式,啟動服務,注意不要關閉。
(5)、第五步,測試wcf服務是否能正常使用,有兩種方法可供測試
ok,說明wcf服務端已經啟動客戶端可以正常呼叫
ii、使用vs2010以上的自帶的wcf測試工具
,通過這個工具,也可以測試當前服務是否正常啟動。
輸入服務位址,點選確定。
說明服務正常啟動。
(6)、第六步,客戶端訪問,在確認服務端正常啟動後,下面就要通過客戶端來測試服務能否正常呼叫
i、建立乙個名為client的客戶端控制台程式
ii、生成客戶端**類,通過**類來呼叫服務端程式,生成客戶端**類有兩種方式(我知道的),
第一種:通過微軟的svcutil工具生成userinfoservice服務的客戶端**類,開始選單/microsoft visual studio 2012/visual studio tools/visual studio 2012開發人員命令提示
開啟該工具,在工具中定位到當前需要呼叫wcf服務的客戶端目錄下
,然後輸入
usingok,說明client呼叫wcf服務成功!system;
using
system.collections.generic;
using
system.linq;
using
system.text;
using
system.threading.tasks;
namespace
client}}
第二種方法:這種方法,僅限於web客戶端的呼叫,新建乙個空web應用程式,右擊新增服務引用
,輸入服務位址http://localhost:8000/,點選新增。
ok,客戶端**類新增成功。下面通過**測試,當前web專案能否正常使用wcf服務端服務,新建web窗體,修改後台**如下:
using system;執行當前窗體,using system.collections.generic;
using system.linq;
using system.web;
using system.web.ui;
using system.web.ui.webcontrols;
using web.servicereference1;
namespace web}}
,ok,說明everything is ok.
WCF系列教程之WCF操作協定
一 簡介 1 在定義服務協定時,在它的操作方法上都會加上operationcontract特性,此特性屬於operationcontractattribute 類,將operationcontract應用於方法,以指示該方法實現作為服務協定 由 servicecontractattribute 屬性...
WCF程式設計系列 二 了解WCF
面向服務 服務是復用進化的結果,起初的復用是函式,物件導向程式設計的出現使復用從函式上公升到物件,隨後面向元件程式設計又將復用從物件上公升到元件,現在面向服務程式設計將復用提公升到服務層次。在面向服務的應用程式中,開發者只需要關注業務邏輯的編寫,以及通過可交換的 可互操作的服務終結點暴露業務邏輯。客...
WCF系列之WCF服務呼叫方式
wcf服務呼叫通過兩種常用的方式 一種是借助 生成工具svcutil.exe或者新增服務引用的方式,一種是通過channelfactory直接建立服務 物件進行服務呼叫。svcutil.exe是乙個命令列工具,位於 c program files microsoft sdks windows v7....