《WCF全面剖析》-章节内容简介

(上册)

第1章 WCF简介(WCF Overview)
本章简单讲述了WCF产生的历史背景,以及在微软产品线中所处的地位。为了使读者对基于WCF的编程模型有一个直观的印象,我们将带领读者创建一个完整的WCF应用。本章实例应用涵盖了构建一个基本WCF应用所需的所有步骤,包括服务契约的定义、服务的实现、服务的寄宿、元数据的发布和导入、服务代理的创建和服务调用等。

第2章 地址(Address)
作为终结点三要素之一的地址在WCF应用编程接口中通过EndpointAddress表示,本章会从编程的角度对该类型进行详细的介绍。端口共享对于WCF服务的部署具有重要的意义,我们会分别介绍基于不同传输协议(HTTP/HTTPS和TCP)的端口共享机制在WCF中是如何实现的。终结点地址具有逻辑地址和物理地址之分,本章会详细讲述如何在客户端和服务端实现两者的分离。在本章的最后会对请求监听和消息分发机制进行深入解析。

第3章 绑定(Binding)

WCF整个框架大体分为服务模型层和信道层,作为终结点三要素之一的绑定是整个信道层的缔造者。为了全景展示整个绑定模型,涉及到的对象包括绑定元素、信道监听器、信道工厂、信道等。绑定本质上是一系列相关绑定元素的有序组合,我们将从绑定元素的构成来分析常见系统绑定的本质区别,以及通过绑定元素重组来创建自定义绑定。

第4章 契约(Contract)
契约是组成终结点的第三个元素,本章会从编程和服务描述的角度系统地介绍服务契约。组成服务契约的操作表示基于某种模式的消息交换和消息本身的结构,本章会着重介绍基于三种消息交换模式的契约操作之间的差异,以及如何编程实现对客户端的回调。多线程在服务调用中具有普遍的意义,我们会全方面地介绍多种不同的异步调用方法在WCF中的实现。在本章的结尾,我们会详细讨论操作选择和执行机制。

第5章 序列化(Serialization)
序列化/反序列化最终通过XmlSerializer和DataContractSerializer这两个序列化器来实现,我们会详细介绍它们参与序列化和反序列化采用的序列化规则。数据契约是WCF中定义数据的主要方式,本章会着重介绍如何通过DataContractAttribute和DataMemberAttribute这两个特性来定义数据契约。确定对象的类型是保证序列化/反序列化成功的先决条件,我们会系统地介绍如何通过“已知类型”让某些类型成为序列化器预先知道的类型。基于集合和泛型类型的数据契约比较特殊,我们会在专门的一节对它们进行详细介绍。本章的最后会讲述数据契约等效性的概念,以及针对请求消息和回复消息的序列化/反序列化在WCF中是如何实现的。

第6章 消息(Message)
消息是通信的载体,本章专门介绍关于消息的话题。我们首先会通过对SOAP的介绍让读者知道一个标准的消息应该具有怎样的结构。在WCF的应用编程接口中,消息通过类型System.ServiceModel.Channels.Message表示,我们会针对该类型来介绍基于消息的基本操作和状态机。除了消息主体外,我们可以通过消息报头和消息属性来携带额外的控制信息,本章会详细讲述消息报头和消息属性是如何添加和读取的。消息契约可以将某个类型的属性/字段分别定义成消息的主体成员和报头成员,我们会系统地介绍基于消息契约的编程。本章以消息编码作为结尾,通过介绍我们可以知道消息在发送前的编码和接收后的解码在WCF中是如何实现的。

第7章 服务寄宿(Hosting)
我们通过宿主应用程序来承载服务旨在为服务提供一个运行环境。服务契约通过ServiceHost来实现,以终结点为核心的服务描述是创建ServiceHost的基础,所以本章的开始会对服务描述进行系统的介绍。IIS/WAS寄宿是我们常用的服务寄宿方式,为了深刻地理解背后的运行机制,我们对不同版本的IIS和ASP.NET管道进行了详细介绍。而IIS/WAS寄宿具有ASP.NET兼容模式和并行模式之分,本章将从实现原理的角度深入剖析两者的差别。我们将针对Windows服务的服务寄宿方式放在本章的结尾进行介绍。

第8章 客户端(Client)
我们通过服务代理进行服务调用,而服务代理可以直接通过ChannelFactory[TChannel]来创建,也可以通过导入服务元数据的方法直接生成继承自ClientBase[TChannel]的服务代理类。本章会详细讲述ChannelFactory[TChannel]和ClientBase[TChannel]。通过本章的介绍我们会知道,从ChannelFactory[TChannel]被创建到被开启,再到通过ChannelFactory
[TChannel]创建服务代理,最后将服务代理开启并进行服务调用的各个阶段WCF在背后都为我们做了什么。

第9章 实例化与会话(Instancing and Session)
实例化和会话是WCF中两个重要的概念,前者旨在实现服务实例对象的激活,后者则实现对客户端调用状态的保持。本章将详细介绍三种典型的实例化模式所表现的行为、实现的原理及各自适合的场景。在介绍会话的部分会深入剖析会话如何保持客户端多次服务调用的状态,以及会话、实例化模式、绑定和信道之间的关系。

第10章 REST服务(REST Service)
REST是直接建立在Web上的一种面向资源的软件架构风格,WCF通过Web
HTTP编程模型对REST提供了很好的支持。本章会系统地讲述组成Web HTTP编程模型的重要类型和组件。URI模板是WCF
REST的一个重要的概念,读者通过本章的介绍不仅会了解定义URI模板的基本语法,还会对基于URI模板的操作选择机制有一个深刻的理解。较之SOAP,WCF

REST采用更为复杂的消息格式化机制,本章通过对消息格式化的介绍让读者明白不同消息格式和主体风格的消息是如何格式化的。输出缓存、条件获取和条件更新的介绍被放在本章的最后部分。

第11章 WCF实例研究(WCF in Practice)
本章通过一个简单的电子商务网站VideoMall指导读者如何利用WCF构建一个完整的分布式应用。本实例不仅会体现WCF的基本编程方式,还会涉及一些软件架构和设计方面的介绍,比如模块化、分层、IoC和AOP等。本实例还体现了很多针对WCF的扩展,比如通过扩展实现了与Unity、EntLib的集成。

(下册)

第1章 异常处理(Exception Handling)

本章首先会对WCF基本异常处理模式进行介绍,读者借此会了解到如何进行异常的抛出与捕获,异常详细信息如何传递,以及错误契约该如何定义。异常和消息是错误信息的两种不同的载体,我们会详细介绍通过两种不同形式承载的错误信息是如何进行转换的。WCF的扩展性在异常处理方面具有较好的体现,本章的最后部分会通过实例演示的方式讲述基于自定义ErrorHandler的异常处理扩展。

第2章 元数据(Metadata)

用于描述服务的元数据帮助客户端创建匹配的终结点进行服务调用,WCF具有一个完整的元数据体系实现元数据的导出、发布、获取和导入,本章会从这4个方面来深入剖析整个元数据架构体系。不论是元数据本身还是元数据的发布,都不是微软在Windows平台内部的闭门造车,而是遵循一系列的开放标准,这些标准包括WS-Policy、WS-Transfer、WSDL和WS-MEX等,本章同样会涉及到对这些WS-*规范的介绍。

第3章 事务(Transaction)
基于WCF的分布式事务直接建立在现有的Windows事务管理体系之上,本章会对该事务处理模型进行详细的介绍。WCF事务具有OleTx和WS-AT两个基本协议,我们会对WS-AT以及相关的WS-Coordination规范进行相应的介绍。在针对事务编程模型的介绍中,我们会了解到如何通过服务契约定义事务流转的策略,如何通过对绑定的设置实现事务的流转,以及如何控制事务相关的行为。在本章的最后,我们会详细讲述事务流转和事务自动登记在WCF框架体系中是如何实现的。

第4章 并发与限流(Concurrency and Throttling)

并发指的是针对同一个封装服务实例的实例上下文的并行调用,WCF具有Single、Multiple和Reentrant三种基本的并发模式,本章会详细讲述基于不同实例化方式的Single和Reentrant并发模式是如何实现的。线程的亲和性表示针对服务调用请求的处理与服务寄宿时的同步上下文的绑定,本章会详细介绍线程的亲和性是如何产生的,以及如何解除线程的亲和性。限流旨在控制相应的并发量以实现对资源的合理使用,进而确保服务的可用性,在本章的最后部分我们会详细讲述如何设置三个限流阈值,以及限流机制的实现原理。

第5章 可靠会话(Reliable Sessions)
可靠会话通过消息确认和超时重传机制保证了通信的可靠性,实现了消息的接收保障、重复筛选和有序交付。可靠会话是对WS-RM的实现,本章的开始会进行关于WS-RM的相关介绍。可靠会话仅仅涉及到绑定,我们会通过实例演示的方式来介绍围绕着绑定的可靠会话编程模型。在本章的最后,我们会从消息交换的角度来深入剖析可靠会话是如何实现上述三个可靠通信诉求的。

第6章 队列服务(Queued Service)
WCF是Windows平台下传统分布式技术集大成者,这里被集成的一项分布式技术就包括MSMQ,我们把采用MSMQ作为通信手段的服务称为队列服务。为了巩固读者针对MSMQ的相关知识,我们会对MSMQ以及针对System.Messaging的编程模型进行简单的介绍。同样是通过三要素组成的终结点,队列服务对终结点有着不同的要求,我们会讨论队列服务终结点的独特之处。队列服务针对事务和会话有着完全不同的特性和实现方式,队列服务下的事务和会话是本章的一个重点。本章的最后部分会讲述在客户端和服务端如何进行错误处理。

第7章 传输安全(Transfer Security)
传输安全通过身认证让服务和客户端在进行功能性消息交互之前确定对方的身份,通过对消息的签名和加密确保消息的一致性和机密性。传输安全具有两种基本模式,即Transport和Message安全模式,本章针对不同的绑定类型对这两种安全模式的支持进行了系统的介绍。

第8章 授权与审核(Authorization and Auditing)
WCF提供了针对操作的声明式授权让某个访问者只能执行被授权的操作。Windows用户组和ASP.NET
Roles这两种现成的授权方式可以被直接使用,同时支持自定义的授权模式。本章着重介绍不同授权模式的编程方式和实现原理。所谓的安全审核就是针对认证和授权所做的针对EventLog的日志记录,我们将通过具体的实例来讲述如何审核编程和实现审核背后的故事。

第9章 扩展(Extension)

整本书都在提及WCF的扩展性,本章对此进行专门的介绍。根据具体需要对WCF进行自由而灵活的扩展的前提是我们对整个WCF运行框架体系有一个深刻的认识,所以本章会为你带来针对WCF客户端和服务端运行框架的全景展示,并在此基础上介绍WCF包含的几乎所有的扩展点。

第10章 WCF 4.0新特性(New Feathures in WCF 4.0)
其实整本书都是针对WCF 4.0的,关于WCF 4.0针对现有功能的一些小改动已经包含在各个章节中。本章着重介绍WCF 4.0提供的一些全新的特性,包括默认终结点、默认绑定和行为配置、标准终结点、无.svc文件服务激活、路由服务和服务发现等。

作者:蒋金楠
微信公众账号:大内老A
微博:www.weibo.com/artech
如果你想及时得到个人撰写文章以及著作的消息推送,或者想看看个人推荐的技术资料,可以扫描左边二维码(或者长按识别二维码)关注个人公众号(原来公众帐号蒋金楠的自媒体将会停用)。
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

原文链接

时间: 2024-11-17 10:19:38

《WCF全面剖析》-章节内容简介的相关文章

WCF技术剖析之十一:异步操作在WCF中的应用(下篇)

说完了客户端的异步服务调用(参阅WCF技术剖析之十一:异步操作在WCF中的应用(上篇)),我们在来谈谈服务端如何通过异步的方式为服务提供实现.在定义服务契约的时候,相信大家已经注意到了OperationContractAttribute特性具有一个bool类型的AsynPattern.该属性可以将一个服务操作定义成异步实现模式,接下来的内容主要是着眼于介绍异步操作的定义和实现原理. 一.异步操作的定义和实现原理 实现WCF异步服务操作模式在编程上具有一些限制:异步服务操作是通过两个配对的方法实现

WCF技术剖析之三十:一个很有用的WCF调用编程技巧[下篇]

在<上篇>中,我通过使用Delegate的方式解决了服务调用过程中的异常处理以及对服务代理的关闭.对于<WCF技术剖析(卷1)>的读者,应该会知道在第7章中我通过类似于AOP的方式解决了相似的问题,现在我们来讨论这个解决方案. 通过<服务代理不能得到及时关闭会有什么后果?>的介绍,我们知道了及时关闭服务代理的重要意义,并且给出了正确的编程方式.如果严格按照上面的编程方式,就意味着对于每一个服务调用,都要使用相同的代码进行异常处理和关闭或中断服务代理对象.按照我个人的观点

WCF技术剖析之二十七: 如何将一个服务发布成WSDL

[基于WS-MEX的实现](提供模拟程序) 通过<如何将一个服务发布成WSDL[编程篇]>的介绍我们知道了如何可以通过编程或者配置的方式将ServiceMetadataBehavior这样一个服务形式应用到相应的服务上面,从而实现基于HTTP-GET或者WS-MEX的元数据发布机制.那么在WCF内部具体的实现原理又是怎样的呢?相信很多人对此都心存好奇,本篇文章的内容将围绕着这个主题展开. 一. 从WCF分发体系谈起 如果读者想对WCF内部的元数据发布机制的实现原理有一个全面而深入的了解,必须对

WCF技术剖析之二十六:如何导出WCF服务的元数据(Metadata)[扩展篇]

通过<实现篇>对WSDL元素和终结点三要素的之间的匹配关系的介绍,我们知道了WSDL的Binding元素来源于终结点的绑定对象,那么这些基于Binding的元数据以及相应的策略断言是如何被写入WSDL的呢?WSDL导出扩展(WSDL Export Extension)和策略导出扩展(Policy Export Extension)就是为此设计的. 一.WSDL导出扩展(WSDL Export Extension) 终结点的绑定本质上就是相关的绑定元素(BindingElement)的有序组合(

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

元数据实际上是服务终结点的描述,终结点由地址(Address).绑定(Binding)和契约(Contract)经典的ABC三要素组成.认真阅读过<WCF技术剖析(卷1)>的读者相对会对这三要素的本质有一个深刻的认识:地址决定了服务的位置并实现相应的寻址机制:契约描述了消息交换模式(Message Exchange Pattern: MEP)以及消息的结构(Schema):绑定则通过创建信道栈实现对消息的编码.传输和基于某些特殊的功能(比如实现事务.可靠传输以及基于消息的安全)对消息作出的处理

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

WCF客户端和服务端的框架体系相互协作,使得开发人员可以按照我们熟悉的方式进行异常的处理:在服务操作执行过程中抛出异常(FaultException),在调用服务时捕获异常,完全感觉不到"分布式"的存在,如同典型的"本地"操作一般.为了实现这样的效果,WCF在内部为我们作了很多. 消息交换是WCF进行通信的唯一手段,消息不仅仅是正常服务调用请求和回复的载体,服务端抛出的异常,甚至是服务的元数据都是通过消息的形式传向客户端的.所以,实现异常与消息之间的转换是整个异常处

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

从FaultContractAttribute的定义我们可以看出,该特性可以在同一个目标对象上面多次应用(AllowMultiple = true).这也很好理解:对于同一个服务操作,可能具有不同的异常场景,在不同的情况下,需要抛出不同的异常. 1: [AttributeUsage(AttributeTargets.Method, AllowMultiple = true, Inherited = false)] 2: public sealed class FaultContractAttri

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

<WCF技术剖析(卷1)>自出版近20天以来,得到了园子里的朋友和广大WCF爱好者的一致好评,并被卓越网计算机书店作为首页推荐,在这里对大家的支持表示感谢.同时我将一直坚持这个博文系列,与大家分享我对WCF一些感悟和学习经验.在<消息(Message)详解>系列的上篇和中篇,先后对消息版本.详细创建.状态机和基于消息的基本操作(读取.写入.拷贝.关闭)进行了深入剖析,接下来我们来谈谈消息的另一个重要组成部分:消息报头(Message Header). 按照SOAP1.1或者SOAP

WCF技术剖析之十三:序列化过程中的已知类型(Known Type)

DataContractSerializer承载着所有数据契约对象的序列化和反序列化操作.在上面一篇文章(<数据契约(Data Contract)和数据契约序列化器(DataContractSerializer)>)中,我们谈到DataContractSerializer基本的序列化规则:如何控制DataContractSerializer序列化或者反序列化对象的数量:以及如何在序列化后的XML中保存被序列化对象的对象引用结构.在这篇文章中,我们会详细讨论WCF序列化中一个重要的话题:已知类型