(一)WCF基础
我们近期在做项目的时候用到了WCF,之前已经看了部分视频,对于WCF有了一定的了解,但仅限于能够根据搭建好的框架使用WCF,还不了解。所以就进行了研究,这样既有实践也能增加理论,二者结合,使用起来更胜一筹。
小编先从一些基本的概念开始,从基础一点点开始研究。
【WCF简介】
WCF(Windows Communication Foundation)是由微软开发的一系列数据通信的应用程序框架,可以翻译为Windows通讯开发平台。从本质上来说,她是一套软件开发包。WCF应用程序由三部分组成——WCF服务、WCF服务主机和WCF服务客户端。
【基本概念】
一、终结点(EndPoing):
定义了一个消息将被发送和接收的地址,是WCF实现通信的核心要素。一个WCF Service有一个端点集组成,每个端点就是用于通信的入口,客户端和服务端通过EndPoint交换信息。如下图能看出client和service端通过Endpoint交互。
从图中可以看出WCF由三个部分组成,Address,Contract,Binding;这三者简称为abc
1)a(address)——在哪里
是指定要接收的消息的准确位置和被指定为一个统一资源标识符(URL)。
一个服务地址有一个资源。
其表现形式为://域名[:端口]/[路径]
2)b(binding)——怎样做
实现了在client和service通信的所有底层细节,它定义了一个端点通信
(要与传输协议相匹配),绑定的内容有:绑定所需的协议、消息编码协
议、安全保障策略。
3)c(contract)——做什么
主要作用是暴露了WCF Service所提供的有效服务,通过在client端引用
contract文件,我们就能使用服务端的提供的服务,在这之中,contract
起到至关重要的作用,它将每个Operation转化成为相对应的
Message Exchange Pattern(MEP)(请点击了解)。
补充:
终结点还有一个组成部分是:行为(behavior),behavior主要作用是定
制终结点在运行时的一些必要的Behavior。终结点行为通过参与构建WCF
运行库的过程来实现这一点。
二、元数据
是WCF服务核心部分address、binding、contract的原始描述信息。服务所公开的元数据包括XSD和WSDL文档。
XSD:文档中出现的元素、出现的属性、子元素、子元素数量、子元素顺序、元素
是否为空、元素和属性的数据类型、元素或属性的默认和固定值。
WSDL:用于描述服务的方法、参数、参数个数、顺序、返回值、返回值的类型等
方法的相关信息。
下面这张图是我们项目中从客户端,直接按F12出现的界面,从中可以看出,方法和返回值都是来自于元数据,这也是我对元数据的最初认识。
【总结】
通过对WCF理论的研究,了解了abc各自是用来做什么的,有什么作用。对WCF介绍了解了我们的系统运用WCF的为什么使用和使用的必要性,主要是实现分布式。针对绑定方式和契约会在接下来的博客继续介绍,我们一起学习,期待我的更新吧!
(一)WCF基础的更多相关文章
- WCF基础教程之异常处理:你的Try..Catch语句真的能捕获到异常吗?
在上一篇WCF基础教程之开篇:创建.测试和调用WCF博客中,我们简单的介绍了如何创建一个WCF服务并调用这个服务.其实,上一篇博客主要是为了今天这篇博客做铺垫,考虑到网上大多数WCF教程都是从基础讲起 ...
- WCF技术剖析之一:通过一个ASP.NET程序模拟WCF基础架构
原文:WCF技术剖析之一:通过一个ASP.NET程序模拟WCF基础架构 细算起来,已经有好几个月没有真正的写过文章了.近半年以来,一直忙于我的第一本WCF专著<WCF技术剖析>的写作,一直 ...
- WCF 基础框架
WCF 基础框架: 1,契约:契约书一语个服务公共接口的一部分,一个服务的契约定义了服务端公开的方法,使用的传递协议,可访问的地址,传输的消息格式等内容,主要包括数据契约,消息契约,服务契约等. 2, ...
- WCF服务编程 读书笔记——第1章 WCF基础(2)
续:第1章 WCF基础(1) 元数据交换 服务有两种方案可以发布自己的元数据.一种是基于HTTP-GET协议提供元数据, 另一种则是后面将要讨论的使用专门的终结点的方式.WCF能够为服务自动提供基于H ...
- WCF服务编程 读书笔记——第1章 WCF基础(1)
第1章 WCF基础 本章主要介绍WCF的基本概念.构建模块以及WCF体系架构,以指导读者构建一个简单的WCF服务.从本章的内容中,我们可以了解到WCF的基本术语,包括地址(Address).绑定(Bi ...
- WCF基础
初入职场,开始接触C#,开始接触WCF,那么从头开始学习吧,边学边补充. SOA Service-Oriented Architecture,面向服务架构,粗粒度.开放式.松耦合的服务结构,将应用程序 ...
- WCF基础教程之开篇:创建、测试和调用WCF
一转眼,又半个月没有更新博客了.说实话,最近确实是有点忙.不过即使再忙忙,也要抽空来学习一些东西.最近用WCF比较多,就来跟大家分享一下关于WCF的知识吧!为了让大家都能看懂,照顾一些没有学过WCF的 ...
- WCF基础知识
根据微软官方的解释,WCF(之前的版本名为“Indigo”)是使用托管代码建立和运行面向服务(Service Oriented)应用程序的统一框架.它使得开发者能够建立一个跨平台的安全.可信赖.事务性 ...
- WCF入门教程:WCF基础知识问与答(转)
学习WCF已有近两年的时间,其间又翻译了Juval的大作<Programming WCF Services>,我仍然觉得WCF还有更多的内容值得探索与挖掘.学得越多,反而越发觉得自己所知太 ...
- WCF基础教程——vs2013创建wcf应用程序
引言 近期在项目中见到了师哥们常常谈到的WCF这方面的知识.当时在写程序的时候也没有理解wcf究竟是个什么东西? 以及我们为什么在项目中会採用这种框架来实现,仅仅是依照师哥他们写好的代码编写同样格 ...
随机推荐
- 【python开发】利用PIP3的时候出现的问题Fatal error in launcher: Unable to create process using '"'
down voteaccepted I fixed my issue by... downloading Python 3 at the official website and installing ...
- SecureCRT 使用密钥登录 Ubuntu
记录 SecureCRT 通过 SSH 使用密钥登录 Ubuntu. 具体步骤如下: 1. 使用 SecureCRT 生成密钥对: 工具 -> 创建公钥 -> 密钥类型 RSA -> ...
- 安装Delphi7的错误
delphi7运行不正常的提示unable to rename'c:\program files\Borland\delphi7\Bin\delphi32.$$$'to'c:\program file ...
- PHP 可变参数
<?php //php 可变参数 function concatenate( ...$strings): string { $string = ''; //此时的strings 是一个数组 fo ...
- Python Web开发技术栈
- Scala 条件控制与循环
Scala if表达式 ·if表达式的定义:在Scala中,if表达式是有值的,就是if或者else中最后一行语句返回的值. ·例如,val age = 30; if (age > 18) 1 ...
- 【scratch3.0教程】2.2 魔力手环
编程前的准备 在设计一个作品之前,必须先策划一个脚本,然后再根据脚本,收集或制作素材(图案,声音等)接着就可以启动Scratch,汇入角色,舞台,利用搭程序积木的方式编辑程序,制作出符合脚本的动画或游 ...
- quartz2.3.0(十一)任务执行中故障情况,可设置重新执行任务
任务类 package org.quartz.examples.example11; import org.quartz.Job; import org.quartz.JobExecutionCont ...
- Vasya and Shifts CodeForces - 832E (高斯消元)
大意: 给定$4n$个$m$位的五进制数, $q$个询问, 每个询问给出一个$m$位的五进制数$b$, 求有多少种选数方案可以使五进制异或和为$b$. 高斯消元入门题 每次询问相当于就是给定了$m$个 ...
- iOS - 静态库的导入和头文件路径的设置
开发过程中,免不了要用到一些第三方或者是别人写好的一些Demo,这时就经常会用到别人写的一些静态库(.a文件)和n多个头文件(.h文件),这些文件不是简单地把它们拉到自己的工程里面就行的,还要设置一些 ...