ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

wcf入门(1)

2020-02-07 09:43:42  阅读:248  来源: 互联网

标签:服务 入门 wcf 通信 协定 WCF 消息传递 运行


今天开一个新坑WCF的入门教程


什么是WCF

wcf - Windows Communication Foundation,是微软设计的一个构建SOA的一个应用程序框架。其主要用于解决应用程序之间的通信问题。

在我看来WCF更适合被看做一个统一的通信编程模型。在WCF之前,微软推出过Web Service,.NET Remoting以及基础的Winsock等通信框架。各个通信方式的编程模型各不相同,这就为开发者学习、维护和切换通信模式产生了障碍。

而WCF几乎涵盖了所有.NET Framework 中的通信方法,为其提供了统一的API接口,以及灵活的配置方案。这就解决了上述的种种问题,开发者只要学会使用WCF就够了。

这也是为什么许多人将WCF称为微软分布式应用开发的集大成者。

WCF的体系结构

在这里插入图片描述

WCF的结构体系如图所示,分为协定、服务运行时、消息传递、承载程序四个部分

协定(Contract)

协定指定了应用程序之间通信的API规范,比如数据协定就规定了.NET 对象的序列化和反序列化的方式,而服务协定就规定了服务的API调用方法签名。

服务运行时 (Service Runtime)

虽然是叫运行时,其实这个只是WCF服务运行期间的行为配置。例如我们实现了具有某个服务协定的接口,但是我们在运行服务时往往还需要关心这个服务所需要运行的实例个数,是否支持并发,会话等等。而这些设置都是出于服务运行时定义的

消息传递 (Message)

消息传递层是有一些列的通道channel组成。这里就涵盖了上述所说的.NET Framework中所有的通信方式。而WCF对其做了统一封装,以便于上层业务的调用。例如HTTP通道就是对Http协议实现的WCF封装,TCP通道就是对TCP协议的实现封装。

承载 (Host)

承载或者称之为宿主方式,决定了WCF服务的运行方式。比如服务可以部署在IIS,或者可以使用exe执行

WCF 体系结构关系

在这里插入图片描述

个人理解,WCF体系中可以将协定和服务运行时(行为)归到应用层,消息传递(通道)和激活承载(host)归到基础层。

基础层是服务与应用层的,是从现有成熟技术中“拿”过来的。而应用层控制着对这些技术的使用方式。各层内部的内容相互平等,只是作用方向不同。

示例

在这里插入图片描述

如图所示,Service.exe 启动了一个service 服务,通过TCP和Client.exe 进行通信。其中IService就是两者的通信协定,而服务的运行时行为由service.config确定(这属于服务运行时)。TCP通道是消息传递层,用于底层通信技术。而Service.exe则是承载了这个服务的宿主程序


参考链接:


本文会经常更新,请阅读个人博客原文: https://xinyuehtx.github.io/ ,以避免陈旧错误知识的误导,同时有更好的阅读体验。

知识共享许可协议 本作品采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可。欢迎转载、使用、重新发布,但务必保留文章署名黄腾霄(包含链接: https://xinyuehtx.github.io/ ),不得用于商业目的,基于本文修改后的作品务必以相同的许可发布。如有任何疑问,请 与我联系

xinyue_htx 发布了43 篇原创文章 · 获赞 0 · 访问量 2253 私信 关注

标签:服务,入门,wcf,通信,协定,WCF,消息传递,运行
来源: https://blog.csdn.net/htxhtx123/article/details/104205998

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有