【问题标题】:What is the difference between making calls to mvc controller methods and WCF WEB API Rest Service Calls?调用 mvc 控制器方法和 WCF WEB API 休息服务调用有什么区别?
【发布时间】:2011-11-09 17:17:07
【问题描述】:

调用 mvc 控制器方法和 WCF WEB API REST 服务调用有什么区别?

我可以创建一个 mvc 控制器 post 方法,它允许我执行我需要的任何代码。

我还可以使用 MVC 创建 WCF Web API REST 服务。

这两种访问数据的方法有什么区别?

更具体地说,在这种情况下使用 WCF 有哪些优势?

【问题讨论】:

  • 我猜这个问题会得到很多意见,因为 MVC 4 Beta 已经发布并且他们将 Web.API 添加到 MVC =D

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


【解决方案1】:

WCF Web API 开箱即用地处理 XML 和 JSON,而在使用 MVC 时您必须“手动”创建 XML 和 JSON(阅读:使用序列化程序)——这只是 WCF Web 的好处之一基于 MVC 的 API。

另一个是 WCF Web API 提供的分离级别,例如实现您的服务逻辑与内容协商。

然而,您可以轻松地使用 IoC 容器并对使用 WCF Web API 创建的 API 进行单元测试。

WCF Web API 主要是为了构建 ReSTful API 而创建的,而 MVC 只允许它也创建它们 - 因此使用 WCF Web API,您会感觉更舒适地创建 ReST API。

如果您打算从头开始将项目作为 Web (ReST) Api,您应该从 WCF Web API 开始。

如果您打算从一个也提供 ReSTful 服务的网站开始,您应该建议使用 MVC。

您还应该考虑来自 Glenn Block 的 this tweet

【讨论】:

    【解决方案2】:

    您可以使用其中任何一个来完成典型的 REST API。

    通常问题归结为 (1) 您需要哪些特定功能以及 (2) 您更熟悉哪些技术。

    WCF 的某些功能非常简洁,在 MVC 中不可用(例如二进制序列化、无需 IIS 的托管能力等),但这些通常不是 REST API 中的要求。

    总的来说,我会说:

    • 如果您已经有 WCF 实现并希望将其公开为 REST API,请使用 WCF。

    • 如果您已经有一个 MVC 站点并希望将其作为 REST API 与 MVC 一起公开。

    【讨论】:

    • 我没有投赞成票或反对票,但您的回答归结为“这一切都取决于......”而没有提供具体的决策点,所以我可以看看是否有人觉得它没有用,这是 -1 的意思。
    • @HectorCorrea 您的两点与问题#1 无关,他曾说过 Rest Web API(为什么他需要二进制序列化?#2 他熟悉的技术有什么关系。最后您刚刚从 Alexander 那里抄袭了他在您之前 1 小时回答的最低 2 点。
    猜你喜欢
    • 2010-09-18
    • 2012-03-16
    • 2012-02-29
    • 2010-10-26
    • 1970-01-01
    • 2011-08-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多