有没有人有使用 ASP.NET MVC 项目作为 Web 服务的经验?
即使用没有视图的 ASP.NET MVC,因此其他应用程序可以使用 URL 来获取或发布到控制器中的操作。
有人用过吗?如果是这样,不使用 Web Service 项目有什么缺点吗?
谢谢大家!
有没有人有使用 ASP.NET MVC 项目作为 Web 服务的经验?
即使用没有视图的 ASP.NET MVC,因此其他应用程序可以使用 URL 来获取或发布到控制器中的操作。
有人用过吗?如果是这样,不使用 Web Service 项目有什么缺点吗?
谢谢大家!
这实际上取决于您正在编写的应用程序的类型。实际上,我会反对 LukLed 的立场——当您想要支持 Windows 身份验证或 TCP 或 MSMQ 等不同协议时,基于 SOAP 的服务更适合内部客户端。
围绕特定“资源”使用更多 Web 风格的 GET 和 POST 开始让您进入REST 架构风格。这种技术对我来说有几个明显的优势:
一篇特别帮助我理解此处权衡的文章是 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
如果您想使用简单的 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,它可以完全满足您的需求。使用当前版本,您仍然可以使用它。它没有真正的缺点