WCF系列教程之初識WCF

2022-01-14 20:43:27 字數 3480 閱讀 7203

本隨筆參考自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;

using system.servicemodel;

namespace iservice

}

(2)、第二步

i、建立乙個service類庫(服務層的具體實現)

ii、實現服務層中的所有方法

using system;

using iservice;

namespace service}}

ok,到這裡服務端的wcf服務建立完成

(3)、第三步,個人覺得是wcf最重要的一步,同時也是提現它功能強大的地方之一,提供wcf服務的宿主(它的宿主可以使任何應用程式,包括web應用程式、控制台、windows form程式),這裡使用控制台程式。

宿主程式:wcf通過改程式向外部發布服務,也就是說改程式必須保持啟動的狀態,否則wcf中的服務,外界將無法獲取。

i、建立乙個控制台程式host,作為wcf的宿主程式

ii、引入system.servicemodel命名空間和iservice命名空間和service命名空間

iii、通過下面的**啟動wcf服務

using system;

using system.collections.generic;

using system.linq;

using system.servicemodel;

using system.text;

using system.threading.tasks;

namespace host}}

}

當然,現在肯定啟動不了,因為最重要的配置檔案,還沒有設定。使用wcf大部分時間,都在配配置檔案。

<?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服務的客戶端目錄下

,然後輸入

using

system;

using

system.collections.generic;

using

system.linq;

using

system.text;

using

system.threading.tasks;

namespace

client}}

ok,說明client呼叫wcf服務成功!

第二種方法:這種方法,僅限於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....