2010-12-03 28 views
7

意圖是創建一組人們可以重複使用的Web服務。這些服務主要與創建,檢索和處理數據的後端數據庫進行交互。WCF vs ASPX webmethods vs ASMX webmethods

我們希望公開服務,以便人們可以使用它來創建數據混搭和其他應用程序。

最終用戶是可以在我們的域名內或我們的域名之外的網頁。對於域外的頁面,我們計劃發佈將被配置爲檢索和顯示數據的小部件。

一個需求 - 應用程序應該在其可處理的用戶數量方面具有極高的可擴展性。

我們的代碼庫是.net,我們正在研究ASPX webmethods(或ASHX),ASMX webmethods和WCF(開始在WCF上閱讀)。

在安全性/訪問方面,我發現維護sessionid,會員資格在所有三個方面都是可行的。 WCF似乎有點複雜的設置。我們無法立即看到asmx的價值,因爲我們只需在aspx中使用webmethod即可完成所有工作(只需稍微調整一下)。

此外,假設與ASP.NET MVC2我可能能夠得到乾淨的網址以及這些webmethods。

問題

哪一個將是最有效的的性能可擴展性方面? 爲什麼我應該選擇WCF或ASMX的任何原因?

感謝您抽出寶貴時間閱讀本文,並對因爲我對.net感興趣的幼稚問題表示歉意。

編輯我明白,WCF是要走的路。爲了理解這些技術的發展,如果有人能夠揭示aspx webmethod與asmx不同的原因,那麼類似的事情(除了發現之外)可以通過兩者來實現。 aspx webmethods可以返回其他格式的數據(純文本,json)。另外,我們似乎可以使用ashx來構建平靜的服務。再次爲天真的問題再次道歉。

回答

9

您應該使用WCF開發.Net中的webservices。 WCF具有高度可配置性,具有多種安全選項,傳輸協議,序列化,擴展等。Raw performance也顯着更高。此外,WCF正在積極開發,並在版本3.5和4中添加了許多新功能。還有WCF數據服務和WCF RIA服務等變體。 WCF 4.0也有更好的REST和JSON支持,你可以直接在ASP.Net/JQuery中使用。

+0

我一直在想,使用WCF的重點是什麼,你的迴應讓我改變了主意。很高興看到Jquery得到如此多的支持。 – 2010-12-03 22:49:31

3

ASMX被認爲是棄用的技術,並由WCF取代。因此,如果您要開始需要公開可重用服務的新開發,那麼WCF就是要走的路。

+3

您是否有實際的資源可以引用您關於ASMX已被棄用的斷言? – mattmc3 2011-07-11 01:50:17

+1

鏈接到用於.NET 3.5的wsdl.exe工具的文檔:(http://msdn.microsoft.com/zh-cn/library/7h3ystb6(VS.90).aspx)。請注意文本「本主題特定於傳統技術,現在應使用Windows Communication Foundation(WCF)創建XML Web服務和XML Web服務客戶端。」 – dana 2011-12-12 21:41:46

1

我不一定不同意以前的答案。但是,從另一個角度來看,WFC配置起來很棘手。它需要在你的配置文件中綁定,端點,數據包大小,許多混淆參數等,並且報告了很多序列化/反序列化問題。另外WCF是一種相對較新的技術(因此仍然需要使用錯誤和補丁)。 客戶端生成的[參考。cs]文件可能具有不需要的接口,並且WSDL中公開的每個公共屬性客戶端類都使用LINQ to SQL或實體框架使用的相同觀察者模式(OnChanged,OnChanging等)生成,因此這會爲客戶端增加許多胖代碼,而不是傳統的SOAP Web客戶端方式。 我的建議是,如果您不使用TCP遠程處理,或者您不需要雙向通知機制進行遠程更改 - 所有這些都是WCF非常酷的功能 - 您無需使用它。