【发布时间】:2012-05-28 01:04:38
【问题描述】:
有人有使用 ASP.NET MVC 项目作为 Web 服务的经验吗?
即使用没有视图的 ASP.NET MVC,因此其他应用程序可以使用 URL 来获取或发布到控制器中的操作。
有人用过吗?如果是这样,不使用 Web Service 项目有什么缺点吗?
提前谢谢大家!
【问题讨论】:
标签: c# asp.net-mvc web-services rest
有人有使用 ASP.NET MVC 项目作为 Web 服务的经验吗?
即使用没有视图的 ASP.NET MVC,因此其他应用程序可以使用 URL 来获取或发布到控制器中的操作。
有人用过吗?如果是这样,不使用 Web Service 项目有什么缺点吗?
提前谢谢大家!
【问题讨论】:
标签: c# asp.net-mvc web-services rest
这实际上取决于您正在编写的应用程序类型。实际上,我会反对 LukLed 的立场——当您想要支持 Windows 身份验证或 TCP 或 MSMQ 等不同协议时,基于 SOAP 的服务更适合内部客户端。
围绕特定“资源”使用更多网络风格的 GET 和 POST 开始让您进入REST architectural style。这种技术对我来说有几个明显的优势:
Martin Fowler 的"Steps Toward the Glory of 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
【讨论】:
如果您想使用简单的 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。
【讨论】:
新的 ASP.NET MVC 包括 Web Api Kit,它可以完全满足您的需求。使用当前版本,您仍然可以使用它。它没有真正的缺点
【讨论】: