Windows Communication Foundation(WCF),早期代號「Indigo」,是微軟基於 .NET Framework 2.0 打造的統一程式設計模型,專為建構服務導向架構(SOA)的分散式應用程式而設計。它整合了 .NET 平台上所有與分散式系統相關的技術——包括 .NET Remoting、ASMX Web Services、WSE(Web Services Enhancements)與 MSMQ(Microsoft Message Queuing)——讓開發人員能以一致的程式碼模型,輕鬆實作跨進程、跨機器、跨子網甚至跨企業網路與 Internet 的安全、可靠、支援交易的通訊解決方案。
WCF 不僅支援多種宿主環境(ASP.NET、Windows Service、WPF、WinForms、Console Application、COM+),也涵蓋 TCP、HTTP、Named Pipe 及自訂協定;安全機制更支援 SAML、Kerberos、X.509 憑證、使用者名稱/密碼等標準。簡單說,掌握 WCF 就等於掌握了通往 SOA 大門的鑰匙。
雖然 WCF 隨 Windows Vista 正式亮相,但只要安裝 WinFX Runtime Components,Windows XP 與 Windows Server 2003 也能完整執行。Visual Studio 2005 安裝該 Runtime 後即可開發 WCF 專案。最新版本(截至 2006 年 2 月 CTP)可從微軟官網下載,SDK 另含 SvcUtil.exe 等必要工具,安裝後會在 Program Files\Microsoft SDKs 目錄下提供完整開發資源。微軟並設有專屬官方網站(windowscommunication.net)提供最新資訊、技術文件與範例程式碼。
以一個汽車租賃預約系統為例:呼叫中心(.NET)、既有 J2EE 系統(非 Windows)、合作夥伴應用(跨平台、跨 Internet)需同時存取同一服務。若無 WCF,開發團隊得同時掌握 .NET Remoting(高效能 .NET 內部通訊)、ASMX(跨平台 SOAP)、WSE(安全強化)、Enterprise Services/COM+(分散式交易)、MSMQ(離線/非同步訊息)等五套技術,開發與維護成本極高。WCF 正是為了解決此痛點而生,將上述功能全數整合於單一框架中。
WCF 以全受控代碼撰寫,開發體驗與一般 .NET 應用無異。開發人員可像建立物件導向應用一樣,自然地建立服務導向應用,大幅降低學習曲線。
基於 SOAP 訊息交換,WCF 能與任何支援 WS-* 標準的平台互通——無論是 .NET 到 .NET、跨進程、跨機器,或是與運行於 Solaris、HP-UX、Linux 上的 J2EE 應用伺服器(WebSphere、WebLogic)交換資料。
安裝 WCF 不會影響既有 ASMX 或 .NET Remoting 應用;基於 WCF 的服務仍可直接與舊版 ASMX 互通,保護既有投資。




