何謂 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 等公認的標準即可實作安全性。 如需詳細資訊,請參閱安全性

  • 多重傳輸與編碼

    訊息可以透過數種內建傳輸通訊協定與編碼的任何方式進行傳送。 最常用的通訊協定與編碼方式為傳送文字編碼的 SOAP 訊息,其所使用的是全球資訊網泛用的超文字傳輸通訊協定 (HTTP)。 或者,WCF 也能讓您透過 TCP、具名管道或 MSMQ 傳送訊息。 這些訊息可編碼為文字,或採用最佳化的二進位格式。 使用 MTOM 標準將能有效傳送二進位資料。 如果所提供的傳輸或編碼都無法滿足您的需求,您還可以建立自己的自訂傳輸或編碼。 如需 WCF 所支援傳輸和編碼的詳細資訊,請參閱傳輸

  • 可靠的佇列訊息

    WCF 使用透過 WS-Reliable 傳訊來實作的可靠工作階段以及 MSMQ,來支援可靠的訊息交換。 如需 WCF 中可靠和佇列訊息支援的詳細資訊,請參閱佇列和可靠的工作階段

  • 永久性的訊息

    永久性的訊息是指不會因為通訊中斷而遺失的訊息。 處於永久性訊息模式的訊息一律儲存至資料庫。 萬一發生中斷,資料庫可以讓您在恢復連線後繼續進行訊息交換。 您也能夠使用 Windows Workflow Foundation (WF) 建立永久性的訊息。 如需詳細資訊,請參閱工作流程服務

  • 交易

    WCF 還支援使用三種交易模型中的任一種進行交易:WS-AtomicTransaction、System.Transactions 命名空間中的應用程式開發介面,以及 Microsoft 分散式交易協調器。 如需 WCF 中交易支援的詳細資訊,請參閱交易

  • AJAX 與 REST 支援

    REST 是 Web 2.0 技術演進的一個範例。 WCF 可設定成用來處理未包裝在 SOAP Envelope 中的「純」XML 資料。 WCF 也可以擴充,以支援特定的 XML 格式,例如 ATOM (常用的 RSS 標準),甚至是非 XML 格式,例如 JavaScript Object Notation (JSON)。

  • 擴充性

    WCF 架構具有若干擴充點。 如果需要額外的功能,有數個進入點可讓您自訂服務的行為。 如需可用擴充點的詳細資訊,請參閱擴充 WCF

WCF 與其他 Microsoft 技術的整合

WCF 是具有靈活彈性的平台。 由於提供了極大彈性,許多其他 Microsoft 產品也使用 WCF。 了解 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 的應用程式而設計的豐富工具及組態選項。

另請參閱