2011-03-21 61 views
4

我正在構建一個ASP.NET MVC應用程序,並且仍然認爲自己是ASP.NET MVC的新手。我來自WCF REST背景,所以我最初設置了一些服務,我的基於jQuery的客戶端將通過RESTful AJAX請求調用。在我學習了更多有關ASP.NET MVC的知識之後,我發現了JsonResult ActionResult類型,並且我可以將這些方法添加到控制器中,它的行爲與我的WCF RESTful服務類似。爲什麼在ASP.NET MVC中有JsonResult時使用WCF REST?

所以我的問題是,是否有JsonResults的限制,我沒有看到WCF RESTful服務提供?到目前爲止,我還沒有看到它,並想知道這是否完全消除了我對WCF REST功能的需求。

在此先感謝!

+2

在你的情況下,我會說去吧。我們還將WCF REST替換爲MVC,沒有任何問題。 – Ryan 2011-03-21 18:37:40

回答

1

在你的情況,我會去與MVC去爲我的REST實現,而是要回答你的問題:只有

MVC ASP.Net是建立在是HTTP。 REST不是。具有代表性的狀態傳輸(REST)通常是通過HTTP定義的,它是not limited to HTTP。 WCF允許您通過非HTTP連接進行通信。除此之外,我會同意在MVC中實現REST更簡單,更穩健,尤其是在新的MVC Web API中,但是,REST在WCF中也有自己的位置,因爲WCF可以支持它自己沒有HTTP。

編輯:另外它應該指出,WCF可以站在它自己沒有IIS。

2

不是每個人都在構建ASP.NET MVC應用程序....並不是每個人都以任何形式構建ASP.NET。

WCF REST是完全獨立於ASP.NET或Web的服務技術 - 您可以在沒有IIS的情況下擁有WCF REST服務。

+0

您可以自行託管Web API REST服務:http://www.asp.net/web-api/overview/hosting-aspnet-web-api/self-host-a-web-api – 2012-05-01 20:20:27

1

儘管REST!= HTTP在技術上是正確的,但大部分REST服務都是使用HTTP的。微軟正在將他們的WCF HTTP/REST堆棧合併到ASP.Net中。從WCF的CodePlex網站看看這個頁面:

http://wcf.codeplex.com/wikipage?title=WCF%20HTTP

,而這個頁面

http://wcf.codeplex.com/discussions/319671

這樣的結果是,如果你想獲得最最新的HTTP REST支持你應該明確地轉向使用ASP.Net MVC 4發佈的新的ASP.Net Web API。

使用這種方法,您的服務可以在IIS中工作(顯然),但can also be self hosted如果你喜歡。如果你在WIF上有任何投資(例如自定義認證/授權管理器類,自定義令牌處理器等),他們將很容易從WCF移動到ASP.Net。

最終,MVC 4 is open source,並採取社區的投入,所以它會快速移動和高質量,和MS離開你擱置擱置的風險要小得多。

相關問題