共用方式為


什麼是 Windows Communication Foundation

Windows Communication Foundation (WCF) 是建置服務導向應用程式的架構。 使用 WCF,您可以將資料當做異步訊息從一個服務端點傳送到另一個服務端點。 服務端點可以是 IIS 所裝載之持續可用服務的一部分,也可以是裝載在應用程式中的服務。 端點可以是向服務端點請求資料的服務用戶端。 訊息可以像以 XML 傳送的單一字元或單字一樣簡單,或與二進位數據的數據流一樣複雜。 一些範例案例包括:

  • 處理商務交易的安全服務。

  • 提供目前數據給其他人的服務,例如流量報告或其他監視服務。

  • 聊天服務,可讓兩個人實時通訊或交換數據。

  • 儀錶板應用程式,會輪詢一或多個服務以取得數據,並將它呈現在邏輯簡報中。

  • 公開使用 Windows Workflow Foundation 作為 WCF 服務實作的工作流程。

在 WCF 存在之前就能建立這類應用程式,而 WCF 使端點的開發比以往更容易。 總而言之,WCF 的設計目的是提供可管理的方法來建立 Web 服務和 Web 服務用戶端。

gRPC 作為 WCF 的替代方案

gRPC 是新式 RPC 架構,是 WCF 的熱門替代方案。 gRPC 建置在 HTTP/2 之上,可提供一些優於 WCF 的優點,包括:

  • 效能:gRPC 比 WCF 更有效率,尤其是針對長時間執行的連線。
  • 延展性:gRPC 的設計目的是要擴充到大量的客戶端和伺服器。
  • 安全性:gRPC 支援各種安全性機制,包括 TLS 和驗證。
  • 跨平臺:gRPC 是平臺中立的,可與各種程序設計語言搭配使用。

如需開發或移轉 WCF 應用程式至 gRPC 的詳細資訊,請參閱:

WCF 的功能

WCF 包含下列一組功能。 如需詳細資訊,請參閱 WCF 功能詳細數據

  • 服務方向

    使用 WS 標準的結果之一是 WCF 可讓您建立 服務導向 的應用程式。 服務導向架構 (SOA) 是依賴 Web 服務來傳送和接收數據。 這些服務具有一般優點,即鬆散耦合,而不是從一個應用程式硬式編碼到另一個應用程式。 鬆散結合的關聯性表示只要符合基本合約,任何平臺上建立的任何用戶端都可以連線到任何服務。

  • 互通性

    WCF 會實作 Web 服務互作性的新式產業標準。 如需支援標準的詳細資訊,請參閱 互作性和整合

  • 多個訊息模式

    訊息會以數種模式之一交換。 最常見的模式是要求/回復模式,其中一個端點會從第二個端點要求數據。 第二個服務端點會回應。 還有其他模式,例如單向訊息,其中單一端點會傳送訊息,而不需要任何回復。 更複雜的模式是雙工交換模式,其中兩個端點會建立連線並來回傳送數據,類似於立即訊息程式。 如需如何使用 WCF 實作不同訊息交換模式的詳細資訊,請參閱 合約

  • 服務元數據

    WCF 支援使用業界標準中指定的格式來發佈服務元數據,例如 WSDL、XML 架構和 WS-Policy。 此元數據可用來自動產生及設定用戶端來存取 WCF 服務。 元數據可以透過 HTTP 和 HTTPS 發佈,或使用 Web 服務元數據交換標準。 如需詳細資訊,請參閱中繼資料

  • 數據合約

    由於 WCF 是使用 .NET Framework 所建置,因此也包含一些方法,讓您能以程式碼方便地定義想要執行的合約。 其中一種通用型別的合約是數據合約。 基本上,當您使用 Visual C# 或 Visual Basic 撰寫服務程式代碼時,處理數據的最簡單的方式就是建立類別,以代表屬於數據實體的屬性的數據實體。 WCF 包含一套完整的系統,可讓您輕鬆使用數據。 建立代表數據的類別之後,您的服務會自動產生元數據,讓用戶端符合您設計的數據類型。 如需詳細資訊,請參閱 使用數據合約

  • 安全性

    訊息可以加密以保護隱私權,而且您可以要求使用者先自行驗證,才能接收訊息。 安全性可以使用 SSL 或 WS-SecureConversation 等已知標準來實作。 如需詳細資訊,請參閱 安全性

  • 多個傳輸和編碼

    訊息可以傳送至數個內建傳輸通訊協議和編碼方式中的任何一種。 最常見的通訊協議和編碼方式是使用超文本傳輸通訊協定(HTTP)來傳送文字編碼的SOAP訊息,以在萬維網上使用。 或者,WCF 可讓您透過 TCP、命名管道或 MSMQ 傳送訊息。 這些訊息可以編碼為文字或使用優化的二進位格式。 二進位數據可以使用 MTOM 標準有效率地傳送。 如果所提供的傳輸或編碼都不符合您的需求,您可以建立自己的自定義傳輸或編碼。 如需 WCF 所支援傳輸和編碼的詳細資訊,請參閱 傳輸

  • 可靠與佇列訊息

    WCF 支援利用可靠會話進行可靠的訊息傳遞,這些會話是透過 WS-Reliable Messaging 實作的,以及使用 MSMQ。 如需 WCF 中可靠和佇列傳訊支援的詳細資訊,請參閱 佇列和可靠會話

  • 永久訊息

    永久性訊息是即使在通訊中斷時也不會遺失的訊息。 長期訊息模式中的訊息一律會儲存至資料庫。 如果發生中斷,資料庫可讓您在還原連線時繼續訊息交換。 您也可以使用 Windows Workflow Foundation (WF) 建立持久訊息。 如需詳細資訊,請參閱 工作流程服務

  • 交易

    WCF 也支援使用三種交易模型的其中一種交易:WS-AtomicTransactions、命名空間中的 System.Transactions API,以及Microsoft分散式交易協調器。 如需 WCF 中交易支援的詳細資訊,請參閱 交易

  • AJAX 和 REST 支援

    REST 是不斷演進的 Web 2.0 技術的範例。 WCF 可以設定為處理未包裝在SOAP信封中的「純文字」XML 數據。 WCF 也可以擴充以支援特定的 XML 格式,例如 ATOM(常用的 RSS 標準),甚至是非 XML 格式,例如 JavaScript 物件表示法(JSON)。

  • 擴充性

    WCF 架構有一些擴充點。 如果需要額外的功能,有一些進入點可讓您自定義服務的行為。 如需可用擴充點的詳細資訊,請參閱 擴充 WCF

WCF 與其他Microsoft技術整合

WCF 是彈性平臺。 由於這種極端的彈性,WCF 也會用於數個其他Microsoft產品。 藉由瞭解 WCF 的基本概念,如果您也使用任何這些產品,您便有立即的優勢。

與 WCF 配對的第一種技術是 Windows Workflow Foundation (WF)。 工作流程會將工作流程中的步驟封裝為「活動」,以簡化應用程序開發。在第一版的 Windows Workflow Foundation 中,開發人員必須建立工作流程的主機。 下一版的 Windows Workflow Foundation 已與 WCF 整合。 這可讓任何工作流程輕鬆地裝載在 WCF 服務中。 您可以在 Visual Studio 2012 或更新版本中自動選擇 WF/WCF 專案類型來執行此動作。

Microsoft BizTalk Server R2 也會利用 WCF 作為通訊技術。 BizTalk 的設計目的是接收數據,並將數據從一個標準化格式轉換成另一種格式。 訊息必須傳遞到其中央訊息箱,其中訊息可以使用嚴格對應或利用 BizTalk 的功能之一來進行轉換,例如其工作流程引擎。 BizTalk 現在可以使用 WCF 企業營運 (LOB) 配接器,將訊息傳遞至消息框。

Windows Server AppFabric 應用程式伺服器的裝載功能專為部署和管理使用 WCF 進行通訊的應用程式而設計。 裝載功能包括專為支援 WCF 的應用程式而設計的豐富工具和組態選項。

另請參閱