开发者

WCF Web API vs ASP.NET MVC JSON web services [closed]

As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance. Closed 10 years ago.

What is the advantage of using new WCF 开发者_运维技巧Web API over ASP.NET MVC 3 to expose a lightweight JSON Web service layer? I like Web API in many ways, but the drawback is that it doesnt work on mono, while MVC 3 does. What are the major differences between the two approaches?


It is recognized by Microsoft, that there is some overlap between the two products. However, they do have a different focus:

  • If you are building a web site that consumes JSON from your web service then MVC is probably the best choice.

  • If you are building an API intended to be consumed by a variety of third party clients then WCF Web API is the best choice.

My own personal reasons include the fact that with WCF Web API means I can self-host in a Windows service, and I can avoid ASP.NET, web.config and Cassini :-)


Updated 6/24/14 by request:

What is now ASP.NET Web API (formerly WCF Web API) and ASP.NET MVC will formally merge in what is currently dubbed ASP.NET vNext (MVC 6).

http://www.asp.net/vnext/overview/aspnet-vnext/overview

===========================================================================

Original answer:

It was announced yesterday (2/8/2012) that the projects are formally merging. See:

http://www.c4mvc.net/meeting/?id=25

and

http://msdn.microsoft.com/en-us/hh824721

The c4mvc link should be updated with a link to Dan Roth's presentation soon.


I believe this question targets new WCF Web API and because of that it is not the same as question linked as duplicate.

WCF Web API removes some limitations of current WCF Rest support but the main disadvantage of the Web API is that it is only a draft - currently preview 4. It has no support and probably it is not supposed to be used in production environment. Also any new version can introduce breaking changes or remove whole set of features available in previous version. Because of that you should use ASP.NET MVC to build lightweight JSON service layer.


The differences are night and day. MVC Framework is not a web service layer. If you truly need a web service to be consumed by varying clients (and possibly on varying platforms) then you are left to choose between a WCF-based web service or an old-fashioned XML web service.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜