Welcome 微信登录

首页 / 软件开发 / WCF

WCF技术剖析之十六:数据契约的等效性和版本控制

WCF技术剖析之十六:数据契约的等效性和版本控制

WCF技术剖析之十六:数据契约的等效性和版本控制2012-11-03 博客园 Artech数据契约是对用于交换的数据结构的描述,是数据序列化和反序列化的依据。在一个WCF应用中,客户端和服务端必须通过等效的数据契约方能进行有效的数据交换。随着时间的推移,不可避免地,我们会面临着数据契约版本的变化,比如数据成员的添加和删除、成员名称或者命名空间的修正等,如何避免数据契约这种版本的变化对客户端现有程序造成影响,就是本节着重要讨论的问题。一、数据契约的等效性数据...
WCF技术剖析之十七:消息(Message)详解(上篇)

WCF技术剖析之十七:消息(Message)详解(上篇)

WCF技术剖析之十七:消息(Message)详解(上篇)2012-11-05 博客园 Artech消息交换是WCF进行通信的唯一手段,通过方法调用(Method Call)形式体现的服务访问需要转化成具体的消息,并通过相应的编码(Encoding)才能通过传输通道发送到服务端;服务操作执行的结果也只能以消息的形式才能被正常地返回到客户端。所以,消息在整个WCF体系结构中处于一个核心的地位,WCF可以看成是一个消息处理的管道。尽管消息在整个WCF体系中具有如...
WCF技术剖析之十七:消息(Message)详解(中篇)

WCF技术剖析之十七:消息(Message)详解(中篇)

WCF技术剖析之十七:消息(Message)详解(中篇)2012-11-05 博客园 Artech在上篇中大体上围绕着Message的两个话题进行讲述:消息版本(Message Version)和采用五种不同的方式创建Message。本篇文章将会详细介绍Message的另外两个主题:和消息的基本操作,比如读、写、拷贝、关闭等,以及消息状态机(Message State Machine)。知道了消息是如何创建的,我们接着讨论消息的一些基本的操作。除了上面介绍...
WCF技术剖析之十七:消息(Message)详解(下篇)

WCF技术剖析之十七:消息(Message)详解(下篇)

WCF技术剖析之十七:消息(Message)详解(下篇)2012-11-05 博客园 Artech《WCF技术剖析(卷1)》自出版近20天以来,得到了园子里的朋友和广大WCF爱好者的一致好评,并被卓越网计算机书店作为首页推荐,在这里对大家的支持表示感谢。同时我将一直坚持这个博文系列,与大家分享我对WCF一些感悟和学习经验。在《消息(Message)详解》系列的上篇和中篇,先后对消息版本、详细创建、状态机和基于消息的基本操作(读取、写入、拷贝、关闭)进行了深...
WCF技术剖析之十八:消息契约(Message Contract)和基于消息契约的序列化

WCF技术剖析之十八:消息契约(Message Contract)和基于消息契约的序列化

WCF技术剖析之十八:消息契约(Message Contract)和基于消息契约的序列化2012-11-07 博客园 Artech在本篇文章中,我们将讨论WCF四大契约(服务契约、数据契约、消息契约和错误契约)之一的消息契约(Message Contract)。服务契约关注于对服务操作的描述,数据契约关注于对于数据结构和格式的描述,而消息契约关注的是类型成员与消息元素的匹配关系。我们知道只有可序列化的对象才能通过服务调用在客户端和服务端之间进行传递。到目前...
WCF技术剖析之十九:深度剖析消息编码(Encoding)实现(上篇)

WCF技术剖析之十九:深度剖析消息编码(Encoding)实现(上篇)

WCF技术剖析之十九:深度剖析消息编码(Encoding)实现(上篇)2012-11-07 博客园 Artech消息作为WCF进行通信的唯一媒介,最终需要通过写入传输层进行传递。而对消息进行传输的一个前提或者是一项必不可少的工作是对消息进行相应的编码。WCF提供了一系列可供选择的编码方式,它们分别在互操作和性能各具优势。在本篇文章我们将对各种编码方式进行消息的讨论。从互操作性的角度来看,编码方法很大程度上决定了跨平台支持的能力。有的编码方式是平台无关的,有...
WCF技术剖析之十九:深度剖析消息编码(Encoding)实现(下篇)

WCF技术剖析之十九:深度剖析消息编码(Encoding)实现(下篇)

WCF技术剖析之十九:深度剖析消息编码(Encoding)实现(下篇)2012-11-07 博客园 Artech通过上篇的介绍,我们知道了WCF所有与编码与解码相关的功能都实现在相应的System.Xml.XmlDictionaryWriter和System.Xml.XmlDictionaryReader中。但是在真正的WCF处理框架中,却并不直接使用XmlDictioanryWriter和XmlDictionaryReader对象,而通过相应的消息编码器...
WCF技术剖析之二十: 服务在WCF体系中是如何被描述的?

WCF技术剖析之二十: 服务在WCF体系中是如何被描述的?

WCF技术剖析之二十: 服务在WCF体系中是如何被描述的?2012-11-11 博客园 Artech任何一个程序都需要运行于一个确定的进程中,进程是一个容器,其中包含程序实例运行所需的资源。同理,一个WCF服务的监听与执行同样需要通过一个进程来承载。我们将为WCF服务创建或指定一个进程的方式称为服务寄宿(Service Hosting)。服务寄宿的本质通过某种方式,创建或者指定一个进程用以监听服务的请求和执行服务操作,为服务提供一个运行环境。服务寄宿的方式...
WCF技术剖析之二十一: WCF基本的异常处理模式[上篇]

WCF技术剖析之二十一: WCF基本的异常处理模式[上篇]

WCF技术剖析之二十一: WCF基本的异常处理模式[上篇]2012-11-11 博客园 Artech由于WCF采用.NET托管语言(C#和NET)作为其主要的编程语言,注定以了基于WCF的编程方式不可能很复杂。同时,WCF设计的一个目的就是提供基于非业务逻辑的通信实现,为编程人员提供一套简单易用的应用编程接口(API)。WCF编程模式的简单性同样体现在异常处理上面,本篇文章的主要目的就是对WCF基于异常处理的编程模式做一个简单的介绍。一、当异常从服务端抛出...
WCF技术剖析之二十一:WCF基本异常处理模式[中篇]

WCF技术剖析之二十一:WCF基本异常处理模式[中篇]

WCF技术剖析之二十一:WCF基本异常处理模式[中篇]2012-11-14 cnblogs Artech通过WCF基本的异常处理模式[上篇], 我们知道了:在默认的情况下,服务端在执行某个服务操作时抛出的异常(在这里指非FaultException异常),其相关的错误信息仅仅限于服务端可见,并不会被WCF传递到客户端;如果将开启了IncludeExceptionDetailInFaults的ServiceDebug服务行为通过声明(通过在服务类型上应用Se...
WCF技术剖析之二十一:WCF基本异常处理模式[下篇]

WCF技术剖析之二十一:WCF基本异常处理模式[下篇]

WCF技术剖析之二十一:WCF基本异常处理模式[下篇]2012-11-14 博客园 Artech从FaultContractAttribute的定义我们可以看出,该特性可以在同一个目标对象上面多次应用(AllowMultiple = true)。这也很好理解:对于同一个服务操作,可能具有不同的异常场景,在不同的情况下,需要抛出不同的异常。 1: [AttributeUsage(AttributeTargets.Method, AllowMultiple =...
WCF技术剖析之二十二: 深入剖析WCF底层异常处理框架实现原理[上篇]

WCF技术剖析之二十二: 深入剖析WCF底层异常处理框架实现原理[上篇]

WCF技术剖析之二十二: 深入剖析WCF底层异常处理框架实现原理[上篇]2012-11-17 博客园 Artech对于上一篇文章 (WCF基本异常处理模式:[上篇]、[中篇]、[下篇]),主要是站在最终开发者的角度对WCF关于异常处理编程模式进行了介绍,接下来,我们需要将我们的目光转移到WCF框架内部,深入剖析整个WCF异常处理流程。在基于SOAP的消息交换过程中,异常最终通过Fault消息承载,所以很自然地,接下来的介绍从SOAP Fault说起。一、 ...
WCF技术剖析之二十二: 深入剖析WCF底层异常处理框架实现原理[中篇]

WCF技术剖析之二十二: 深入剖析WCF底层异常处理框架实现原理[中篇]

WCF技术剖析之二十二: 深入剖析WCF底层异常处理框架实现原理[中篇]2012-11-17 博客园 Artech在[上篇]中,我们分别站在消息交换和编程的角度介绍了SOAP Fault和FaultException异常。在服务执行过程中,我们手工抛出FaultException异常,WCF服务端框架会对该异常对象进行序列化病最终生成Fault消息。当WCF客户端框架介绍到该Fault消息之后,会做一项相反的操作:对Fault消息中进行解析和反序列化,重新...
WCF技术剖析之二十二: 深入剖析WCF底层异常处理框架实现原理[下篇]

WCF技术剖析之二十二: 深入剖析WCF底层异常处理框架实现原理[下篇]

WCF技术剖析之二十二: 深入剖析WCF底层异常处理框架实现原理[下篇]2012-11-17 博客园 ArtechWCF客户端和服务端的框架体系相互协作,使得开发人员可以按照我们熟悉的方式进行异常的处理:在服务操作执行过程中抛出异常(FaultException),在调用服务时捕获异常,完全感觉不到“分布式”的存在,如同典型的“本地”操作一般。为了实现这样的效果,WCF在内部为我们作了很多。消息交换是WCF进...
WCF技术剖析之二十三:服务实例(Service Instance)生命周期如何控制[上篇]

WCF技术剖析之二十三:服务实例(Service Instance)生命周期如何控制[上篇]

WCF技术剖析之二十三:服务实例(Service Instance)生命周期如何控制[上篇]2012-11-20 博客园 Artech服务调用的目的体现在对某项服务功能的消费上,而功能的实现又定义在相应的服务类型中。不论WCF服务端框架处理服务调用请求的流程有多么复杂,最终都落实在服务实例的激活和操作方法的执行上面。WCF中的实例管理(Instance Management)旨在解决服务实例的激活和服务实例生命周期的控制。会话(Session)的目的在于保...
WCF技术剖析之二十三:服务实例(Service Instance)生命周期如何控制[中篇]

WCF技术剖析之二十三:服务实例(Service Instance)生命周期如何控制[中篇]

WCF技术剖析之二十三:服务实例(Service Instance)生命周期如何控制[中篇]2012-11-20 cnblogs Artech在[第1篇]中,我们介绍了WCF关于实例管理一些基本的知识点,包括InstanceContext、InstanceContextMode、已经如何通过ServiceBehaviorAttribute应用不同的实例上下文模式给不同的服务。在[第1篇]中,对WCF采用的三种不同实例上下文模式进行了简单的比较,本篇的重点方...
WCF技术剖析之二十三:服务实例(Service Instance)生命周期如何控制[下篇]

WCF技术剖析之二十三:服务实例(Service Instance)生命周期如何控制[下篇]

WCF技术剖析之二十三:服务实例(Service Instance)生命周期如何控制[下篇]2012-11-20 cnblogs Artech在[第2篇]中,我们深入剖析了单调(PerCall)模式下WCF对服务实例生命周期的控制,现在我们来讨轮另一种极端的服务实例上下文模式:单例(Single)模式。在单例模式下,WCF通过创建一个唯一的服务实例来处理所有的客户端服务调用请求。这是一个极端的服务实例激活方式,由于服务实例的唯一性,所有客户端每次调用的状态...
WCF技术剖析之二十四:ServiceDebugBehavior服务行为是如何实现异常的传播的?

WCF技术剖析之二十四:ServiceDebugBehavior服务行为是如何实现异常的传播的?

WCF技术剖析之二十四:ServiceDebugBehavior服务行为是如何实现异常的传播的?2012-11-22 博客园 蒋金楠服务端只有抛出FaultException异常才能被正常地序列化成Fault消息,并实现向客户端传播。对于一般的异常(比如执行Divide操作抛出的DivideByZeroException),在默认的情况下,异常信息无法实现向客户端传递。但是,倘若为某个服务应用了ServiceDebugBehavior这么一个服务行为,并开...
WCF技术剖析之二十五:元数据(Metadata)架构体系全景展现[WS标准篇]

WCF技术剖析之二十五:元数据(Metadata)架构体系全景展现[WS标准篇]

WCF技术剖析之二十五:元数据(Metadata)架构体系全景展现[WS标准篇]2012-11-22 博客园 蒋金楠元数据实际上是服务终结点的描述,终结点由地址(Address)、绑定(Binding)和契约(Contract)经典的ABC三要素组成。认真阅读过《WCF技术剖析(卷1)》的读者相对会对这三要素的本质有一个深刻的认识:地址决定了服务的位置并实现相应的寻址机制;契约描述了消息交换模式(Message Exchange Pattern: MEP)...
WCF技术剖析之二十五:元数据(Metadata)架构体系全景展现[元数据描述篇]

WCF技术剖析之二十五:元数据(Metadata)架构体系全景展现[元数据描述篇]

WCF技术剖析之二十五:元数据(Metadata)架构体系全景展现[元数据描述篇]2012-11-22 博客园 蒋金楠在[WS标准篇]中我花了很大的篇幅介绍了WS-MEX以及与它相关的WS规范:WS-Policy、WS-Transfer和WSDL,因为WCF元数据结构体系完全是基于WS-MEX等相关的规范之上。熟悉这些基本的WS规范,对于我们全面、深刻的理解WCF整个元数据架构体系具有十分重要的意义。不仅仅是针对元数据,对于后续章节陆续要介绍的内容,比如事...
<< 31 32 33 34 35 36 37 >>