Web 服务 — WCF 与 Web 服务ASMX(“标准”)
-
08-06-2019 - |
题
我正在开发一个新项目。与常规的老式 Web 服务相比,使用 WCF Web 服务有什么好处吗?
Visual Studio 为两者提供了模板。有什么区别?优点和缺点?
解决方案
什么是“普通老式的网络服务”? ASMX服务,还是您也使用WSE?ASMX 服务本质上不具备互操作性,不支持 WS-* 规范,而且 ASMX 是一项老化速度非常快的技术。WSE(Web 服务增强)服务确实添加了对 WS-* 的支持,并且可以实现互操作,但 WCF 旨在取代 WSE,因此您应该花时间学习它。我想说,除非您的应用程序是一次性的,否则如果您选择 WCF,您将获得巨大的灵活性并最终得到更好的设计。世界碳纤维 做 具有超出 [WebMethod] 属性的学习曲线,但在我看来,学习曲线过于夸张,并且它比传统 ASMX 服务更加强大且面向未来。
除非您的时间安排根本无法忍受学习曲线,否则学习 WCF 而不是仅仅坚持使用 ASP.NET Web 服务对您自己来说是一个巨大的帮助。应用程序只会继续变得越来越分布式和互连,而 WCF 是 Microsoft 平台上分布式计算的未来。
这是一个比较 两者之间。
其他提示
自己做所有事情的优点是:
- 无学习曲线
- 非常灵活
WCF的优点是:
- 从长远来看,花费更少的时间
- 无需编程即可切换协议
WCF的缺点:一些静态属性名称 可能会很长...
总结一下:WCF 让您专注于编程,但您需要先学习它;-)
WCF 专业版:您不需要网络服务器(即国际信息系统)。您实际上不需要服务器操作系统。
我喜欢这样一个事实:编写 WCF 服务可以轻松地将服务与实现分离。您可以编写服务,然后将其托管在 IIS、控制台应用程序或 Windows 服务中;您还可以通过 HTTP、net TCP 等与它通信。
对您的服务实现和交互进行单元测试更容易!
如果您的项目使用框架4.0,为什么不尝试WebApi,它很容易理解并且使用约定优于配置。
这是使用超快速接口构建应用程序的好方法
看看MS的入门视频,它是从WCF数据服务发展而来的。
http://www.asp.net/web-api/overview/getting-started-with-aspnet-web-api
在我的经验中
世界碳纤维
使用它是非常冗长的,它与其他微软产品不太兼容,当然,它在微软世界之外并没有被广泛接受。
但我的主要问题是它不稳定,它往往会失败(在某些情况下),并且需要在使用之前对其进行调整。
反而
SOAP(又名标准 Web 服务),它有效、易于工作并且广泛兼容(Java-JAX 无需任何修改即可接受它)。
在 SOAP 中添加身份验证可能有点棘手,但并非不可能。