cuier
我知道自己才刚刚上路,但是没关系,我已经在路上,我会很努力的前进,加油!

  学习了两节WCF相关的知识之后,突然回过头来想想到底什么是WCF,用WCF来解决哪些问题,学习WCF需要学哪些东西?这一大堆的问题,自己还是比较模糊。现在想把这些东西归纳起来,不要盲目的学习,只能跟着别人的博客走,不知道为什么要学,让自己也少一些迷茫,学习起来更有针对性。好了,开始解决问题。

  1. 什么是WCF?

  WCF(WindowsCommunication Foundation)是用于构建面向服务的应用程序的框架(这个框架中就涉及到:契约Contract、服务Service、寄宿Host,再加上调用服务的客户端Client)。

  WCF是微软分布式应用程序开发的集大成者,它整合了.net 平台下所有的和分布式系统相关的技术,例如:.Net Remoting、ASMX(ASP.NET Web Services)、WSE(Web Service 增强包)和MSMQ。

  以通信范围而论,它可以跨进程、跨机器、跨子网、企业网乃至于Internet;

  以宿主程序而论,可以以ASP.NET,EXE,WPF,Windows Forms,NT Service,COM+作为宿主(Host)。

  WCF可以支持的协议包括TCP,HTTP,跨进程以及自定义,安全模式则包括SAML,Kerberos,X509,用户/密码,自定义等多种标准与模式。也就是说,在WCF框架下,开发基于SOA的分布式系统变得容易了,微软将所有与此相关的技术要素都包罗在内,掌握了WCF,就相当于掌握了叩开SOA大门的钥匙。(那么SOA又是一个什么概念呢?SOA是一种IT体系结构样式,支持将业务作为链接服务或可重复业务任务进行集成,可在需要时通过网络访问这些服务和任务,这个网络可以是局域网也可以是广域网,而且可能采用不同的技术进行访问,通过对来自网络各地的服务进行组合,可让最终用户感觉似乎这些服务就安装在本地桌面上一样。需要时,这些服务可以将自己组装为按需应用程序——即相互连接的服务提供者和使用者集合,彼此结合以完成特定业务任务,使您的业务能够适应不断变化的情况和需求。)

 

  根据MSDN上的定义:WCF为.NetFramework 提供了一个基础,使其能够编写代码,以在组件、应用程序、系统之间进行通信。WCF的设计遵循的是面向服务的原则。服务是指可以通过消息与之进行交互的一段代码。服务是被动的。它们等待传入消息之后才开始工作。客户端是发起者,客户端将消息发送给服务来请求工作。

 

  2.WCF用来解决什么问题?

  从什么是WCF中了解了WCF是分布式应用程序开发方面的框架。

      而分布式应用程序要求将原本被隔离的作用域通过一定的契约联系起来,从而达成多个系统的沟通协作。

      在Win32中,应用程序是运行在进程的线程中的,.net平台出现之后,出现了AppDemian,其实就相当于在进程和线程之间又有了一层包装,类似于子进程的概念,在一个进程(或者应用程序域)中的对象能进行直接的访问和控制,但超出这个范围,并不能进行直接的访问和控制了,所以说进程(或者应用程序域)有一定的隔离作用,如果是分布在不同网络,不同操作系统上的不同进程,他们进行通讯的难度就更大。

  WCF作为一种分布式应用程序开发的框架,可以解决这个难度。

posted on 2010-12-29 11:05  cuier  阅读(1006)  评论(1编辑  收藏  举报