《WCF技术剖析(卷1)》(修订版)目录

第1章  WCF简介 (WCF Overview)

1.1  SOA的基本概念和设计思想

1.2  WCF是对现有Windows平台下分布式通信技术的整合

1.3  构建一个简单的WCF应用

1.3.1  步骤一  构建整个解决方案

1.3.2  步骤二  创建服务契约

1.3.3  步骤三  创建服务

1.3.4  步骤四  通过自我寄宿的方式寄宿服务

1.3.5  步骤五  创建客户端调用服务

1.3.6  步骤六  通过IIS寄宿服务(S104)

第2章  地址(Address)

2.1.     统一资源标识符(URI)

2.1.1.      HTTP/HTTPS

2.1.2.      NET.TCP

2.1.3.      Net.Pipe

2.1.4.      Net.Msmq

2.2.     EndpointAddress

2.4.1.      为服务端终结点指定地址

2.4.2.      在客户端指定地址

2.4.3.      地址报头

2.3.     端口共享

2.3.1.      端口共享在WCF中的意义何在?

2.3.2.      基于HTTP|HTTPS的端口共享

2.3.3.      基于TCP的端口共享

2.4.     逻辑地址与物理地址

2.4.1.      服务的角色

2.4.2.      监听地址与监听模式

2.4.3.      ClientViaBehavior行为

2.4.4.      实例演示:通过tcpTrace进行消息的路由(S205,S206)

2.5.     请求监听与消息分发

2.5.1.      连接请求的监听(S208)

2.5.2.      消息分发

第3章  绑定 (Binding)

3.1.     绑定模型

3.1.1.      信道与信道栈

3.1.2.      实例演示:如何直接通过绑定进行消息通信(S301)

3.1.3.      WCF的绑定模型

3.2.     信道与信道栈

3.2.1.      CommunicationObject

3.2.2.      DefaultCommunicationTimeouts

3.2.3.      IChannel和ChannelBase

3.2.4.      消息交换模式

3.2.5.      信道形状

3.2.6.      会话信道

3.2.7.      实例演示:自定义信道(S302)

3.3.     信道监听器

3.3.1.      IChannelListener与ChannelListenerBase

3.3.2.      信道栈的创建/使用模式

3.3.3.      实例演示:自定义信道监听器(S302)

3.4.     信道工厂

3.4.1.      IChannelFactory与ChannelFactoryBase

3.4.2.      实例演示:自定义信道工厂(S302)

3.5.     绑定元素

3.5.1.      构成绑定的元素

3.5.2.      实例演示:自定义绑定元素(S302)

3.6.     绑定

3.6.1.      绑定是绑定元素的有序集合

3.6.2.      实例演示:创建自定义绑定(S302,S303)

3.6.3.      系统绑定

3.6.4.      自定义绑定

3.6.5.      绑定配置

第4章  契约 (Contracts)

4.1.     多角度认识契约

4.1.1.      抽象、接口与服务契约

4.1.2.      元数据与服务契约

4.1.3.      WSDL、XSD与服务契约

4.1.4.      消息交换与服务契约

4.1.5.      WCF实现了CLR类型和XML的适配

4.2.     定义服务契约

4.3.1.      ServiceContractAttribute

4.3.2.      OperationContractAttribute

4.3.3.      服务契约的继承

4.3.     契约的描述

4.3.1.      ContractDescription

4.3.2.      OperationDescription

4.3.3.      MessageDescription

4.4.     消息交换模式与服务操作

4.4.1.      请求-回复模式

4.4.2.      单向模式

4.4.3.      双工模式

4.4.4.      实例演示:通过双工通信实现回调

4.5.     多线程与异步操作

4.5.1.      异步服务调用

4.5.2.      异步服务实现

4.6.     操作的选择与执行

4.6.1.      DispatchOperation与ClientOperation

4.6.2.      操作的选择

4.6.3.      操作的执行

第5章  序列化 (Serialization)

5.1.     XmlSerializer

5.1.1.      XmlSerializer默认的序列化规则

5.1.2.      通过定制XmlSerializer控制XML结构

5.1.3.      通过定制数据类型控制XML结构

5.2.     数据契约

5.2.1.      数据契约的本质

5.2.2.      DataContractAttribute与DataMemberAttribute

5.3.     DataContractSerializer

5.3.1.      DataContractSerializer的序列化规则

5.3.2.      如何限定序列化对象的数量?

5.3.3.      如何保持对象现有的引用结构?

5.4.     已知类型

5.4.1.      未知类型导致序列化失败

5.4.2.      DataContractSerializer的已知类型集合

5.4.3.      基于接口的序列化

5.4.4.      KnownTypeAttribute

5.4.5.      ServiceKnownTypeAttribute

5.5.     泛型数据契约与集合数据契约

5.5.1.      泛型数据契约

5.5.2.      数据契约集合

5.5.3.      集合数据契约

5.5.4.      字典数据契约

5.6.     等效数据契约

5.6.1.      数据契约的等效性

5.6.2.      数据成员的添加

5.6.3.      数据成员的删除

5.6.4.      数据契约代理

5.7.     序列化在WCF框架中的实现

5.7.1.      消息格式化器

5.7.2.      DataContractSerializer还是XmlSerializer?

5.7.3.      实例演示:通过自定义消息格式化器压缩消息(S521)

第6章  消息 (Message)

6.1.     SOAP与WS-Addressing

6.1.1.      SOAP

6.1.2.      WS-Addressing

6.2.     消息

6.2.1.      消息版本

6.2.2.      如何创建消息

6.2.3.      消息的基本操作

6.3.     消息报头与消息属性

6.3.1.      MessageHeaderInfo

6.3.2.      MessageHeader

6.3.3.      MessageHeader<T>

6.3.4.      MessageHeaders

6.3.5.      消息属性

6.3.6.      实例演示:通过消息报头和消息属性实现上下文信息的传播(S612)

6.4.     消息契约

6.4.1.      MessageContractAttribute

6.4.2.      MessageHeaderAttribute

6.4.3.      MessageBodyMemberAttribute

6.4.4.      消息契约与操作

6.5.     XML编码

6.5.1.      XmlDictionary

6.5.2.      XmlDictionaryWriter

6.5.3.      XmlDictionaryReader

6.6.     消息编码

6.6.1.      消息编码器

6.6.2.      消息编码器工厂

6.6.3.      消息编码绑定元素

6.6.4.      消息编码与绑定

6.6.5.      消息编码的实现

6.6.6.      实例演示:通过自定义消息编码器实现消息压缩(S620)

第7章  服务寄宿 (Hosting)

7.1.     服务描述

7.1.1.      ServiceDescription

7.1.2.      WCF的四大行为

7.2.     ServiceHost

7.2.1.      服务描述的创建(S701)

7.2.2.      运行时框架体系的构建

7.2.3.      服务的批量寄宿(S702)

7.2.4.      自定义ServiceHost(S703)

7.3.     IIS与ASP.NET架构设计

7.3.1.      IIS 5.x与ASP.NET

7.3.2.      IIS 6.0与ASP.NET

7.3.3.      IIS 7.0与ASP.NET

7.3.4.      ASP.NET管道

7.4.     IIS寄宿

7.4.1.      .svc文件

7.4.2.      实例演示:如何使用自定义ServiceHost(S704)

7.4.3.      ASP.NET并行模式

7.4.4.      ASP.NET兼容模式

7.4.5.      非HTTP协议寄宿

7.5.     Windows 服务寄宿(S708)

第8章  客户端 (Client)

8.1.     一个精简版的WCF框架

8.1.1.      从透明代理和真实代理说起

8.1.2.      服务代理的真实代理是什么?

8.1.3.      服务调用的大致流程

8.1.4.      实例演示:创建一个WCF框架模拟程序

8.2.     ChannelFactory<TChannel>

8.2.1.      终结点是ChannelFactory<TChannel>的核心

8.2.2.      一个特殊的信道工厂

8.2.3.      ChannelFactory<TChannel>的开启

8.3.     服务代理

8.3.1.      服务代理的创建

8.3.2.      四个重要的接口

8.3.3.      服务调用

8.4.     ClientBase<TChannel>

8.4.1.      ClientBase<TChannel>与ChannelFactory<TChannel>

8.4.2.      ChannelFactory<TChannel>缓存机制

8.5.     服务代理关闭与中止

8.5.1.      没有关闭服务代理会带来怎样的后果?

8.5.2.      数据报信道与会话信道

8.5.3.      服务代理、ChannelFactory<TChannel>和ClientBase<TChannel>的关闭

8.5.4.      服务代理的中止

8.5.5.      通过RealProxy实现服务代理的自动关闭和中止(S810)

8.5.6.      通过委托实现服务代理的自动关闭和中止(S811)

第9章  实例管理与会话 (Instancing and Session)

9.1.     实例上下文与实例上下文模式

9.1.1.      实例上下文

9.1.2.      实例上下文模式

9.1.3.      实例服务行为

9.1.4.      实例上下文提供者与实例提供者

9.1.5.      实例上下文提供机制

9.2.     单调模式

9.2.1.      实例演示:单调模式下实例的创建与回收(S901)

9.2.2.      单调模式实例上下文提供机制

9.2.3.      实例演示:通过自定义实例上下文提供者实现单调模式(S902)

9.2.4.      单调模式与可伸缩性

9.3.     单例模式

9.3.1.      已知单例和隐式单例

9.3.2.      实例演示:单例模式下服务实例上下文的同一性(S903)

9.3.3.      单例模式实例上下文提供机制

9.3.4.      实例演示:通过自定义实例上下文提供者实现单例模式(S904)

9.3.5.      单例模式下的并发与同步

9.4.     会话

9.4.1.      客户端识别机制

9.4.2.      会话契约

9.4.3.      会话绑定

9.5.     会话模式

9.5.1.      基于信道栈的服务实例上下文提供机制

9.5.2.      会话实例上下文模式与可伸缩性

9.5.3.      会话与状态无关的服务设计

9.6.     会话模式、绑定与实例上下文模式

9.6.1.      单调服务决定于单调实例上下文模式

9.6.2.      单例服务决定于单例实例上下文模式

9.6.3.      会话服务决定于会话信道(栈)和会话实例上下文模式

第10章  WCF实例研究 (WCF in Practice)

10.1.   VM简介

10.1.1.    基本功能

10.1.2.    物理部署

10.1.3.    模块划分

10.1.4.    层次设计

10.1.5.    IoC的应用

10.1.6.    AOP的应用

10.1.7.    身份认证

10.1.8.    异常处理

10.2.      模块设计

10.2.1.    数据库设计

10.2.2.    Products模块

10.2.3.    Orders模块

10.2.4.    Infrastructure模块

10.3.      ASP.NET MVC项目

10.3.1.    IoC集成

10.3.2.    异常处理

10.3.3.    AccountController

10.3.4.    ProductsController

10.3.5.    OrdersController

 

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

原文链接

时间: 2024-09-08 18:38:48

《WCF技术剖析(卷1)》(修订版)目录的相关文章

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

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

WCF技术剖析之十二

数据契约(Data Contract)和数据契约序列化器(DataContractSerializer) 大部分的系统都是以数据为中心的(Data Central),功能的实现表现在对相关数据的正确处理.而数据本身,是有效信息的载体,在不同的环境具有不同的表示.一个分布式的互联系统关注于数据的交换,而数据正常交换的根本前提是参与数据交换的双方对于数据结构的一致性理解.这就为数据的表现提出了要求,为了保证处于不同平台.不同厂商的应用能够正常地进行数据交换,交换的数据必须采用一种大家都能够理解的展现

WCF技术剖析之六

为什么在基于ASP.NET应用寄宿(Hosting)下配置的BaseAddress无效? 本篇文章来源于几天前一个朋友向我咨询的问题.问题是这样的,他说他采用ASP.NET应用程序的方式对定义的WCF服务进行寄宿(Hosting),并使用配置的方式对服务的BaseAddress进行了设置,但是在创建ServiceHost的时候却抛出InvalidOperationException,并提示相应Address Scheme的BaseAddress找不到.我意识到这可能和WCF中用于判断服务寄宿方式

WCF技术剖析之三十二:一步步创建一个完整的分布式事务应用

在完成了对于WCF事务编程(<上篇>.<中篇>.<下篇>)的介绍后,本篇文章将提供一个完整的分布式事务的WCF服务应用,通过本例,读者不仅仅会了解到如何编程实现事务型服务,还会获得其他相关的知识,比如DTC和AS-AT的配置等.本例还是沿用贯通本章的应用场景:银行转帐.我们将会创建一个BankingService服务,并将其中的转帐操作定义成事务型操作.我们先从物理部署的角度来了解一下BankingService服务,以及需要实现怎样的分布式事务. 一.从部署的角度看分

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基本异常处理模式[下篇]

从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