【问题标题】:Which way to go - MVC REST or WCF REST?走哪条路 - MVC REST 或 WCF REST?
【发布时间】:2011-04-27 01:00:59
【问题描述】:

我有一组 Web 方法,我计划在 MVC 或 WCF 之上转换为 REST。 但是在阅读了几个类似主题的问题和答案后,我有点困惑。

** My app is .NET 4, C# with Mongo database as backend which emits JSON **

这是我的用例:

  • 持久化网络表单数据(新用户注册,我需要保存网络表单)& 显示更新状态(成功或失败)

  • 用户发表新评论/回复。我需要将评论保存在 DB (async w/jquery) & 显示更新状态(成功或失败)

  • 用户喜欢评论/回复。我需要将类似的东西保存在数据库中(异步 w/jquery)& 显示更新状态(成功或失败)

  • 用户更新标题、标签或任何其他字段。我需要更新数据库(异步 w/jquery) & 向用户显示更新状态

  • 用户想要查看 cmets 的下一页。我调用网络服务并默默追加 cmets。

  • 将来我打算向其他应用程序开放 API 以与我的应用程序通信。所以我需要 REST api 处理它。

  • 我是 MVC 和 WCF 框架的新手。所以我需要学习任何一种方式。 但我更喜欢简单干净的编码

  • 寻找重量轻、速度更快的解决方案(从长远来看更便宜)

    如果我必须指定其他任何可以说明我需要的内容,请告诉我。

    谢谢

【问题讨论】:

    标签: asp.net-mvc wcf rest


    【解决方案1】:

    我会说这取决于您的时间范围。如果您需要在接下来的 3-6 个月内将某些东西投入生产,并且您的 API 不会太大,并且会坚持使用 HTML/JSON,那么 MVC 可能会很好。

    如果这是一个长期战略项目,那么我会关注http://wcf.codeplex.com。 WCF 小组有一些出色的新东西用于构建复杂的 Web api。

    【讨论】:

    • 这是一项长期战略。以后从 MVC 切换到 WCF 的成本是多少?我正在重新编码,这很痛苦,因为我正在浏览网站中的其他部分。
    • 无需切换 - 使用 MVC,您将拥有所需的一切。宁静的界面已经存在。除非您需要 wcf 的某些高级绑定特性(扩展安全性等)或严格来说 SOA 不依赖于 Web 应用程序 - 坚持使用 MVC
    • 我看到有人提到 OpenRasta 提供了更多 OOB 功能。它的性能以及在生产环境中使用它的人怎么样?
    • @Projapati 只要您的 API 不太大,切换起来应该相对容易。最后都是HTTP。此外,MVC 和 WCF Web API 可以作为混合解决方案一起运行。
    • 为了详细说明,其他人不必阅读整篇文章 - 通过更严格的 RESTful 定义为相同的源数据(例如 pdf、相同资源的 word doc)返回的不同内容类型应该有两个单独的 URI 来识别它们,而不是在标头中进行内容协商。有些人显然认为这不是问题,但是 WCF 拥有它以及使用 WCF 创建 RESTful 服务的能力,并不意味着它自动成为真正的 RESTful。现在我已经成功地将这匹马打败了 - 决定权取决于个人 - 只需我的 0.08 美分 :) :)
    【解决方案2】:

    由于您正在编写 Web 应用程序 - 我会使用 MVC。然后,您将获得 MVC 的可测试性优势及其固有的 RESTful。

    任务,例如: “持久化网络表单数据(新用户注册,我需要保存网络表单)&显示更新状态(成功或失败)”

    确定您可以让 Web 应用程序调用服务来执行此操作 - 但是当您可以在 MVC 内部的 RESTful 接口中获取 Web 应用程序和调用来执行此操作时 - 为什么还要去其他地方?记住 - 这个堆栈溢出应用程序是用 MVC 编写的:)

    【讨论】:

    • 基于,stackoverflow.com/questions/2530880/… 似乎 MVC 可能是我的方式。我也在看 OpenRasta。所以它将是 MVC 或 OpenRasta
    • 如果这只是针对面向服务的架构,那么 WCF 会更有意义 - 但将其与 Web 应用程序耦合的事实是一个灌篮。
    【解决方案3】:

    我会选择 WCF,它是为此目的而设计的,如果不是全部,大部分管道都是为您完成的。将 MVC 用作 RESTful 服务后,您将需要重新实现一些东西以使其像真正的服务一样工作。

    【讨论】:

    • 是否可以在我使用 win XP 在 localhost 上测试的站点上使用 WCF?如果需要复杂的设置和windows server,那就有点困难了。
    • 绝对 - 我们为我们公司提供的 wcf 服务是在 xp 开发机器上开发和测试的,我们也发布自己的证书并通过 ssl 进行测试。由于 iis 的版​​本,限制归结为将 IIS 作为 msmq 服务的主机和其他一些东西,但在大多数情况下你不会有任何问题
    猜你喜欢
    • 2011-02-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-16
    • 1970-01-01
    • 1970-01-01
    • 2011-04-16
    相关资源
    最近更新 更多