2009-12-20 135 views
3

我即將在ASP.NET中啓動我的第一個Web服務。當在谷歌搜索它顯示ASP.NET 3.5 Web服務

RestFul Service 

SOAP services 

WCF 

哪一個是穩定?。它們之間的關鍵差異是什麼?

+0

(回覆評論) – 2009-12-20 15:55:18

回答

4

定義 「穩定」 ;-p

如果你的意思是 「在場上的時間」,那麼對於.NET的順序將是SOAP(ASMX),WCF,REST

注意,有一個以數據爲中心的REST服務(典型的ADO.NET數據服務)和WCF/asmx(以操作爲中心)之間發生了很大的轉變。

REST對於調用者來說可能更靈活; WCF/asmx具有更嚴格的控制(就暴露謹慎的操作而言)。兩者都有自己的位置,但我在傾向於仍然使我的默認操作爲中心的方法(通過WCF)在大多數情況下(定義數量的測試等)。

WCF與.NET中提供的原始Web服務相比有更多的進化,並且具有更好的WSE支持(儘管asmx可以通過WSE3進行擴展)。如果你從今天開始,在大多數情況下,WCF將是比asmx更好的選擇。

+0

我的意思是很值得使用。 – Peter 2009-12-20 15:05:17

+2

這取決於你想要什麼。 WCF將是我的默認設置,如果您瞭解數據安全方面,則使用ADO.NET Data Services **。 – 2009-12-20 15:54:46

+0

哦!不,我不想爲實體框架使用ADO.NET數據服務,作爲初學者它會打敗我的頭。只是我看了一些MSDN視頻實體框架。所以我的計劃是將WCF數據服務和LINQ to SQL一起使用。我正在搜索一些文章以查看它是否可行。感謝Marc的回覆。 – Peter 2009-12-20 19:36:18

4

肯定會與WCF一起使用 - 這是跨機器通信的當前和未來技術。

SOAP與REST的問題有點像手動與自動傳輸 - 它取決於您的需求和偏好。

SOAP一般來說更加堅固一點 - 它具有像WSDL和XSD這樣的模式和元數據,可以清楚明確地描述服務及其所有方法及其所有數據。在企業環境中非常有用。

另一方面,REST更容易理解,易於理解,只需要在URL-and-get-XML-back方法中編寫代碼即可。它運行良好,幾乎可以被人閱讀,開銷也較少,但也不太「安全」 - 因爲幾乎沒有任何描述服務的元數據 - 要麼你自己知道,因爲你是服務的作者,或者服務提供者有好的文檔在某個地方。

因此,我認爲沒有明確的贏家 - 選擇一個更接近您的需求和您的偏好。