windowscommunication foundation(wcf)是由微軟發展的一組資料通訊的應用程式開發介面,可以翻譯為windows通訊介面,它是.net框架的一部分。由 .net framework 3.0 開始引入。
wcf的最終目標是通過程序或不同的系統、通過本地網路或是通過internet收發客戶和服務之間的訊息。
wcf合併了web服務、.net remoting、訊息佇列和enterprise services的功能並整合在visual studio中。
wcf專門用於面向服務開發。
構建乙個wcf程式通常分為三個部分:服務類(server)、宿主(host)、客戶程式(client)。有乙個很重要的程式集(system.serveicemodel)要引用,它包含wcf的核心功能。主要內容
1.位址(addresses)
2.契約(contracts)
3.繫結(bindings)
4.端點(endpoints)
5.寄存
一、位址(addresses)
位址由模式、域、埠和路徑組成。模式指所用的傳輸協議如tcp、命名管線、http、msmq等,wcf中針對這些協議的模式為net.tcp 、net.pipe、 http 、net.msmq。
二、契約(contracts)
wcf 的所有服務都會公開為契約(contract)。契約與平台無關,是描述服務功能的標準方式。wcf 定義了四種型別的契約。
服務契約: 定義乙個介面,給介面附加[servicecontract],給介面方法附加[operationcontract]
資料契約: 資料契約定義將在客戶端與伺服器端傳送的各種資料型別。定義資料契約時需要使用[datacontract] 和[datamember] 。
訊息契約: 可以使用訊息契約來定製wcf 服務與wcf 客戶間相互通訊的soap 訊息格式。
錯誤契約: 定義在服務中如何處理異常,以及這些異常又如何傳送到客戶端。
三、繫結(bindings)
binding實現的是在客戶端和服務端進行通訊的底層細節,包括資料如何傳輸(比如採用tcp,http等),如何解決安全問題(ssl,message levelsecurity等),傳輸的訊息的格式(如text/xml,mtom,binary等)。
binding包括三個組成部分:namespace,name和bindingelement
http協議:basichttpbinding 、wshttpbinding 和wsfederationhttpbinding 。
兩個http 通道實現雙向通訊:wsdualhttpbinding。
tcp協議:nettcpbinding。
p2p:netpeertcpbinding。
命名管道:namedpipebinding。
訊息佇列:netmsmqbinding 和msmqintegrationbinding。
四、端點(endpoints)
端點的用處是方便客戶程式呼叫服務的操作。端點定義了在什麼地方可以訪問服務、用什麼方式訪問以及有哪些操作可用,這就是端點的三要素(位址繫結 契約)。端點可以在程式中設定也可以用配置檔案的形式設定。
五、寄存
服務做好了後需要能夠執行,因為客戶在呼叫服務的時候服務必須是處在執行狀態的,這就需要將服務寄存在乙個地方,在一些demo中會使用控制台程式來做宿主寄存服務,除此之外還可以是winform程式、wpf應用、windows 服務、iis、was等。
WCF基礎知識
學習背景 在之前的幾篇部落格中,我們了解到了wcf從 來,什麼是wcf,這篇部落格,我們繼續學習有關wcf的基礎知識。學習內容 一.位址1.位址格式 基位址 可選的uri 傳輸協議 機器名或網域名稱 可選埠 itoo學籍管理示例 含義是 採用http協議訪問localhost機器,basicstud...
《WCF服務程式設計》筆記 WCF基礎知識
wcf基本術語包括 位址 address 繫結 binding 契約 contract 和終結點 endpoint wcf描述 1.winodws通訊基礎 windows communication foundation,wcf 是基於windows平台下開發和部署服務的軟體開發包 software...
wcf基礎知識之完結
在我以前的wcf部落格中,我傾向於通過乙個具體的問題來引出乙個wcf的技術知識點,這得到了園友們的支援,我在這裡向支援我的朋友們說聲謝謝,謝謝你們的支援。但是也得到了很多的建議,今天有園友通過qq聯絡我說,我講的內容雖然說有知識點,但是知識點太分散,不能完整的理解wcf的各個知識點的作用以及相互之間...