WCF Web API与ASP.NET MVC JSON Web服务的区别

25
使用新的WCF Web API相比于ASP.NET MVC 3来公开轻量级JSON Web服务层有什么优势? 在很多方面我喜欢Web API,但缺点是它不适用于mono,而MVC 3适用。这两种方法之间的主要区别是什么?

可能是重复的问题 [今天在.NET中实现RESTful架构的最佳方法是什么?] (https://dev59.com/fm855IYBdhLWcg3weUQQ) - Darin Dimitrov
3
你听过最近的Hanselminutes节目和Glenn Block的访谈吗?这个话题被广泛地讨论了。http://www.hanselman.com/blog/HanselminutesPodcast264ThisIsNotYourFathersWCFAllAboutTheWebAPIWithGlennBlock.aspx - Darrel Miller
4个回答

8
微软公司认为这两个产品之间存在一些重叠。然而,它们的关注点不同:
- 如果你正在构建一个从你的Web服务中获取JSON的网站,则MVC可能是最好的选择。 - 如果你正在构建一个旨在被各种第三方客户端使用的API,则WCF Web API是最佳选择。
我个人的原因包括使用WCF Web API意味着我可以在Windows服务中进行自托管,并且我可以避免使用ASP.NET、web.config和Cassini :-)

这是因为您可以公开其他格式/端点而不仅仅是HTTP / JSON吗? Glen Block还提到,WCF Web API更适用于已经在WCF中编写其服务层的客户。 - adrin
@adrin 你“可以”在ASP.NET MVC中公开其他格式,只是这不是ASP.NET MVC的主要目标,而它是WCF Web API的主要目标。这实际上只是一个关注点问题。 - Darrel Miller
@adrin 如果您已经熟悉WCF,那么过渡会更容易。新版本保留了许多与WCF REST 3.5和4的向后兼容性。 - Darrel Miller
我在 Stack Overflow 上看到你经常发布关于 REST 的帖子。如果你了解 OpenRasta,能否请你谈一下它的情况?比如说这个项目目前的状态如何,以及在 .NET 技术栈上创建 RESTful 服务方面使用它的体验如何? - IsmailS
@Ismail 我只是稍微了解了一下OpenRasta,但@Serialseb知道他在做什么,而且非常聪明。 OpenRasta有自己的观点,如果这些观点与你的相符,那么它将非常棒。 如果不符合你的观点,那么你就必须深入了解,因为它非常可配置。 但是,你需要花费一定的学习曲线来改变它的默认观点。 - Darrel Miller

3

应请求于6/24/14更新:

ASP.NET Web API(曾用名WCF Web API)和ASP.NET MVC将在目前被称为ASP.NET vNext(MVC 6)中正式合并。

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

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

原始回答:

于昨天(2012年2月8日)宣布了该项目正式合并。详情请查阅:

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

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

c4mvc链接很快将会更新为Dan Roth的演示链接。


顶部链接似乎已不再相关。 - Chris Nevill
更新可能是一个不错的主意,以保持这个答案的相关性... - Joel Peltonen

2

我相信这个问题针对的是新的 WCF Web API,因此它与作为重复链接的问题不同。

WCF Web API 消除了当前 WCF Rest 支持的一些限制,但 Web API 的主要缺点是它只是一个草案 - 目前预览版 4。它没有支持,可能不应该在生产环境中使用。此外,任何新版本都可能引入破坏性更改或删除以前版本中可用的整个功能集。因此,您应该使用 ASP.NET MVC 来构建轻量级的 JSON 服务层。


2
它可以在生产环境中使用,但仅限于您自己的公司内部。您不能将其部署到客户的站点上。 - Darrel Miller

-4

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接