一、WCF是什么

1、含义

Windows Communication Foundation(WCF)是由微软开发的一系列支持数据通信的应用程序框架,可以翻译为Windows通讯开发平台。是使用托管代码建立和运行面向服务(Service Oriented)应用程序的统一框架。它使得开发者能够建立一个跨平台的安全、可信赖、事务性的解决方案,且能与已有系统兼容协作。

WCF是基于Windows平台下开发和部署服务的软件开发包(Software Development Kit,SDK)。WCF提供了服务的运行环境,这样就让开发人员能够将CLR类型公开为服务,也能够通过使用CLR类型来使用服务。

WCF框架模型如图所示

WCF 提供了创建安全的、可靠的、事务服务的统一框架,WCF 整合和扩展了现有分布式系统的开发技术,如Microsoft .NET Remoting、Web Services、Web Services Enhancements (WSE)等等,来开发统一的可靠系统。WCF简化了SOA框架的应用,同时也统一了Enterprise Services、Messaging、.NET Remoting、Web Services、WSE 等技术,极大的方便了开发人员进行WCF应用程序的开发和部署,同时也降低了WCF应用开发的复杂度

2、内容

契约(Contract)

WCF 的基本概念是以契约(Contract) 来定义双方沟通的协议,合约必须要以接口的方式来体现,而实际的服务代码必须要由这些合约接口派生并实现。合约分成了四种:

数据契约(Data Contract),订定双方沟通时的数据格式。

服务契约(Service Contract),订定服务的定义。

操作契约(Operation Contract),订定服务提供的方法。

消息契约(Message Contract),订定在通信期间改写消息内容的规范。

协议绑定
       由于 WCF 支持了HTTP,TCP,Named Pipe,MSMQ,Peer-To-Peer TCP 等协议,而 HTTP 又分为基本 HTTP 支持 (BasicHttpBinding) 以及 WS-HTTP 支持 (WsHttpBinding),而 TCP 亦支持 NetTcpBinding,NetPeerTcpBinding 等通信方式,因此,双方必须要统一通信的协议,并且也要在编码以及格式上要有所一致。

安全性层次
       WCF 实现上已经支持了传输层次安全性 (Transport-level security) 以及消息层次安全性 (Message-level security) 两种。
       传输层次安全性:在数据传输时期加密,例如 SSL。

消息层次安全性:在数据处理时就加密,例如使用数字签名,散列或是使用密钥加密法等。

二、面向服务开发

1、WCF整体架构

小编寄语:

WCF专门用于面向服务开发。它的最终目标是通过进程或不同的系统、通过本地网络或是通过Internet收发客户和服务之间的消息。

2、通信模型

WCF遵循客户端/服务器模型在应用程序之间进行通信,客户端程序能够通过服务器端提供的EndPoint端直接访问服务。

在基于Asp.net 的应用程序开发中,我们由客户机的浏览器访问应用程序服务器,然后通过应用程序服务器中的数据库连接去连接数据库服务器,读取或是操作数据,有时候可能会多一个文件服务器。大家可以观察到,基本上所有的应用都放在了一台服务器上,但对于一个,由于业务上的需要(如:与外部系统交互),一台服务器很难支持所有的应用。

三、 WCF程序的开发步骤

1、使用.NET接口定义契约。
         2、编写实现契约的服务类。
         3、添加相应特性对WCF的行为进行控制。
         4、开发宿主程序承载服务。
         5、设置服务端配置文件,定制个性化需要。
         6、客户端添加服务引用,生成代理类。
         7、设置客户端配置文件,定制个性化需要。

具体开发步骤:点击链接

小编总结: WCF作为一种框架,简单易用的编程方式是一把双刃剑,一方面它让新手非常容易上手,但另一方面,过于简单的模型使得它的使用者不明白其中的细节,因此要用好它并不容易,比如很多时候我们写的WCF程序看起来服务,配置等等各方面都没有什么问题,却莫名其妙的不工作,往往要花很长时间去调试。如何创建高性能的WCF程序,如何快速有效的对WCF程序出现的各种,要求我们对WCF本身甚至SOA有着深入的理解,对WCF内部的工作原理有着一定的了解。在此,小编仅仅给大家开了一个头,以后还需要大家深入研究。

WCF学习——掀开你的盖头来相关推荐

  1. WCF学习之旅—WCF服务的WAS寄宿(十二)

    上接    WCF学习之旅-WCF服务部署到IIS7.5(九) WCF学习之旅-WCF服务部署到应用程序(十) WCF学习之旅-WCF服务的Windows 服务程序寄宿(十一) 八.WAS宿主 IIS ...

  2. WCF学习之旅—基于Fault Contract 的异常处理(十八)

       WCF学习之旅-WCF中传统的异常处理(十六) WCF学习之旅-基于ServiceDebug的异常处理(十七) 三.基于Fault Contract 的异常处理 第二个示例是通过定制Servic ...

  3. 数据库LINQ TO SQL在Silverlight中的应用(WCF)------学习笔记(一)

    数据库LINQ TO SQL在Silverlight中的应用(WCF)------学习笔记(一) 步骤: 1. 创建SILVERLIGHT应用程序 2. 创建LINQ TO SQL [注意序列化的问题 ...

  4. WCF学习之旅—第三个示例之二(二十八)

    上接WCF学习之旅-第三个示例之一(二十七) 五.在项目BookMgr.Model创建实体类数据 第一步,安装Entity Framework 1)  使用NuGet下载最新版的Entity Fram ...

  5. WCF分布式开发步步为赢(0):WCF学习经验分享,如何更好地学习WCF?

    WCF分布式开发学习,应该从哪里开始? 微软WCF Web服务 Web API学习群 339444457 微软ASP.NET MVC 4 Web编程群     44206115 学习WCF是不是就不需 ...

  6. [zz]WCF分布式开发步步为赢(0):WCF学习经验分享,如何更好地学习WCF?

    WCF分布式开发学习,应该从哪里开始?    学习WCF是不是就不需要学习Enterprise Sevices(COM+).Net Remoting.Web Service(ASMX).WSE3.0和 ...

  7. WCF学习之旅—实现支持REST客户端应用(二十四)

    WCF学习之旅-实现REST服务(二十二) WCF学习之旅-实现支持REST服务端应用(二十三) 在上二篇文章中简单介绍了一下RestFul与WCF支持RestFul所提供的方法,及创建一个支持RES ...

  8. WCF学习之旅—第三个示例之四(三十)

           上接WCF学习之旅-第三个示例之一(二十七)               WCF学习之旅-第三个示例之二(二十八)              WCF学习之旅-第三个示例之三(二十九)   ...

  9. WCF学习笔记(2)——独立WCF服务

    本文将建立一个silverlight与wcf通讯的简单实例,wcf服务将被独立出来,而不再寄放在Web中.以下是详细步骤: 新建Silverlight应用程序,名称WCFtest,在解决方案上右键添加 ...

最新文章

  1. 【OpenCV 4开发详解】图像修复
  2. 为什么分布式一定要有一致性方案?
  3. SQL Server 2012 安全新特性:包含数据库
  4. braintree php 开发,php – 如何为使用Braintree和静态方法调用的端点编写集成测试...
  5. .Net 1.1下WEB引用Win控件的两个Bug
  6. java数组有跨类建立对象_Java性能优化的45个细节(珍藏版)
  7. scp带密码后台传输
  8. Latex中导入VISIO图片
  9. 法务管理项目结项了mark一下
  10. MCS-51单片机的外部引脚及片外总线
  11. QT软件开发: 基于QT设计的完整版视频播放器、多媒体播放器(mdk-sdk)
  12. HTTP请求头及其作用
  13. 先有鸡还是先有蛋的定论
  14. 前端笔试—编译和体系结构
  15. 股权控制权的五种设计策略
  16. 首例 3次IPO:前2次申请科创板、创业板均撤回、第3次改为主板、难圆其说变更保代及券商……
  17. 小游戏与H5游戏对比与梳理
  18. led灯串怎么摆造型_彩灯羊造型
  19. opj 多项式加法
  20. Domain Adaptive SiamRPN++ for Object Tracking in the Wild

热门文章

  1. pywinauto入门—使用pywinauto操作PC版微信发送消息
  2. 一文懂熵Entropy
  3. 困了累了,就想想这些吧
  4. 发布DCWriter电子病历文本编辑器
  5. android 霓虹灯效果
  6. 计算机windows7连接打印机
  7. openwrt 端口映射
  8. 云呼叫中心系统实现坐席远程办公
  9. 股票应用开发——网络数据的获取(一)
  10. 一个很酷的基于OpenGL + C#的Wince界面开源程序