我有一個ASP.net應用程序,目前使用SOAP Web服務。該平臺針對.net 2.0,我使用Visual Studio Professional 2005來維護它。我現在有要求在同一個應用程序中使用一些寧靜的Web服務。WCF是否使Restful Web服務的消耗變得微不足道?
是RESTful Web服務與WCF消費那麼微不足道,相較於使用HttpClient的,這是值得的成本和升級的時間到Visual Studio 2008和.NET 3.5框架
我有一個ASP.net應用程序,目前使用SOAP Web服務。該平臺針對.net 2.0,我使用Visual Studio Professional 2005來維護它。我現在有要求在同一個應用程序中使用一些寧靜的Web服務。WCF是否使Restful Web服務的消耗變得微不足道?
是RESTful Web服務與WCF消費那麼微不足道,相較於使用HttpClient的,這是值得的成本和升級的時間到Visual Studio 2008和.NET 3.5框架
我永遠不會勸阻任何人升級到VS2008和.Net 3.5,但是,我也永遠不會鼓勵任何人在客戶端使用WCF與HTTP端點通信。
我強烈建議您查看WCF REST Starter Kit中提供的HTTP客戶端庫。然而,這個庫儘管有它的名字,並不需要WCF或.NET 3.5。要使用Microsoft.Http.HttpClient,您只需要.net 2.0。如果使用具有助手方法的Microsoft.Http.Extensions DLL,則只需要3.5即可使用DataContract序列化程序和Syndication饋送。
在我看來,不要爲客戶端的DataContracts吸收遠程服務,它真的是尾巴搖擺狗,你會長期受苦。這裏有幾個關於Stack Overflow的人試圖讓DataContracts產生一個服務需要的確切XML的問題。
這裏是一個鏈接描述什麼做。
http://blogs.msdn.com/pedram/archive/2008/04/21/how-to-consume-rest-services-with-wcf.aspx
我會升級,因爲他們已經把東西的地方,讓您的工作更輕鬆。升級到3.5後,您還可以獲得超過2.0的其他優勢,因此您不僅可以獲得REST組件,還可以使用其他方式(如LINQ,擴展方法等)。
請記住,您不需要新的運行時環境來使用.net 3.5,所以如果你絕對不能在服務器上安裝3.5,你可以在部署時加入3.5程序集,它應該可以工作。
檢查出Channel9的WCF的REST截屏:
http://channel9.msdn.com/tags/REST%20Starter%20Kit%20endpoint%20screencasts/
尤其是這一個位置:Consuming REST services with HttpClient
花上截屏15分鐘,然後自己判斷! :-)
只是爲了澄清,WCF REST HttpClient不使用WCF與服務器通信,它使用System.Net中普通的vanilla HTTP堆棧。 – 2010-04-07 14:44:31