WCF:全称 Windows Communication Foundation 从本质上来说,它是一套软件开发包,是微软推出符合SOA思想的技术框架。属于特定的技术或者平台,既不是标准也不是规范WCF提供了许多功能,包括:托管、服务实例管理、异步、安全、事务管理、离线队列等,并且WCF对产业中的标准协议进行了封装和定义,它把程序员从繁琐的通信、格式编码中解放出来,使得程序员能够专注于业务逻辑的实现。
同时,WCF统一了微软公司之前推出的多种分布式技术,其中包括:
Web服务和WSE.
.Net Remoting
.Net 企业服务
微软消息队列(MSMQ)。
以上技术主要集成包括:
WCF的架构本身吸取了这些技术的精华,WCF开发的服务/客户端可以和现有的Web服务、MSMQ程序进行交互。
.Net Framework的四大体系架构
.Net Framework的四大体系包括:WCF、WF、WPF、WCS。
WCF(Windows Communication Foundation):主要是用来做松耦合的分布式通讯的,它还有另外一个名字叫Indigo,是微软迈向SOA一个重要的标志。WCF是.Net Framework的一个子集。
WF(Windows Wordflow Foundation):工作流引擎。
WPF(Windows Presenttation Foundation):WPF使用矢量绘图引擎,提供了一种声明式编程语言XAML,用来开发具有炫目视觉效果的应用程序。
WCS(Windows Card Space):采用了一种新的数字标识技术来实现类似网银单点登录的功能,主要用来防止钓鱼式攻击等,从网络安全方面提供了一个保障。
Web Service:
也叫作WS-*规范,它既不是框架,也不是技术,通过使用WebService,我们能够像调用本地方法一样去调用远程服务器上的方法。我们并不需要关心远程的那个方法是Java写的,还是PHP或C#写的;我们并不需要关心远程的方法是基于Unix平台,还是Windows平台,也就是说WebService与平台和语言无关。
Web Service平台需要一套协议来实现分布式应用程序的创建。任何平台都有它的数据表示方法和类型系统。要实现互操作性,Web Service平台必须提供一套标准的类型系统,用于沟通不同平台、编程语言和组件模型中的不同类型系统。
它使用XML扩展标记语言来表示数据(这个是夸语言和平台的关键)。微软的Web服务实现称为ASP.NET Web Service.它使用Soap简单对象访问协议来实现分布式环境里应用程序之间的数据交互。WSDL来实现服务接口相关的描述。此外Web services 可以注册到UDDI中心.供其客户查找使用。
区别在于:
1.WCF可以不依赖于IIS
2.WCF可以配置成BasicHttpBinding来兼容(或者说变身成)WS。
3.WCF可以基于TCP或者MessegeQueue来传输数据。
4.WCF的可配置性比WS强,比如安全性。
5.WCF可以是有状态的,并支持事务。
6.WCF 支持多种通信协议 Http/Https 、TCP/UDP、MSMQ、命名管道、对等网、消息可达性、事务流等。
7.WCF 可以与ASP.NET 集成、共享一个上下文(HttpContext)。
8.WCF 支持多种消息传输格式 :text,binary,mtom,Json 等。
9.WCF 安全性要强:支持对称安全、非对称安全、消息安全、传输安全、SSL 流安全、Windows 流安全等。
10.WCF 支持多种会话模式:单向、双向、请求/响应。
11.WCF 支持REST 。
12.WCF 支持多种格式化方式。DataContractSerializer、XmlSerializer、 DataContractJsonSerializer 等。
13.WCF 支持 WAS hosting、Windows 服务 hosting、Self-Hosting、IIS hosting 等。
14.WCF 支持多种并发模式:单例、单调、会话 。
如没特殊注明,文章均为中技互联原创,转载请注明来自www.zjcoo.com