1. 介绍

    WCF 是.net framework 提供的一个灵活的通信技术。在.net 3之前,一个单独的企业解决方案中需要用到几个通信技术。为了实现平台无关通信,ASP.Net Web服务被推行使用,因为web服务有更大的优势——可靠性,安全性,基本事务-Web 服务通过给ASP.Net Web Service增加复杂的一层得到了增强。如果通信需要更加快速,.Net应用程序客户端和服务端使用.Net Remoting是其技术的选择之一。

  2. .Net企业服务对自动automatic transaction支持,通过默认使用DCOM协议这种方式要比.net远程处理更为快速。DCOM只是一个允许处理的协议。所有这些技术都有不同的编程模型,这就要求开发人员需要懂得更多的技能。

  3. .Net framework 3.0加入了一个新的通信技术,把之前的所有技术整合成一个开发模型,它就是:Windows Communication Foundation.WCF从ASP.NET Web services, .NET Remoting, Message Queuing,Enterprise Services整合而来。

    WCF包含如下特点:

    1. Hosting for components and services

    就好像你可以使用自定义宿主机一样去使用.NET Remoting 和Web Service Enhancements(WSE),你可以通过开一个WCF服务在the ASP.NET runtime, Windows service, COM+ process,或者Windows Forms 应用中应用对等计算.

    b.Declarative behavior

而不需要从一个基类派生(这要求存在使用。NET Remoting和企业服务),属性可以用来定义服务。这是

类似于ASP.NET Web服务开发。

    c.Communication channels

虽然。NET Remoting灵活改变通信通道,WCF是一个不错的选择,因为它提供了相同的灵活性。WCF提供了多种渠道沟通,使用HTTP,TCP,或IPC信道。使用不同的传输自定义频道,协议可以创建的更好。

    d.Security infrastructure

为实现平台无关的Web服务,标准化必须使用安全的环境。该标准与WSE3实施,WCF延续这一标准。

    e.Extensibility

.NET Remoting具有丰富的可扩展性。它不仅可以创建自定义频道,格式化,和代理,而且还支持在客户端服务器上消息注入功能。WCF提供了类似的可扩展性;然而,这里的扩展是由使用SOAP标头。

    f.Support of previous technologies

不是重写一个完全使用WCF分布式解决方案,WCF可以与现有的技术整合。WCF提供了一个通道,使用DCOM服务组件可以通信。已开发ASP.NET Web服务也可以结合WCF。

<!--
    最终的目的都是为了让客户端和服务端的的进程之间能够发送和接受消息,不管是在不同的系统下,还是本地化的网路,还是在互联网上,都能够实现。使用平台无关性的方式让加速通信称成为可能。服务端提供一个协议,绑定,地址的endpoint.这个协议申明操作由服务器提供;绑定给定了协议和编码的相关信息;地址是一个本地化服务的地址;客户端需要一个可并行化的端点去访问服务。如下图所示:
-->

    wKiom1RR4e7AnHLFAAA91h9f6dI682.jpg    

说明:

   

客户端调用代理上的方法。代理提供的定义服务的方法将方法调用消息传递给

信息渠道。该通道有一个客户端和服务器端之间通信的一个网络协议。从渠道,把消息传递到调度程序,调度程序将服务调用。(个人理解)

<!--
    WCF支持多种通信技术协议,下面是核心服务使用的通信技术:
    1.SOAP:
        平台无关的通信,SOAP协议可直接支持WCF。SOAP最初是简单对象访问协议(SOAP    ),自SOAP1.2后不再是一个简单对象访问协议了。而是用XML取代了消息的发送。
        
    2.Web Services Description Language
    提供描述服务的方法。
    
    3.Representational State Transfer (REST)
    使用跨HTTP RESTful Web服务进行通信
    
    4.JavaScript Object Notation (JSON)
    Enables easy use from within JavaScript clients
-->

<!--想了解更多上面的内容可到官网查找相关文档-->