WCF学习——掀开你的盖头来
一、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学习——掀开你的盖头来相关推荐
- WCF学习之旅—WCF服务的WAS寄宿(十二)
上接 WCF学习之旅-WCF服务部署到IIS7.5(九) WCF学习之旅-WCF服务部署到应用程序(十) WCF学习之旅-WCF服务的Windows 服务程序寄宿(十一) 八.WAS宿主 IIS ...
- WCF学习之旅—基于Fault Contract 的异常处理(十八)
WCF学习之旅-WCF中传统的异常处理(十六) WCF学习之旅-基于ServiceDebug的异常处理(十七) 三.基于Fault Contract 的异常处理 第二个示例是通过定制Servic ...
- 数据库LINQ TO SQL在Silverlight中的应用(WCF)------学习笔记(一)
数据库LINQ TO SQL在Silverlight中的应用(WCF)------学习笔记(一) 步骤: 1. 创建SILVERLIGHT应用程序 2. 创建LINQ TO SQL [注意序列化的问题 ...
- WCF学习之旅—第三个示例之二(二十八)
上接WCF学习之旅-第三个示例之一(二十七) 五.在项目BookMgr.Model创建实体类数据 第一步,安装Entity Framework 1) 使用NuGet下载最新版的Entity Fram ...
- WCF分布式开发步步为赢(0):WCF学习经验分享,如何更好地学习WCF?
WCF分布式开发学习,应该从哪里开始? 微软WCF Web服务 Web API学习群 339444457 微软ASP.NET MVC 4 Web编程群 44206115 学习WCF是不是就不需 ...
- [zz]WCF分布式开发步步为赢(0):WCF学习经验分享,如何更好地学习WCF?
WCF分布式开发学习,应该从哪里开始? 学习WCF是不是就不需要学习Enterprise Sevices(COM+).Net Remoting.Web Service(ASMX).WSE3.0和 ...
- WCF学习之旅—实现支持REST客户端应用(二十四)
WCF学习之旅-实现REST服务(二十二) WCF学习之旅-实现支持REST服务端应用(二十三) 在上二篇文章中简单介绍了一下RestFul与WCF支持RestFul所提供的方法,及创建一个支持RES ...
- WCF学习之旅—第三个示例之四(三十)
上接WCF学习之旅-第三个示例之一(二十七) WCF学习之旅-第三个示例之二(二十八) WCF学习之旅-第三个示例之三(二十九) ...
- WCF学习笔记(2)——独立WCF服务
本文将建立一个silverlight与wcf通讯的简单实例,wcf服务将被独立出来,而不再寄放在Web中.以下是详细步骤: 新建Silverlight应用程序,名称WCFtest,在解决方案上右键添加 ...
最新文章
- 【OpenCV 4开发详解】图像修复
- 为什么分布式一定要有一致性方案?
- SQL Server 2012 安全新特性:包含数据库
- braintree php 开发,php – 如何为使用Braintree和静态方法调用的端点编写集成测试...
- .Net 1.1下WEB引用Win控件的两个Bug
- java数组有跨类建立对象_Java性能优化的45个细节(珍藏版)
- scp带密码后台传输
- Latex中导入VISIO图片
- 法务管理项目结项了mark一下
- MCS-51单片机的外部引脚及片外总线
- QT软件开发: 基于QT设计的完整版视频播放器、多媒体播放器(mdk-sdk)
- HTTP请求头及其作用
- 先有鸡还是先有蛋的定论
- 前端笔试—编译和体系结构
- 股权控制权的五种设计策略
- 首例 3次IPO:前2次申请科创板、创业板均撤回、第3次改为主板、难圆其说变更保代及券商……
- 小游戏与H5游戏对比与梳理
- led灯串怎么摆造型_彩灯羊造型
- opj 多项式加法
- Domain Adaptive SiamRPN++ for Object Tracking in the Wild