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