2011-03-26 211 views
20

實現RESTful服務的一種非常普遍的方法是利用ASP.NET MVC通過WCF實現這一點。RESTful服務:WCF與ASP.NET MVC

ASP.NET MVC具有出色的RESTful支持,通過靈活的URL路由和靈活的HTTP方法映射到控制器動作。

WCF 4.0現在對使用與ASP.NET MVC相同的ASP.NET路由機制實現RESTful服務具有出色的支持。

問題 您使用兩種方法中的任何一種創建RESTful服務和遇到的優點和缺點的經驗是什麼?

回答

1

我會說WCF是更適合於構建服務,您可以用asp.net的MVC做,但它需要更多的儀式

+1

請舉例? – jfar 2011-03-27 04:04:20

10

WCF服務可以自承載。不需要IIS。 ASP.NET MVC專注於提供HTML,而現有的.net 4 WCF堆棧更側重於XML和JSON。

新的http://wcf.codeplex.com是WCF上的下一代REST,它將比現有的堆棧有更高的性能。

新的堆棧在支持所有不同的媒體類型上會更好。它提供了更好的訪問底層HTTP協議。它將更容易測試,並且可以更容易地插入可重用的處理程序來添加標準行爲。

+3

你提出了一些好點。 根據我所看到的,如果意圖是僅在IIS中託管WCF服務(類似於MVC),則需要一些額外的管道代碼來返回Xml ActionResult或在JSON和XML之間切換以執行相同的操作通過WCF中的配置更改端點。看到ASP.NET MVC也是非常可測試的(類似於WCF),2之間還有其他關鍵差異嗎?我也會對用戶的反饋非常感興趣,他們最終選擇了WCF之一的MVC路由。 – 2011-03-27 20:20:07

+1

我並不喜歡測試版和預覽版,因此新的WCF Web API並不是我想要做的事情。 「公告:WCF Web API現在是ASP.NET Web API!隨ASP.NET MVC 4 Beta發佈的ASP.NET Web API WCF Web API和WCF支持該站點上的jQuery內容將於2012年底移除。」另外http://wcf.codeplex.com/discussions/319671截至今天仍然是BETA http://www.nuget.org/packages/AspNetWebApi – 2012-02-17 20:44:23