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