首先,WCF和WebService一些区别
1,WCF支持多中通讯协议,http/https tcp/udp/msmq.命名管道,对等网,消息可达性,事物流等.
2,WCF能够与ASP.NET集成,共享同一个上下文(HttpContext)
3,WCF支持多种消息传输格式,如text,binary,mtom,Json等等
4,WCF的安全性更强,支持对称安全,非对称安全,消息安全,传输安全,SSL安全,Windows流安全等.
5,WCF支持多种会话模式,单项 双向,请求相应.
6,WCF支持REST风格.
7,WCF支持多种序列化格式方式,DataContractSerializer,XmlSerializer
,DataContract,JsonSerializer等
8,WCF 支持多种并发模式:单例、单调、会话
1.WebService:严格来讲是行业标准,不是技术,使用XML扩展标记语言来表示数据(这个是夸语言和平台的关键)。微
软的Web服务实现称为ASP.NET Web Service.它使用Soap简单对象访问协议来实现分布式环境里应用程序之间的数据交互。
WSDL来实现服务接口相关的描述。此外Web services 能够注册到UDDI中心.供其客户查找使用。
后来微软作了ASP.NET Web Service的安全,性能,数据加密、解密,托管宿主等多方面的扩展,称为WSE系列,这个是过
度产品,最高到WSE3.0.后来就是WCF时代。
2.WCF:其实必定程度上就是ASP.NET Web Service,由于它支持Web Service的行业标准和核心协议,所以ASP.NET Web Service
和WSE能作的事情,它几乎都能胜任,跨平台和语言更不是问题(数据也支持XML格式化,并且提供了本身的格式化器)。
可是WCF做为微软主推一个通信组件或者平台,它的目标不单单是在支持和集成Web Service,由于它还兼容和具有了微软
早期不少技术的特性。
根据微软官方的解释,WCF(以前的版本名为“Indigo”)是使用托管代码创建和运行面向服务(Service Oriented)应用程
序的统一框架。它使得开发者可以创建一个跨平台的安全、可信赖、事务性的解决方案,且能与已有系统兼容协做。WCF
是微软分布式应用程序开发的集大成者,它整合了.Net平台下全部的和分布式系统有关的技术,如Enterprise Sevices
(COM+).Net Remoting、Web Service(ASMX)、WSE3.0和MSMQ消息队列。以通讯(Communiation)范围而论,它能够跨进程、跨机器
、跨子网、企业网乃至于 Internet;以宿主程序而论,能够以ASP.NET,EXE,WPF,Windows Forms,NT Service,COM+做为宿
主(Host)。WCF能够支持的协议包括TCP,HTTP,跨进程以及自定义,安全模式则包括SAML, Kerberos,X509,用户/密码,
自定义等多种标准与模式。也就是说,在WCF框架下,开发基于SOA的分布式系统变得容易了,微软将全部与此相关的技术
要素都包含在内.安全
WCF之ABC
Address: 每个WCF的Service都有一个惟一的地址。这个地址给出了Service的地址和传输协议(Transport Protocol)
Binding:通讯(Communication)的方式不少,同步的request/reply模式,非同步的fire-and-forget模式。消息能够单向或者双向的发送接收,能够当即发送或者把它放入到某一个队列中再处理。所供选择的传输协议也有Http, Tcp,P2P,IPC等。当要考虑Client/Server如何进行通信的时候,除了考虑以上提到的几点以外,还有其它不少须要考虑的因素,如安全,性能等。所以,简单来讲,Binding只不过是微软提供的一组考虑比较周全、经常使用的封装好的通讯方式。
Contract:Contract描述了Service能提供的各类服务。Contract有四种,包括Service Contract, Data Contract, Fault Contract和Message Contract并发