2011-03-26 175 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