一、介绍WCF
分布式应用需要频繁地跨进程边界通信。分布式应用同样需要托管(宿主,比如IIS,Windows NT服务)。.Net Framework通过Socket和MessageQueue类型抽象了操作系统的I/O机制。这种类型会被WCF的基础框架来用来发送和接收消息。
WCF特性:独立版本控制、异步只进消息、平台统一、可靠性、事务支持、互操作性、性能、扩展性和配置性。
WCF支持跨越多个系统的事务范围:
- .NET Remoting:高效,不能与非.net framework应用交互。
- ASMX(web service):没.NET Remoting高效,但可以与非.net framework应用交互。
- MSMQ(Message Queue):效率不高,但消息的特性可以弥补效率问题,不能与其他的消息队列系统交互。
WCF支持XML文件的完善的配置功能。WCF完全支持SOAP和WS-*规范,也同样可以发送朴素的旧的XML(POX)消息,并且适应架构。它集成了不同的分布式技术:RPC,COM+,Remoting,ASMX,WSE和MSMQ,WCF也是高扩展性的。
消息编码:
WCF是建立在SOAP1.2(XML Infoset)上的,但是它可以同时处理SOAP1.1和SOAP1.2的消息。
WCF提供了三种编码器:
- 文本(text)编码器
- 二进制(binary)编码器
- MTOM(消息传输优化机制)编码器。
- WCF4.0里提供了一种新的编码器:字流编码器,用于满足对原始二进制数据传输的需求。
二进制编码器只适用于WCF到WCF的通信。在WCF所有的编码器中,二进制编码器产生最小的信息。这个编码器产生一个序列化的Infoset。
MTOM消息编码的WCF消息可以发送给非WCF的应用。在运行时,MTOM编码器会为数字签名创建一个基于base64编码的符号,让原始二进制数据可以在消息里打包。
WCF的设计目标就是在改变消息编码的时候,不需要对应用系统做出大的改变。事实上,这使得一个服务可以与多种消息编码交互成为可能。