.net中的RESTful服务 - 哪个是WCF或ASP.NET MVC的更好选择?

时间:2012-01-23 08:37:04

标签: .net asp.net-mvc wcf rest wcf-web-api

我计划编写主要在客户端(AJAX)工作的Web应用程序,并使用JSON与服务器进行REST通信,并使用另一个将使用XML(或最终使用JSON)的客户端。这个应用程序将具有客户端身份验证,但相当简单和小。

这个RESTful Web服务哪个更好的选择:WCF还是ASP.NET MVC?

2 个答案:

答案 0 :(得分:5)

此时,如果您现在开始一个项目,我将沿着WCF WebAPI路线前进。 MVC提供了构建REST API的基本基础结构,但没有内容类型协商等内置支持。

WebAPI旨在为.NET框架的REST样式服务提供一流的支持

然而,Web API尚未发布(虽然我很确定它会在今年发布)所以你将开发beta代码 - 哦,它也可以在Nuget上发布

btw - CHM文件中有一些很好的东西可以帮助你入门

答案 1 :(得分:3)

正确答案可能是:这取决于。

如果你已经熟悉其中一种技术,那么也许你应该使用那种技术,但我宁愿使用ASP.NET MVC。

我现在要提到Omar Al Zabir

的两篇文章

如果您想沿着ASP.NET MVC路线前进,请阅读:http://www.codeproject.com/Articles/233572/Build-truly-RESTful-API-and-website-using-same-ASP

如果您打算使用WCF,请阅读有关提高可扩展性的信息:http://www.codeproject.com/Articles/234085/Fixing-WCF-to-build-highly-scalable-async-REST-API

使用MVC的一个很酷的事情是,您可以使用相同的代码编写RESTful应用程序公开RESTful API。

编辑:为了澄清一下,MVC RESTful项目支持GET,PUT,POST,DELETE,所以它确实是RESTful。请参阅此处的文档:http://code.msdn.microsoft.com/Build-truly-RESTful-API-194a6253

特别是这一点:

  

所有这些URL都支持GET,POST,PUT,DELETE。用户可以浏览   这些URL和获取html页面呈现。客户端应用程序可以进行AJAX调用   这些URL对这些URL执行CRUD。从而使真正的RESTful   API和网站。