WCF入門教程1 WCF簡要介紹

2021-06-28 10:35:04 字數 4302 閱讀 5686

什麼是wcfwindowscommunication foundation(wcf)是由微軟

開發的一系列支援資料通訊的應用程式框架,可以翻譯為windows 通訊開發平台。

整合了原有的windows通訊的 .net remoting,webservice,socket的機制,並融合有http

和ftp

的相關技術。

是windows平台上開發分布式應用最佳的實踐方式。

契約與說明

契約定義訊息系統的各個方面。

資料契約:服務中的引數;

訊息契約:使用soap協議特定的訊息部分;

服務契約:服務中的方法;

策略與繫結:策略設定安全或其他條件,繫結指定傳輸方式與編碼。

服務執行時

服務執行期間的行為控制

限制行為:控制處理的訊息數;

錯誤行為:出現內部錯誤時所處理的操作;

元資料行為:是否向外提供元資料及元資料的提供方式;

例項行為:可執行的服務例項數目;

事務行為:處理事務;

排程行為:控制wcf處理訊息的方式;

訊息傳遞

訊息傳遞層:說明資料的交換格式和傳輸模式。

訊息傳遞層由通道(通道)組成,通道是對訊息進行處理的元件,負責以一致的方式對訊息進行整理和傳送。通道用於傳輸層、協議層、及訊息獲取。各層次的通道組成了通道棧。

通道對訊息和訊息頭進行操作,服務執行時對訊息正文進行操作。

兩種型別:傳輸通道 與 協議通道。

傳輸通道:讀取和寫入來自網路的訊息,傳輸通道通過編碼器將訊息轉換為網路傳輸使用的位元組流,以及將位元組流轉換為訊息。傳輸通道示例如:http通道、命名管道、tcp、msmq等;

協議通道:通過讀取或寫入訊息頭的方式來實現訊息協議,協議通道示例如:ws-security,ws-reliability。

承載和啟用

服務宿主:負責wcf服務的生命週期和上下文的作業系統程序,負責啟動和停止wcf服務,並提供控**務的基本管理功能。

兩種型別:傳輸通道 與 協議通道。

傳輸通道:讀取和寫入來自網路的訊息,傳輸通道通過編碼器將訊息轉換為網路傳輸使用的位元組流,以及將位元組流轉換為訊息。傳輸通道示例如:http通道、命名管道、tcp、msmq等;

協議通道:通過讀取或寫入訊息頭的方式來實現訊息協議,協議通道示例如:ws-security,ws-reliability。

承載和啟用

契約(

contract

)wcf

的基本概念是以合約

(contract)

來定義雙方溝通的協議,合約必須要以介面的方式來體現,而實際的服務**必須要由這些合約介面派生並實現。合約分成了四種:

資料合約

(data contract)

,訂定雙方溝通時的資料格式。服務合約

(service contract)

,訂定服務的定義。操作合約

(operation contract)

,訂定服務提供的方法。訊息合約

(messagecontract)

,訂定在通訊期間改寫訊息內容的規範。乙個

wcf中的合約,就如同下列**所示:

using system;

using system.servicemodel;

namespace microsoft.servicemodel.samples

}

繫結

(binding)

由於wcf

支援了http

,tcp

,named pipe

,msmq

,peer-to-peer tcp

等協議,而

又分為基本

支援(basichttpbinding)

以及ws-http

支援(wshttpbinding)

,而tcp

亦支援nettcpbinding

,netpeertcpbinding

等通訊方式,因此,雙方必須要統一通訊的協議,並且也要在編碼以及格式上要有所一致。

乙個設定通訊協議繫結的示例如下:

<?xml version="1.0" encoding="utf-8" ?>

雖然

wcf

也可以使用

soap

做通訊格式,但它和以往的

asp.netxml web services

不同,因此有部分技術文章中,會將

asp.net

的xml web services

稱為asmx service。

wcf

的服務可以掛載於,,

,windows service

以及windows activation services

中,但大多都會掛在

windows service。

終結點

–終結點是用來傳送或接收訊息(或執行這兩種操作)的構造。終結點包括乙個定義訊息可以傳送到的目的地的位置(位址)結點,包括乙個定義訊息可以傳送到的目的地的位置(位址)、乙個描述訊息應如何傳送的通訊機制規範(繫結)以及對於可以在該位置傳送或接收(或兩者皆可)的一組訊息的定義(服務協定)

—該定義還描述了可以傳送何種訊息。

元資料

所謂的「元資料」就是描述資料的資料,即描述當前服務有哪些服務契約、方法契約和資料契約以及終結點的資訊。而「元資料終結點」就是向外界暴露元資料的終結點。當客戶端新增

wcf服務引用的時候,會首先通過元資料取得伺服器端的契約資訊、終結點資訊,然後根據這些資訊在客戶端建立了**類,我們在客戶端呼叫

wcf服務的過程實際上就是通過**類呼叫

wcf服務的過程。

宿主(

host

):一種應用程式域和程序,服務將在該環境中執行。

1.webservice嚴格來說是行業標準,不是技術,使用

xml擴充套件標記語言來表示資料(這個是誇語言和平台的關鍵)。微軟的

web服務實現稱為

asp.net web service.

它使用soap

簡單物件訪問協議來實現分布式環境裡應用程式之間的資料互動。

wsdl

來實現服務介面相關的描述。此外

webservices

可以註冊到

uddi中心.

供其客戶查詢使用。後來微軟做了

asp.net web service

的安全,效能,資料加密、解密,託管宿主等多方面的擴充套件,稱為

wse系列,這個是過度產品,最高到

wse3.0.

後來就是

wcf時代。

2.wcf其實一定程度上就是

asp.net webservice,

因為它支援

web service

的行業標準和核心協議,因此

asp.net webservice

和wse

能做的事情,它幾乎都能勝任,跨平台和語言更不是問題(資料也支援

xml格式化,而且提供了自己的格式化器)。

WCF入門教程 WCF基礎知識問與答

3 為什麼我們要選用wcf?在windows平台下,尤其是在.net平台下開發面向服務的應用程式,或者開發分布式系統,最佳選擇就是wcf。為什麼呢?原因就在於wcf涵蓋了之前微軟推出的所有用於分布式開發的技術,包括remoting web services wse msmq等,並以一種統一的程式設計...

《WCF按部就班學習系列1 WCF基礎概述》

1 wcf的概述 what 1.1.wcf全稱windows communication foundation,是microsoft為構建面向服務的應用提供的分布式通訊程式設計框架,是.net framework 3.5的重要組成部分。使用該框架,開發人員可以構建跨平台 安全 可靠和支援事務處理的企...

無廢話WCF入門教程一 什麼是WCF

一 概述 windows communication foundation wcf 是由微軟發展的一組資料通訊的應用程式開發介面,可以翻譯為windows通訊介面,它是.net框架的一部分。由 net framework 3.0開始引入。wcf的最終目標是通過程序或不同的系統 通過本地網路或是通過i...