有没有人有将 ASP.NET MVC 项目用作 Web 服务的经验?
即在没有 View 的情况下使用 ASP.NET MVC,因此其他应用程序可以使用 URL 来 GET 或 POST 到 Controller 中的操作。
有人用过吗?如果是这样,不使用 Web 服务项目有什么缺点吗?
提前谢谢大家!
最佳答案
这实际上取决于您正在编写的应用程序类型。实际上,我会反驳 LukLed 的立场——基于 SOAP 的服务更适合内部客户端,当您想要支持诸如 Windows 身份验证或不同协议(protocol)(如 TCP 或 MSMQ)之类的东西时。
围绕特定“资源”使用更具网络风格的 GET 和 POST 开始让您进入 REST architectural style .这种技术对我来说有几个明显的优势:
- 响应通常较小,尤其是在使用 JSON 等轻量级格式时
- 由于请求和响应的简单性,这使得它更容易在移动/ native 应用程序中使用(例如,参见 Twitter's API)
- 您创建的服务可以是自描述和可发现的,因为您可以像普通网页一样链接到 API 的其他部分。
特别帮助我理解这里权衡的一篇文章是 Martin Fowler 的 "Steps Toward the Glory of REST."尽管如此,它可能适合也可能不适合您的应用。
如果您确实选择构建更基于 REST 的服务,一定要考虑使用 ASP.NET Web API正如其他人提到的那样,内置到 MVC4 中。它目前处于测试阶段,但微软认为它足够好,可以授予它上线许可证。
更新:
自 ASP.NET Core 以来,ASP.NET Web API 已集成到 MVC 6 项目中。 https://wildermuth.com/2016/05/10/Writing-API-Controllers-in-ASP-NET-MVC-6
关于c# - 使用 ASP.NET MVC 作为 Web 服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10778377/