WCF - 概述



WCF 代表 Windows Communication Foundation。WCF 的基本特性是互操作性。它是微軟最新的技術之一,用於構建面向服務的應用程式。基於訊息通訊的概念,其中 HTTP 請求以統一的方式表示,WCF 使得無論傳輸機制如何多樣化,都可以擁有統一的 API。

WCF 最初於 2006 年作為 .NET Framework 的一部分與 Windows Vista 一起釋出,之後經過多次更新。WCF 4.5 是最新版本,現在被廣泛使用。

一個 WCF 應用程式包含三個元件:

  • WCF 服務,
  • WCF 服務主機,以及
  • WCF 服務客戶端。

WCF 平臺也稱為服務模型。

WCF 的基本概念

訊息

這是通訊單元,除了主體之外還包含幾個部分。訊息例項在客戶端和服務之間所有型別的通訊中傳送和接收。

終結點

它定義了傳送或接收訊息的地址。它還指定通訊機制以描述訊息將如何傳送,以及定義訊息集。終結點的結構包含以下部分:

地址

地址指定接收訊息的確切位置,並以統一資源識別符號 (URI) 指定。它表示為 scheme://domain[:port]/[path]。請檢視下面提到的地址:

net.tcp://:9000/ServiceA

這裡,“net.tcp”是 TCP 協議的方案。域是“localhost”,可以是機器的名稱或 Web 域名,路徑是“ServiceA”。

繫結

它定義了終結點通訊的方式。它包含一些繫結元素,這些元素構成了通訊的基礎設施。例如,繫結宣告用於傳輸的協議(如 TCP、HTTP 等)、訊息編碼格式以及與安全性和可靠性相關的協議。

契約

它是操作的集合,指定了終結點向客戶端公開的功能。它通常包含介面名稱。

託管

從 WCF 的角度來看,託管指的是 WCF 服務託管,可以透過許多可用的選項來完成,例如自託管、IIS 託管和 WAS 託管。

元資料

這是 WCF 的一個重要概念,因為它促進了客戶端應用程式和 WCF 服務之間的輕鬆互動。通常,WCF 服務的元資料在啟用時會自動生成,這是透過檢查服務及其終結點來完成的。

WCF 客戶端

為以方法的形式公開服務操作而建立的客戶端應用程式稱為 WCF 客戶端。這可以由任何應用程式託管,即使是執行服務託管的應用程式。

通道

通道是客戶端與服務通訊的媒介。不同型別的通道被堆疊,稱為通道堆疊。

SOAP

雖然被稱為“簡單物件訪問協議”,但 SOAP 不是傳輸協議;相反,它是一個包含標題和正文部分的 XML 文件。

WCF 的優點

  • 它與其他服務具有互操作性。這與 .NET Remoting 形成鮮明對比,在 .NET Remoting 中,客戶端和服務都必須具有 .Net。

  • 與 ASMX(Active Server Methods)Web 服務相比,WCF 服務提供了更高的可靠性和安全性。

  • 在 WCF 中實現安全模型和繫結更改不需要對程式碼進行重大更改。只需進行一些配置更改即可滿足約束條件。

  • WCF 具有內建的日誌記錄機制,而在其他技術中,需要進行必要的編碼。

  • WCF 集成了 AJAX 並支援 JSON(JavaScript 物件表示法)。

  • 它提供可擴充套件性和對未來 Web 服務標準的支援。

  • 它具有一個極其強大的預設安全機制。

廣告