16

有没有人有使用 ASP.NET MVC 项目作为 Web 服务的经验?

即使用没有视图的 ASP.NET MVC,因此其他应用程序可以使用 URL 来获取或发布到控制器中的操作。

有人用过吗?如果是这样,不使用 Web Service 项目有什么缺点吗?

谢谢大家!

4

3 回答 3

9

这实际上取决于您正在编写的应用程序的类型。实际上,我会反对 LukLed 的立场——当您想要支持 Windows 身份验证或 TCP 或 MSMQ 等不同协议时,基于 SOAP 的服务更适合内部客户端。

围绕特定“资源”使用更多 Web 风格的 GET 和 POST 开始让您进入REST 架构风格。这种技术对我来说有几个明显的优势:

  • 响应通常较小,尤其是在使用 JSON 等轻量级格式时
  • 由于请求和响应的简单性,这使得在移动/本地应用程序中使用起来更加容易(例如,参见Twitter 的 API
  • 您创建的服务可以是自描述的和可发现的,因为您可以像普通网页一样链接到 API 的其他部分。

一篇特别帮助我理解此处权衡的文章是 Martin Fowler 的“走向 REST 荣耀的步骤”。 话虽如此,它可能适合也可能不适合您的应用程序。

如果您确实选择构建更多基于 REST 的服务,请务必考虑使用其他人提到的 MVC4 中内置的ASP.NET Web API 。它目前处于测试阶段,但微软觉得它足够好,可以给它一个上线许可证。

更新:

自 ASP.NET 核心以来,ASP.NET Web API 已集成到 MVC 6 项目中。 https://wildermuth.com/2016/05/10/Writing-API-Controllers-in-ASP-NET-MVC-6

于 2012-05-28T03:05:31.880 回答
9

如果您想使用简单的 GET 和 POST 调用,MVC 将是不错的选择。ASP.NET MVC 4 将支持创建基于 HTTP 的 API。你可以在这里阅读:http ://www.asp.net/web-api

在 Web Service 项目中创建的 Web Service 可以更容易地使用,因为它可以生成 WSDL 文件,可以很容易地在许多不同的语言中读取和使用(通过使用 SOAP 协议)。另一方面,WS 可以创建巨大的 XML 响应,如果您使用自己的格式,它可能会小很多倍。

如果您想在全球范围内传播您的 Web 服务,那么允许 SOAP 将使许多开发人员的生活变得更轻松。SOAP 可以被几乎不了解编程的人使用。如果您将在内部使用它,更喜欢速度和简单的请求和响应,则可以使用 MVC。

于 2012-05-28T01:21:35.783 回答
2

新的 ASP.NET MVC 包括 Web Api Kit,它可以完全满足您的需求。使用当前版本,您仍然可以使用它。它没有真正的缺点

于 2012-05-28T02:36:36.467 回答