随笔分类 - WCF
Windows Communication Foundation
Windows通讯基础
摘要:阅读目录 一:DataContractAttribute 二:DataMemberAttribute 三:实例 一:DataContractAttribute . 在schema和CRL类型之间转换 在WCF当中我们推荐的一种序列化方式是使用数据契约的这种方式,使用数据契约的方式和一般的序列化的方式是种类似的方式,也是在我们需要进行序列化的数据上面加DataContract特性,在加完DataContract特性以后,.NET本身会为我们实现schema也就是XSD和CRL类型之间的转换 . 总是要提供命名空间 . 能够提供显式的Name 我...
阅读全文
摘要:阅读目录 一:数据序列化流程图 二:SerializableAttribute 一:数据序列化流程图 在WCF当中是通过序列化器来进行序列化的,大家可以通过这个图看到,如果我们希望传递一个数据的话或者说我们希望来传递一个对象,从客户端到服务器端或者从服务器端到客户端,我们需要进行数据的序列化,对数据进行序列化我们可以通过DataContractAttribute的数据契约这种方式来进行隐式的数据序列化,也可以通过特定的XMLSerializable序列化的方式来进行数据的序列化,还可以通过加SerializableAttribute标记来实现我们自定义的对象的序列化,无论我们使...
阅读全文
摘要:阅读目录 一:SOA体系结构 二:WCF当中的客户端与服务 三:服务契约 四:实例 一:SOA体系结构 . 我在这里用图形在回顾一下,首先我们来看SOA的体系结构,在我们传统的经典的三层体系结构有客户层,业务逻辑层,数据访问层,而在SOA体系结构中多了一层服务层,就客户层而言它是与服务层进行通信的,然后再由服务层把客户所要求的服务拆解为相应的多个不同的业务逻辑,传到业务逻辑层进行处理。就SOA这种面向服务的体系结构中重要的特点就是客户层和业务逻辑层存在了一个服务层,客户层在进行服务调用的时候并不是直接与业务逻辑层进行通信,而是通过服务层完成他的需求 二:WCF当中...
阅读全文
摘要:阅读目录 一:前言 二:配置工作 三:通过元数据生成代理和配置文件 一:前言 . 这篇文章是与《一步一个脚印学习WCF之WCF概要—WCF服务的创建与调用HelloWorld实例,通过编码方式(四) 》一文相对比写的,如果其中有不明白的情参照链接文章。 二:配置工作 . 在Host工程里面为我们的Host这一端添加了一些配置,这个配置有两个方面,一个是方面关于Service的配置,也就是我们我们这个Host里面加载的Service的配置。另外一个方面是关于Host里面某些特定Service行为的配置。 在Host这一端我们来看配置文件 1:Serv...
阅读全文
摘要:阅读目录 一:契约与元数据 二:服务描述与元数据 一:契约与元数据 . 客户端与服务端之间共享的应该是Contract契约而不是代码,就是前面我们讲的文章“一步一个脚印学习WCF之WCF概要—WCF服务的创建与调用HelloWorld实例,通过编码方式(四)”一文中的IHelloWorldService,它与其他分布式技术最显著的区别是耦合性是基于契约的,不是基于代码的耦合,由于在契约中不包含具体的逻辑,这样的话为我们构建松耦合的分布式应用程序提供了良好的基础 . Web Service Description Language(WSDL) Web Service的描述语言WS...
阅读全文
摘要:阅读目录 一:前言 二:WCF服务的创建 三:托管WCF服务 四:WCF服务的调用 五:总结 一:前言 大家看到三个工程图一,分别对应图二里面的不同部分,Client工程对应图二里面的Client,HelloWorldService工程对应了图二里面的Service,也就是说具体的服务是由HelloWorldService来进行提供的,Host工程对应图二里面的ServiceHost,要为HelloWorldService这个服务来提供一个运行的环境 图一 图二 二:WCF服务的创建 下面咱们来看具体的工程里面的代码...
阅读全文
摘要:阅读目录 一: 用户所使用的客户端和用户所需要的服务如何交互呢? 一: 用户所使用的客户端和用户所需要的服务如何交互呢? 用户所使用的客户端和用户所需要的服务如何交互呢?其实就是指一个消息传递的流程,我们在这里就来探讨一下,看下面这个Service,如图一,为了能够给客户提供服务的话,这个Service必然要被执行,它被执行的时候必然要放到主机里面,也就是必然要放到服务的主机里面,也就是ServiceHost里面来进行执行的,如图二,所以这个Service是安插到ServiceHost里面的,这个Serveice和ServiceHost是在一个主机进程当中的,大家看图三多了两个E...
阅读全文
摘要:阅读目录 一:什么是WCF? 二:WCF与SOA之间的关系 三:对比SQA架构和非SQA架构 一:什么是WCF? .Windows Communication Foundation WCF全称叫做Windows Communication Foundation(Windows通信基础),从全称可以看到是为我们提供基于Windows平台下关于通信方面的一个基础架构,利用这个WCF我们能够实现基于Windows平台下的各种通信技术的开发以及应用。 .NET FrameWork 3.0的组成部分 WCF本身是.NET FrameWork 3.0的组成部分之一,从图一...
阅读全文
摘要:阅读目录 一:为什么会出现绑定? 一:为什么会出现绑定? . 服务之间的通信是多种多样的,有很多种通信模式 . 消息通信模式就有比如:同步请求/应答模式,异步的即发即弃消息等一系列,传递消息的传输协议就有比如:HTTP,TCP,P2P等一系列,消息的编码格式就有比如:纯文本编码格式,优化性能的二进制编码格式等一系列,还有其他比如:消息的安全保障(其中又分好多种)等等 . 若要计算各种通信模式和交互方式之间的组合,就多了去了,如果组合不好,有的组合可能互斥,客户端要与服务合理的组合这些选项才能保障通信的正常和顺畅,这些是很复杂的 . 为了简化这些选项,使它们易于管理,开发人员不必...
阅读全文
摘要:托管(Hosting) . WCF服务不能你创建好了就完了,得把它放置到一个地方,让大家来访问调用,就好比你要卖胡辣汤,得有个店面吧,不能摆到马路上吧,想喝胡辣汤的人,来到你的店面吃才行吧,所以WCF也要有个放置它的地方,我们叫作托管 宿主进程(Host Process) . 每个WCF服务必须托管在Windows进程中,该进程被称为宿主进程 托管的三种方式 . 宿主可以由IIS提供(叫作IIS托管),也可以由Windows Vista的Windows激活服务(Windows Activation Service,WAS)提供(叫作WAS托管),宿主也可以由开发者做成应用程序的一部分来提供(.
阅读全文
摘要:契约的名称 在默认下契约公开的名称就是定义的接口名或者类名如下面的:IMyContract和MyClass [ServiceContract] interface IMyContract { } [Service Contract] class MyClass { } 但是可以为契约定义别名,如下面定义后的别名是:MyServiceContract和MeServcieContract 举例如下:[ServiceContract(Name="MyServiceContract")] interface IMyContract { } [Service Contract(Nam
阅读全文
摘要:阅读目录 一:契约 二:服务契约 三:如何定义服务契约? 一:契约(Contract) WCF的所有服务都会公开为契约,是描述服务功能的方式,比如:大家都穿校服才能进学校,校服就是描述你是这个学校的学生一样 二:服务契约(Service Contract) 客户端能够执行的服务操作,今天我们只介绍服务契约特性,比如:穿校服的都是光明小学的学生,都可以在午休时候去学校的棋牌室下棋(都可以去棋牌室下棋相当于可以执行的服务操作) 三:服务契约的定义采用属性定义法 为什么叫属性定义法呢?因为[ServiceContract(Name="ServiceAContract...
阅读全文
摘要:阅读目录 一:基地址(BaseAddress) 二:地址(Addresses) 一:基地址(BaseAddress) . 基地址就是只包括传输协议和服务位置中的目标机器名以及通信端口,不包括可选的URL . 基地址格式是:[传输协议]://[目标机器名][:可选端口] 举例如下: 1:http(传输协议)://localhost(机器名):8001(通信端口) 2:net.tcp(传输协议)://localhost(机器名):8003(通信端口) 二:地址(Address) . WCF的每一个服务都有且有唯一的一个地址,地址就是服务的位置,你要用这个服务得知道这个服务的...
阅读全文
摘要:阅读目录 一:前言 二:WCF出现的目的是什么? 三:学了WCF能做什么? 四:为什么要把一个应用程序分布放在不同的计算机上? 一:前言 一个优秀的程序员,不能光凭一腔热血,不能只会写,却不知其所以然,所以我的建议是在写的同时,知道为什么要这样写,也就是要有扎实的基础和功底 任何一门技术的出现不是凭空出现的,出现一定是为了解决存在的某种问题 二:WCF出现的目的是什么? 实现计算机之间的通信和交互,使得计算机之间的通信标准能达成一致,比如:计算机A说:计算机B啊,把你的那个方法让我用一下,计算机B说好的没问题,不能计算机A机说:计算机B把你的那个方法让我调用一下,计算机B...
阅读全文