4

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

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

提前致谢!

4

3 回答 3

2

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

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

于 2011-03-21T15:32:04.930 回答
1

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

MVC ASP.Net 仅构建为 HTTP。REST 不是。Representational State Transfer,或 REST,虽然最常通过 HTTP 定义,但并不限于 HTTP。WCF 允许您通过非 HTTP 连接进行通信。

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

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

于 2012-05-01T19:56:40.517 回答
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 中运行(显然),但如果您愿意,也可以自托管。

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

最后,MVC 4 是开源的,并且吸收了社区的意见,因此它将快速且高质量,并且 MS 因停产而让您陷入困境的风险要小得多。

于 2012-05-01T20:08:35.810 回答