他们之间有什么区别?
我什么时候选择一个而不是另一个?
这个答案基于一篇不再存在的文章:
文章摘要:
"基本上,WCF是一个服务层,允许您构建可以使用各种通信机制进行通信的应用程序.通过它,您可以使用Peer to Peer,命名管道,Web服务等进行通信.
您无法比较它们,因为WCF是用于构建可互操作应用程序的框架.如果您愿意,可以将其视为SOA推动者.这是什么意思?
好吧,WCF符合ABC的要求,其中A是您要与之通信的服务的地址,B代表绑定,C代表合同.这很重要,因为可以在不必更改代码的情况下更改绑定.合同更加强大,因为它迫使合同与实施分离.这意味着合同是在一个接口中定义的,并且有一个具体的实现,消费者使用相同的合同理念绑定.数据模型被抽象出来."
......以后......
"当我们需要与其他通信技术(例如,Peer to Peer,命名管道)而不是Web服务进行通信时,应该使用WCF"
从WCF和Web服务之间的区别是什么?
WCF是Microsoft所有早期Web服务技术的替代品.它的功能远远超过传统上被视为"Web服务"的功能.
WCF"Web服务"是通过WCF实现的更广泛的远程通信范围的一部分.与传统的ASMX相比,您将在WCF中获得更高程度的灵活性和可移植性,因为WCF是从头开始设计的,用于总结Microsoft提供的所有不同的分布式编程基础架构.WCF中的端点可以通过SOAP/XML与TCP /二进制文件一样轻松地进行通信,并且更改此介质只是一个配置文件mod.从理论上讲,这可以减少移植或更改业务需求,目标等所需的新代码量.
ASMX比WCF旧,ASMX可以执行的任何操作都可以是WCF(以及更多).基本上你可以看到WCF试图将所有不同的方式组合在一起,让两个应用程序在微软世界中进行通信; ASMX只是众多方式中的一种,因此现在归入WCF的功能范围.
Web服务只能通过HTTP访问,它可以在无状态环境中工作,WCF非常灵活,因为它的服务可以托管在不同类型的应用程序中.托管WCF服务的常见方案是IIS,WAS,自托管,托管Windows服务.
主要区别在于Web Services Use
XmlSerializer
.但WCF使用DataContractSerializer
哪个性能更好XmlSerializer
.
Web Service 基于SOAP并以XML形式返回数据.它仅支持HTTP协议.它不是开源的,但可以被任何理解xml的客户端使用.它只能在IIS上托管.
WCF 也基于SOAP并以XML形式返回数据.它是Web服务(ASMX)的发展,支持TCP,HTTP,HTTPS,命名管道,MSMQ等各种协议.WCF的主要问题是其繁琐而广泛的配置.它不是开源的,但可以被任何理解xml的客户端使用.它可以在应用程序中或IIS上或使用窗口服务托管.
基本和主要区别在于,ASP.NET Web服务旨在通过HTTP交换SOAP消息,而WCF服务可以通过任何传输协议(即HTTP,TCP,MSMQ或NamedPipes等)使用任何格式(默认为SOAP)交换消息.