RESTful服务:WCF与ASP.NET MVC的比较

20

实现RESTful服务的一种常见方法是利用ASP.NET MVC通过WCF实现。

ASP.NET MVC具有出色的RESTful支持,可通过灵活的URL路由和灵活的HTTP方法映射到控制器动作来实现。

WCF 4.0现在也具有出色的RESTful服务实现支持,同样使用了ASP.NET MVC的路由机制。

问题 你使用过其中一种方法创建RESTful服务的经验和遇到的优缺点是什么?

3个回答

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),是否还有其他需要注意的关键差异?我也非常希望听到使用MVC路线代替WCF路线的用户的反馈。 - Kyriacos Miltiadous
1
我不太喜欢使用测试版和预览版,因此新的WCF Web API并不是我想要立即尝试的东西。"公告:WCF Web API现在是ASP.NET Web API!ASP.NET Web API与ASP.NET MVC 4 Beta一起发布。本网站上的WCF Web API和WCF支持jQuery内容将在2012年底之前删除。" 另外,请参考http://wcf.codeplex.com/discussions/319671。截至今天,它仍然是BETA版本。http://www.nuget.org/packages/AspNetWebApi - Tom Stickel

2

1
我认为WCF更适合构建服务,虽然你也可以用ASP.NET MVC来实现,但需要更多的仪式感。

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