Windows Communication Foundation(WCF)是由微软开发的一系列支持数据通信的应用程序框架,可以翻译为Windows 通讯开发平台。
整合了原有的windows通讯的 .net Remoting,WebService,Socket的机制,并融合有HTTPFTP的相关技术。
简单的归结为四大部分
1>.网络服务的协议,即用什么网络协议开放客户端接入。
2>.业务服务的协议,即声明服务提供哪些业务。
3>.数据类型声明,即对客户端与服务器端通信的数据部分进行一致化。
4>.传输安全性相关的定义。
通信双方的沟通方式,由合约来订定。通信双方所遵循的通信方法,由协议绑定来订定。通信期间的安全性,由双方约定的安全性层次来订定。
 
WCF 的基本概念是以契约(Contract) 来定义双方沟通的协议,契约必须要以接口的方式来体现,而实际的服务代码必须要由这些契约接口派生并实现。契约分成了四种:
数据契约(Data Contract),订定双方沟通时的数据格式。服务契约(Service Contract),订定服务的定义。操作契约(Operation Contract),订定服务提供的方法。消息契约(Message Contract),订定在通信期间改写消息内 容的规范。
 
WCF 实现上已经支持了传输层次安全性 (Transport-level security) 以及消息层次安全性 (Message-level security) 两种。
传输层次安全性:在数据传输时期加密,例如 SSL。消息层次安全性:在数据处理时就加密,例如使用数字签名,散列或是使用密钥加密法等。
 
优势:
1,统一性
它是由多种技术的整合,但仍然可以向.net一样面向对象代码编写,因为它采用托管代码编写方式。
2,互操作性
它采用SOAP通讯机制,保证了系统之间的互操作性,可以跨进程、跨机制。甚至跨平台通信,只要他支持web Service。
3,安全与可靠性
因为它包含多种协议,故有多种协议的安全机制,尤其是SOAP的。
4,兼容性
它可以在新旧平台上使用。
 
例题
一个简单的WCF实例。
1,IService1定义一个方法,这个方法必须有契约标志。
 [OperationContract]
 string HelloWord();
2,Service1.svc上的服务代码必须要由这些契约接口派生并实现
 public string HelloWord()
        {
            return "Hello WCF!";
        }
3,运行 Service1.svc 若安装有WCF测试客户端,将会出现以下界面
 HelloWord()就是自己创建的一个方法,双击它。
点击调用
将会出现相关结果。
4,还可以自己创建一个Windows窗体程序来调用这个服务。
在这个窗体程序添加服务引用,如图
 
添加成功后将会显示这个服务,如图:
 实现代码:
 ServiceReference1.Service1Client c = new WindowsFormsApplication1.ServiceReference1.Service1Client();
            string s = c.HelloWord();
            MessageBox.Show(s);
运行后弹出一个提示框显示。
 
 
 

最新文章

  1. width:100%;与width:auto;的区别
  2. Spark DAGSheduler生成Stage过程分析实验
  3. MTNET 自用ios网络库开源
  4. 关于git
  5. Ext.grid.plugin.RowExpander的简单用法
  6. linux/shell 文本文件删除/删掉空行
  7. apple-touch-icon,shortcut icon和icon的区别
  8. Android Studio升级后projectBuild failed.
  9. Android手机中获取手机号码和运营商信息
  10. Zookeeper的一致性协议:Zab(转)
  11. 监听器 listener 样例
  12. cocos2dx 各种环境的搭建
  13. Solr开发参考文档(转)
  14. wemall app商城源码Android数据的SharedPreferences储存方式
  15. 2018-2019-2 20175228实验一《Java开发环境的熟悉》实验报告
  16. 33.MySQL高可用架构
  17. OPENSTACK在RHEL7安装;admin创建虚拟机模板供demo使用
  18. haproxy负载均衡的安装配置
  19. web入门之十 JS高级编程基础
  20. 奔五的人学ios:swift竟然没有字符串包括,找个简单的解决方法

热门文章

  1. python之面向对象函数与方法,反射,双下方法
  2. 在C 中加载TorchScript模型
  3. 深度强化学习(DRL)专栏(一)
  4. PHP7内核(四):生命周期之开始前的躁动
  5. Jmeter接口测试之案例实战(十一)
  6. MySQL常用存储引擎:MyISAM与InnoDB之华山论剑
  7. WebView中Java与JavaScript的交互
  8. JS 剑指Offer(一) 数组中的重复数字
  9. 3.Metasploit攻击流程及命令介绍
  10. 让你第一次认识到Java的内存管理