WCF 是Microsoft用於建置服務導向應用程式的統一程序設計模型。 它可讓開發人員建置安全、可靠、交易的解決方案,以跨平臺整合,並與現有投資互通。 ASP.NET Web API 是一種架構,可讓您輕鬆地建置可觸達各種用戶端的 HTTP 服務,包括瀏覽器和行動裝置。 ASP.NET Web API 是建置 .NET Framework 上 RESTful 應用程式的理想平臺。 本主題提供一些指引,可協助您決定哪些技術最符合您的需求。
選擇要使用哪些技術
下表說明每個技術的主要功能。
WCF(Windows Communication Foundation) | ASP.NET Web API |
---|---|
啟用支援多個傳輸通訊協定的建置服務(HTTP、TCP、UDP 和自定義傳輸),並允許在它們之間切換。 | 僅限 HTTP。 HTTP 的第一級程序設計模型。 更適合從各種瀏覽器和行動裝置存取,以達到更廣泛的接觸範圍。 |
啟用支援相同訊息類型之多個編碼(Text、MTOM 和 Binary)的建置服務,並允許在它們之間切換。 | 啟用建置支援各種媒體類型的 Web API,包括 XML、JSON 等。 |
支援使用 WS-* 標準建置服務,例如可靠的傳訊、交易、訊息安全性。 | 使用 HTTP、WebSockets、SSL、JSON 和 XML 等基本通訊協定和格式。 不支援較高層級的通訊協定,例如可靠的傳訊或交易。 |
支援要求-回復、單向與雙工的訊息交換模式。 | HTTP 是要求/回應,但可透過 SignalR 和 WebSockets 整合來支援其他模式。 |
WCF SOAP 服務可以在 WSDL 中描述,使自動化工具能夠產生用戶端代理,即使針對具有複雜結構的服務也是如此。 | 有各種不同的方式可描述 Web API,範圍從自動產生的 HTML 說明頁面,描述代碼段到 OData 整合式 API 的結構化元數據。 |
隨附於 .NET Framework。 | 隨附於 .NET Framework,但為開放原始碼,也提供頻外下載作為獨立下載。 |
使用 WCF 來建立可透過各種傳輸存取的可靠、安全的 Web 服務。 使用 ASP.NET Web API 來建立可從各種用戶端存取的 HTTP 型服務。 如果您要建立及設計新的 REST 樣式服務,請使用 ASP.NET Web API。 雖然 WCF 提供撰寫 REST 樣式服務的一些支援,但 ASP.NET Web API 中的 REST 支援更為完整,而且所有未來的 REST 功能改進都會在 ASP.NET Web API 中進行。 如果您有現有的 WCF 服務,而且想要公開其他 REST 端點,請使用 WCF 和 WebHttpBinding。