2015-05-09 52 views
1

我想構建新的移動應用後端。此後端可能最終支持其他類型的客戶端,如桌面或傳統Web應用程序。使用Azure Api的多客戶端架構

在過去的多客戶端應用程序中,我會使用這一堆技術。 SQL Server - >實體框架 - > TCP WCF服務端點 - > MVC Web應用程序或WPF Windows應用程序

我知道我希望我的移動客戶端使用Restful Http Web API,就像您將在新的Azure中託管的類型API產品。但我不確定是否應該繼續執行WCF圖層。

難道我的所有客戶都不能只使用Web API嗎?或者,在開發WCF服務和圖層Web API的基礎上繼續是明智之舉?

在同一時間使用2種不同的序列化技術似乎不太合適。

+0

您應該可以使用Web API替換TCP WCF端點,但請注意,您將嚴格限制爲使用Web API的HTTP。 – Tim

回答

1

是的,你可以用Web API代替它並創建一個REST API,但是Tim已經在他的評論中提到過,這顯然只是HTTP而不是WCF支持的所有協議。

話雖如此,API應用程序具有Swagger元數據來描述REST URI(端點)可以做什麼(例如方法,內容類型,描述等)。有許多Swagger SDK生成器可以讀取Swagger元數據,並生成需要在應用程序中使用REST API的代碼,以獲得幾乎任何語言。對於帶有最新Azure SDK的Visual Studio 2013,您也可以內置此功能。這是純代碼生成,沒有緊密的耦合或任何東西,我們只是生成你應該編寫的代碼來使用API​​。

+0

之前我使用TCP的原因是因爲我被告知它爲防火牆後面的客戶端提供了更高的性能。我不喜歡WCF SOAP服務的一件事就是你必須命名所有GetObject()GetObjectByKey()GetObjectByName(),SaveObject()等。你不能重載方法名稱。但在Web API中,您可以使用HTTP動詞來幫助描述您的方法。我認爲這使得它更容易在眼睛上。所以我想盡可能將它用於所有客戶。 SOAP over TCP要快多少? –

+0

我不認爲我們可以真正量化速度,但通常HTTP更昂貴,開銷更高。這真的取決於你想要做什麼。我們無法輕易回答這個問題。 –