第Ⅰ部分 WCF介绍 1
第1章 蓝月亮 3
1.1 普遍需求 3
1.2 普遍概念 4
1.3 商业示例 7
1.4 介绍WCF 8
1.4.1 它不只是另一个API 9
1.4.2 WCF总览 9
1.4.3 WCF特性 11
1.5 本章小结 16
第2章 面向服务 17
2.1 快速定义面向服务 18
2.2 理解消息 18
2.3 消息参与者 19
2.3.1 初始发送者 20
2.3.2 中介者 21
2.3.3 最终接收者 22
2.4 消息剖析 23
2.4.1 消息信封 24
2.4.2 消息头 24
2.4.3 消息体 25
2.5 消息传输 25
2.6 消息编码 26
2.6.1 XML Infoset 27
2.6.2 SOAP和XML Infoset 27
2.6.3 文本编码器 27
2.6.4 二进制编码器 28
2.6.5 MTOM编码器 28
2.6.6 选择恰当的编码 30
2.7 标记消息地址 31
2.7.1 在传输中标记地址与在消息中标记地址 32
2.7.2 指定最终接收者 32
2.7.3 指定初始发送者 33
2.7.4 指定错误发送地址 33
2.7.5 识别消息 34
2.7.6 关联消息 34
2.7.7 谁在监听应答消息谁在侦听应答消息 35
2.7.8 指定一个操作 35
2.7.9 标准消息头块的需求 37
2.8 WS-Addressing 37
2.8.1 Endpoint References 38
2.8.2 消息头块 39
2.8.3 消息头块依赖 41
2.9 面向服务的4个原则 41
2.9.1 边界清晰 41
2.9.2 服务自治(有几分) 42
2.9.3 契约共享 42
2.9.4 基于策略的兼容性 43
2.10 概念汇总 43
2.10.1 契约 44
2.11 为什么需要面向服务合乎道理 50
2.11.1 版本升级 50
2.11.2 负载均衡 51
2.11.3 平台一直在变 53
2.11.4 基于内容的路由 53
2.11.5 端到端的安全 53
2.11.6 互操作性 54
2.12 本章小结 54
第3章 消息交换模式、拓扑和编排 55
3.1 消息交换模式 55
3.1.1 数据报交换模式 57
3.1.2 请求/应答消息交换模式 60
3.1.4 双工消息交换模式 62
3.2 消息拓扑 64
3.2.1 点对点 64
3.2.3 数据报点对点 65
3.2.2 消息转发代理 65
3.2.4 对等网络 66
3.3 消息编排 66
3.4 本章小结 67
第4章 WCF 101 69
4.1 WCF快速启动 70
4.1.1 定义服务契约 70
4.1.2 定义地址和绑定 71
4.1.3 创建一个终结点并启动侦听 71
4.1.4 映射接收的消息到HelloWCF的成员 72
4.1.5 编译、运行和检验接收者 73
4.1.6 向接收者发送消息 74
4.1.7 编译、运行和检验发送者 75
4.1.8 看消息 76
4.1.9 小变化,大影响 77
4.1.10 暴露元数据 79
4.2.11 使用元数据 82
4.2 从外部剖析WCF 84
4.2.1 地址(Address) 84
4.2.2 绑定(Binding) 85
4.2.3 契约(Contract) 87
4.3 从内部剖析WCF 91
4.4 本章小结 92
第Ⅱ部分 WCF通道层 93
第5章 消息 95
5.1 Message类型介绍 96
5.2 WCF XML栈 97
5.2.1 XmlDictionary类型 98
5.2.2 XmlDictionaryWriter类型 100
5.2.3 XmlDictionaryReader类型 110
5.3 回到Message类型 113
5.4 创建消息 113
5.4.1 简要介绍Message序列化和反序列化 113
5.4.2 Message版本 114
5.4.3 对象序列化图 116
5.4.4 从Reader提取数据 118
5.4.5 使用BodyWriter把数据放进Message 119
5.4.6 Message和SOAP Fault 120
5.5 Buffered vs. Streamed消息 124
5.6 序列化消息 125
5.7 反序列化消息 126
5.7.1 检查Message 是否是SOAP Fault 126
5.8 Message状态 127
5.9 使用消息头 128
5.9.1 MessageHeader类型 128
5.9.2 MessageHeaders类型 133
5.9.3 EndpointAddress类型 138
5.10 复制消息 141
5.11 消息清理 142
5.12 本章小结 143
第6章 通道 145
6.1 正确认识通道 146
6.1.1 实例化通道 147
6.2 通道状态机 147
6.2.1 ICommunicationObject接口 148
6.2.2 CommunicationObject类型 149
6.2.3 CommunicationObject子类型 150
6.2.4 Open和BeginOpen方法 152
6.2.5 Close和Abort方法 154
6.2.6 Fault方法 156
6.2.7 CommunicationObject堆栈 156
6.3 通道形状介绍 157
6.4 通道接口和基本类型 159
6.4.1 IChannel接口 160
6.4.2 数据报通道:IInputChannel与IOutputChannel 161
6.4.3 请求/应答通道:IRequestChannel和IReplyChannel 163
6.4.4 双工通道:IDuplexChannel 165
6.4.5 IDefaultCommunicationTimeouts接口 166
6.4.6 ChannelBase类型 166
6.5 通道功能 168
6.5.1 传输通道 168
6.5.2 协议通道 168
6.5.3 组合通道 170
6.6 创建自定义通道 170
6.6.1 创建基类型 171
6.6.2 创建数据报通道 174
6.6.3 数据报接收通道 174
6.6.4 数据报发送通道 175
6.6.5 双工通道 177
6.6.6 双工会话通道 178
6.7 本章小结 179
第7章 通道管理器 181
7.1 通道管理器的概念 182
7.1.2 接收者:通道侦听器 182
7.2.1 IChannelListener接口 183
7.1.4 IChannelListener<TChannel>接口 184
7.1.5 ChannelListenerBase类型 185
7.1.6 ChannelListenerBase<TChannel>类型 186
7.1.7 创建自定义通道侦听器 186
7.3 发送者:通道工厂 190
7.3.1 IChannelFactory接口 190
7.3.2 IChannelFactory<TChannel>接口 191
7.3.3 ChannelFactoryBase类型 191
7.3.4 ChannelFactoryBase<TChannel>类型 192
7.2.4 创建自定义通道工厂 193
7.4 本章小结 195
第Ⅲ部分 WCF服务模型层 197
第8章 绑定 199
8.1 绑定对象模型 200
8.1.1 Binding的构造函数 201
8.1.2 Binding的Test方法 202
8.1.3 Binding工厂方法 202
8.1.4 GetProperty<T>方法 204
8.1.5 MessageVersion属性 204
8.1.6 Scheme属性 205
8.1.7 CreateBindingElements方法 205
8.2 BindingElement类型 207
8.2.1 Binding Element的构造函数和Clone方法 209
8.2.2 BindingElement的测试方法 210
8.2.3 BindingElement的查询机制 212
8.2.4 BindingElement工厂方法 212
8.3 TransportBindingElement类型 214
8.4 BindingContext类型 215
8.4.1 BindingContext工厂方法 216
8.5 使用绑定 217
8.6 创建自定义绑定 222
8.7 本章小结 228
第9章 契约 229
9.1 契约的定义 229
9.2 WCF契约剖析 230
9.2.1 服务契约 231
9.2.2 操作契约 233
9.2.3 操作契约参数 236
9.2.4 服务契约到服务对象 237
9.2.5 数据契约 238
9.2.6 消息契约 240
9.2.7 操作兼容性 241
9.2.8 我对契约的看法 242
9.3 从契约定义到契约对象 244
9.4 本章小结 246
第10章 分发器和客户端 247
10.1 问自己的问题 248
10.2 分发器 250
10.2.1 ChannelDispatcher剖析 251
10.2.2 EndpointDispatcher剖析 254
10.2.3 DispatchRuntime类型 255
10.2.4 DispatchOperation类型 257
10.2.5 ServiceHost类型 258
10.3 客户端 258
10.4 本章小结 260
索引 261
· · · · · · (
收起)