【问题标题】:Why use WCF REST when you have JsonResult in ASP.NET MVC?为什么在 ASP.NET MVC 中有 JsonResult 时使用 WCF REST?
【发布时间】:2011-07-19 18:53:58
【问题描述】:

我正在构建一个 ASP.NET MVC 应用程序,但我仍然认为自己是 ASP.NET MVC 的新手。我来自 WCF REST 背景,因此我最初设置了一些服务,我的基于 jQuery 的客户端将通过 RESTful AJAX 请求调用这些服务。随着我更多地了解 ASP.NET MVC,我发现了 JsonResult ActionResult 类型,我可以将这些方法添加到控制器中,它的行为就像我的 WCF RESTful 服务一样。

所以我的问题是,我没有看到 WCF RESTful 服务提供的 JsonResults 是否存在限制?到目前为止,我还没有看到它,我想知道这是否完全消除了我对 WCF REST 功能的需求。

提前致谢!

【问题讨论】:

  • 在你的情况下,我会说去吧。我们还用 MVC 替换了 WCF REST,没有任何问题。

标签: wcf asp.net-mvc-2 wcf-rest


【解决方案1】:

虽然 REST != HTTP 在技术上是正确的,但大多数 REST 服务使用 HTTP。微软正在将他们的 WCF HTTP/REST 堆栈合并到 ASP.Net 中。从 WCF codeplex 站点查看此页面:

http://wcf.codeplex.com/wikipage?title=WCF%20HTTP

还有这个页面

http://wcf.codeplex.com/discussions/319671

这样做的结果是,如果您想获得最新的 HTTP REST 支持,您肯定应该转向与 ASP.Net MVC 4 一起提供的新的 ASP.Net Web API。

使用这种方法,您的服务可以在 IIS 中运行(显然),但如果您愿意,可以在 can also be self hosted 中运行。

此外,如果您对现有 WCF 服务(例如自定义身份验证/授权管理器类、自定义令牌处理程序等)的 WIF 进行任何投资,它们将很容易从 WCF 迁移到 ASP.Net。

最后,MVC 4 is open source,并听取社区意见,因此它将快速且高质量,并且 MS 因停产而让您陷入困境的风险要小得多。

【讨论】:

    【解决方案2】:

    在您的情况下,我会使用 MVC 进行 REST 实现,但要回答您的问题:

    MVC ASP.Net 仅构建为 HTTP。 REST 不是。代表性状态传输或 REST,虽然最常通过 HTTP 定义,但它是 not limited to HTTP。 WCF 允许您通过非 HTTP 连接进行通信。

    除此之外,我同意在 MVC 中实现 REST 更容易、更健壮,尤其是在较新的 MVC Web API 东西中,但也就是说,REST 在 WCF 中也有它的位置,因为 WCF 可以立足它是自己的,没有 HTTP。

    编辑:还应该注意的是,WCF 可以在没有 IIS 的情况下独立运行。

    【讨论】:

      【解决方案3】:

      并不是每个人都在构建 ASP.NET MVC 应用程序......甚至不是每个人都在构建任何形式的 ASP.NET。

      WCF REST 是一种完全独立于 ASP.NET 或 Web 的服务技术 - 您可以在没有 IIS 的情况下拥有 WCF REST 服务。

      【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-04-12
      • 1970-01-01
      • 2011-09-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-06-27
      相关资源
      最近更新 更多