所以,我看到MVC 2现在支持[HttpPut]
和[HttpDelete]
以及[HttpGet]
和[HttpPost]
,从而可以用它做了充分的RESTful Web服务.
我一直在为WCF使用REST工具包并发现它相当强大,但我有兴趣了解使用MVC 2方法有什么(如果有的话)优势.
我们欢迎链接,战争故事,甚至纯粹的听说.
我很确定ASP.NET MVC从一开始就支持所有的HTTP动词.至少HttpVerb Enumeration从一开始就有它们.V2中唯一的新功能是它们是属性.
// V1 [AcceptVerbs( HttpVerbs.Delete )] // V2 [HttpDelete]
六分之一,另外六分之一.至于是否要通过WCF或ASP.NET MVC公开功能,可以归结为您对应用程序的看法.
如果你认为它是一个胖客户端应用程序恰好用JavaScript编写并调用数据的宁静服务(然后在客户端格式化),那么WCF会觉得是一个更正确的解决方案(即使你可以使用它其一).
但是,如果您将应用程序视为以某种形式或其他形式返回内容以供使用的服务器应用程序,那么使用RESTful API进行操作会更有意义.您的操作将返回将在浏览器中显示的完全格式化的内容,而无需进一步处理.您可以从Web服务返回格式化内容(HTML或其他),但这会有点不对劲.
至少那种区别在我的头脑中是有意义的=).您可能还对Phil Haack关于方法如何成为行动的帖子感兴趣.
现在有另一种选择,Web API. ScottGu在其博客上简要介绍,并有一个有趣的博客文章讨论了使用Web API和控制器创建的API 在这里.