2010-03-25 83 views
0

在我的工作場所,我們即將開始一個大型項目。我的老闆(程序員,這是一家初創公司)希望爲此使用ASMX web服務。我不想使用不推薦的技術開始一個新的程序,並想向他展示這一點。我現在不喜歡WCF,因爲它有這麼一個極端的學習曲線,但我寧願學習它,也不願意使用不支持的技術。使用ASMX webservices有什麼實際的缺點?

我遇到的問題是,與WCF相比,我找不到任何缺點和劣勢的實際列表,這樣我就可以說服我的老闆不使用它們。並說「它不那麼強大」不是一個合適的解釋。究竟是不是可以做到這一點,我們可能需要它做一個web服務,而不是外部共享? (如,我們不支持使用我們的網絡服務的第三方,除非他們正在使用我們的客戶之一。)

回答

3

簡而言之:

ASMX是

  • 僅限於HTTP作爲它的傳輸
  • 限定於IIS(沒有其他選擇)僅被託管
  • 限於非常簡單的安全
  • 限於SOAP 1.1

WCF是

  • 在傳輸更加靈活:您可以使用HTTP,NetTCP,MSMQ,越來越多的
  • 可以在IIS託管,WAS或自託管在Windows服務中,一個控制檯應用程序,在一個WinForms或WPF應用程序
  • 有更多的安全選項
  • 支持的WS- *標準
  • 過多可與SOAP 1.1和SOAP 1互操作。2

簡而言之:WCF是ASMX做得對 - 更靈活,功能更強大,在各個方面都要多得多。

這裏的WCF和ASMX的另一個非常有用的比較:Comparing ASMX and WCF

以及最後但並非最不重要的,WCF是在性能方面也比較好,因爲這相當廣泛的MSDN文章很好地說明(包括性能數字和圖表) :A Performance Comparison of Windows Communication Foundation (WCF) with Existing Distributed Communication Technologies

+0

@marc_s:實際上,ASMX確實支持SOAP 1.2。 – 2010-03-27 14:06:59

0

我有三個詞給你:WCF。 WCF。 WCF。

下面是另外三個關於爲什麼你應該選擇WCF:Power。多功能性。可配置性。

如果您希望快速而骯髒的Web服務啓動並運行,ASMX非常棒,但老實說,做一個WCF服務只需要幾分鐘。

0

的WS- *真的很難與ASMX來實現:事務,可靠消息傳遞,安全性......等等等等

以及後來的綁定:你可以通過配置更改通訊,ASMX只是HTTP。

WF公開服務和AppFabric通過wcf工作。

我不會懷疑,今天wcf是啓動一個需要服務的項目的最佳選擇。

1

我從來不明白爲什麼有些人認爲WCF很難學。試試這個:在Visual Studio中創建一個新的WCF服務項目。現在看代碼。將其與您從創建新的ASMX項目中獲得的代碼進行比較。這不是很不一樣。

+0

它不僅僅是一個簡單的'[WebMethod]'屬性,而且web.config中的配置看起來很緊張。 – Earlz 2010-03-25 13:57:01

+0

@Earlz:你需要改變多少配置?如果你需要的話,它就在那裏。並且[OperationContract]並不比[WebMethod],[ServiceContract]更復雜[WebService]。現在,您可以通過[FaultContract]支持真正的故障。 – 2010-03-25 14:04:36