繁体   English   中英

使用ASP.NET MVC作为Web服务

[英]Using ASP.NET MVC as Web Service

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

即使用没有视图的ASP.NET MVC,因此其他应用程序可以使用URL来GET或POST到Controller中的操作。

有人用过吗? 如果是这样,不使用Web服务项目有任何缺点吗?

谢谢大家!

如果你想使用简单的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。

这实际上取决于你正在编写的应用程序的类型。 我实际上会反驳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

新的ASP.NET MVC包括Web Api Kit,它可以完全按照您的需要进行操作。 使用当前版本,您仍然可以使用它。 它没有真正的缺点

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM