基础篇之WCF简介

开发 后端
文章介绍了WCF提供的特性,WCF作用,希望大家通过看本文的WCF简介,对它有初步的认识。

有很多人都想深入的了解WCF,我学习了WCF很长时间了,这里就满足一下好奇WCF技术的朋友,下面就是WCF简介。WCF是Windows Communication Foundation的缩写,原来代号为Indigo,它是MS为SOA(Service Oriented Architecture 面向服务架构)而设计的一套完整的技术框架。利用它能够开发出分布式(Distributed)应用程序,而且开发难度相比以前的.NET Remoting和ASP.NET XML Web Service等都有了大幅度的降低。可以说WCF是目前微软平台下***进的SOA框架,也是微软在今后一段时间内在该领域的主打产品。它具有很多优点,总结起来,其***的特征在于:

1.充分整合了原来的.NET Remoting,ASP.NET Xml Web Service(ASMX, Web服务),MSMQ(Message Queuing 消息队列),WSE(Web Services Enhancements),Enterprise Service(COM+)等多项分布式技术,取其精华,弃其糟粕。

2.WCF虽然整合了几项技术,但开发难度不增反降,简单易学。相信在未来的几年中,WCF一定在SOA的大潮中披荆斩棘,大展身手。

WCF是Microsoft为构建面向服务的应用提供的分布式通信编程框架,是.NET Framework 3.5的重要组成部分。使用该框架,开发人员可以构建跨平台、安全、可靠和支持事务处理的企业级互联应用解决方案。

WCF提供了现有ASP.NET Web Service、.NET Remoting、Message Queuing和Enterprise Services技术的全部功能。现有解决方案均有各自的优点,也有相应的缺点,WCF综合了上述技术的优点,形成了一种新的技术。

WCF简介之WCF提供了如下特性:

1.驻留组件和服务:与使用定制主机、.NET Remoting 和WSE一样,可以把WCF服务放在ASP.NET库中、Windows 服务上、COM+过程中,或Windows Form程序上,进行对等计算。

2.声明性操作:不是必须从基类中派生(.NET Remoting中远程对象从MarshalByRefObject派生,Enterprise Services服务组件类从基类ServicedComponent派生),可以使用属性定义服务,类似与ASP.NET的Web服务(以[WebMethod]属性说明方法,标记为可通过Web服务访问)。

3.通信信道:.NET Remoting 在改变通信信道方面非常灵活,而WCF是一个很好的替代品,它提供了相同的灵活性。WCF可以使用HTTP、TCP、IPC(Internet Process Connection进程间通信)信道进行通信。并且支持使用UDP信道。

4.安全体系结构:要实现独立于平台的Web服务,必须使用标准的安全环境。现有提供的标准是用WSE2.0实现的,在WCF中继续使用它。

5.可扩展性:.NET Remoting 有丰富的扩展功能,它可以创建定制的信道、格式化器和代理程序,还可以在客户机和服务器的消息流中插入功能。WCF提供了类似的可扩展性,但这些扩展功能使用SOAP标题实现。

6.兼容性:使用WCF,无需重写分布式解决方案,WCF可以与已有的技术很好的集成。WCF提供一个信道可以使用DCOM与所服务的组件通信。以ASP.NET Web服务创建独立于平台的服务也可以很方便实现与WCF的集成。

WCF简介之WCF作用:

#T#在win32中,应用程序是运行在进程(Process)的线程(Thread)中的,.Net平台出现之后,出现了AppDomain(应用程序域),其实就相当于在进程和线程之间又有了一层包装,类似于子进程的概念,在一个进程(或者应用程序域)中的对象能进行直接的访问和控制,但超出这个范围,便不能进行直接的访问和控制了,所以说进程(或者应用程序域)有一定的隔离作用,如果是分布在不同网络,不同操作系统上的不同进程,他们进行通讯的难度就更大,而分布式应用程序要求的就是将原本被隔离的作用域通过一定的契约联系起来,从而达成多个系统的沟通协作。当然能实现这种目的的方式远不止WCF一个,比如在win32时代,经常使用映射内存文件来实现进程之间的互操作问题,还有在windows程序中,用windows消息wm也能实现不同进程之间的通讯问题,但这些都有局限性,因为他们不能很好的解决跨平台,跨网络问题,而WCF可以。

 

责任编辑:田树 来源: 博客
相关推荐

2011-03-02 11:25:10

vsftpd配置

2009-11-09 16:06:53

WCF自定义集合

2009-11-09 16:44:18

WCF Service

2010-09-27 14:10:29

DNS协议简介

2021-09-06 06:45:06

WebpackMindMasterEntry

2009-12-07 14:51:57

WCF框架

2010-05-27 17:41:09

2009-07-27 17:38:30

WCF服务ASP.NET 3.5

2009-12-21 10:00:46

WCF基础开发

2014-07-10 10:02:01

iOSHome Kit框架

2022-03-28 09:31:58

for循环语句

2011-01-18 10:00:59

Linux磁盘分区

2021-03-02 12:36:49

MQKafkaRocketMQ

2021-08-11 06:34:14

ZabbixDocker运维

2019-10-12 15:06:02

MySQL数据库命令

2011-01-14 15:32:17

2018-10-21 08:14:49

2011-05-23 13:08:30

2010-02-24 15:20:23

WCF Message

2020-12-02 08:45:36

Go语言
点赞
收藏

51CTO技术栈公众号