wcf是在微软windows下开发面向服务应用程序(soa)的统一平台,而本书则是介绍该项技术的权威指南和畅销书籍。本书被誉为wcf的最佳开发指南,提供了深入的技术剖析,而非死板的文档化描述,以帮助开发者掌握wcf的必备知识与技能,并构建可维护的、可扩展的以及可重用的wcf应用程序。
作为微软授予的“软件英杰”,本书作者juval lowy参与了wcf最初的战略性设计的评审,以及对c# 3.0与.net 3.5 sp1框架最新功能的修订工作。本书还包含了lowy编写的servicemodelex框架,它提供了大量有用的工具、辅助类和实用程序,可以帮助开发者简化与自动化任务,并对wcf进行了有效的扩充。通过本书,你可以:..
·了解wcf体系架构与必要的构建模块,包括诸如可靠性和传输会话之类的关键概念。
·使用诸如服务托管、实例和并发管理、事务、离线队列服务和安全等内建特性。
·借鉴servicemodelex框架中的相关设计方案、技巧和最佳实践,提高wcf服务开发的效率与质量。
·深入了解隐藏在设计决策背后的基本原理,对于soa开发中缺乏文档而又晦涩难懂的功能特性进行了深度分析。
对于wcf编程,我们不仅要知其然,更要知其所以然。本书正是基于这样的目的,它不仅能够帮助你掌握wcf,还能够让你成为一位优秀的软件工程师。
序1 . 1
序2 2
前言 4
第1章 wcf基础 12
什么是wcf 12
服务 13
地址 15
tcp地址 16
http地址 16
ipc地址 17
msmq地址 17
对等网地址 17
契约 18
托管 22
iis 5/6托管 22
自托管 23
was托管 29
在iis/was中的自定义宿主 29
绑定 30
常用绑定 31
.格式与编码 32
选择绑定 33
附加绑定 34
使用绑定 35
终结点 35
管理方式配置终结点 36
编程方式配置终结点 39
元数据交换 40
管理方式启用元数据交换 41
编程方式启用元数据交换 42
元数据交换终结点 44
元数据浏览器 48
客户端编程 50
生成代理 50
管理方式配置客户端 55
编程方式配置客户端 60
为wcf提供的测试客户端 61
编程方式配置与管理方式配置 64
wcf体系架构 64
使用通道 66
传输层会话 71
传输会话与绑定 71
传输会话的终止 71
可靠性 73
绑定、可靠性以及有序消息 73
配置可靠性 74
必备有序传递 75
第2章 服务契约 78
操作重载 78
契约的继承 80
服务契约的分解与设计 85
契约分解 85
分解准则 87
契约查询 89
编程处理元数据 89
metadatahelper类 92
第3章 数据契约 97
序列化 97
.net序列化 99
wcf格式器 101
序列化数据契约 103
数据契约特性 104
导入数据契约 106
数据契约与serializable特性 110
数据契约推断 112
合成的数据契约 113
数据契约事件 114
共享数据契约 117
数据契约层级 117
已知类型 118
服务已知类型 120
多个已知类型 122
配置已知类型 123
object与接口 123
数据契约等效性 126
序列化顺序 127
版本控制 129
新增成员 129
缺失成员 130
版本控制的双向传递 134
枚举 137
委托与数据契约 138
数据集与数据表 139
使用数组,而不是数据表 141
使用linq to sql 144
泛型 146
集合 149
具体集合类型 150
自定义集合 152
collectiondatacontract特性 152
引用集合 154
字典集合 154
第4章 实例管理 157
行为 157
单调服务 158
单调服务的优势 159
配置单调服务 160
单调服务与传输会话 161
设计单调服务 161
选择单调服务 164
会话服务 164
配置私有会话 165
会话与可靠性 169
会话id 171
会话终止 172
单例服务 172
初始化单例服务 174
选择单例服务 176
分步操作 177
实例停用 180
配置为releaseinstancemode.none 182
配置为releaseinstancemode.beforecall 182
配置为releaseinstancemode.aftercall 183
配置为releaseinstancemode.beforeandaftercall 183
显式停止 184
使用实例停止 185
持久服务 185
持久服务和实例管理模式 186
实例id与持久存储器 186
显式的实例id 188
在消息头中的实例id 189
为实例id提供的上下文绑定 192
自动持久行为 197
限流 203
配置限流 206
绑定中的限流连接 211
第5章 操作 212
请求-应答操作 212
单向操作 213
配置单向操作 213
单向操作与可靠性 214
单向操作与会话服务 214
单向操作与异常 215
回调操作 216
回调契约 217
客户端回调设置 218
服务端回调调用 222
回调连接管理 225
双向代理与类型安全 227
双向通道工厂 230
回调契约层级 232
回调、端口与通道 234
事件 238
流操作 241
i/o流 242
流操作与绑定 242
流操作与传输 243
流操作的管理 244
第6章 错误 245
错误隔离与解耦 245
错误屏蔽 246
通道故障 246
错误传播 250
错误契约 252
调试错误 255
错误与回调.. 261
错误处理扩展 265
提供错误 266
处理错误 269
安装错误处理扩展 271
宿主与错误扩展 274
回调与错误扩展 278
第7章 事务 281
恢复的挑战 281
事务 282
事务型资源 283
事务属性 283
事务管理 284
wcf资源管理器 288
事务传播 288
事务流与绑定 288
事务流与操作契约 289
单向调用 291
事务协议和管理器 292
协议与绑定 292
事务管理器 294
事务管理器的提升 296
事务类 297
环境事务 298
本地事务与分布式事务 298
事务型服务编程 299
设置环境事务 299
事务传播模式 301
投票与完成 309
事务隔离性 313
事务超时 314
显式事务编程 316
transactionscope类 316
事务流管理 318
非服务型客户端 325
服务状态管理 327
实例管理与事务 328
单调事务型服务 329
会话事务型服务 332
事务型持久服务 346
事务型行为 349
事务型单例服务 354
实例模式与事务 358
回调 359
回调事务模式 359
回调投票 361
使用事务型回调 361
第8章 并发管理 365
实例管理与并发 365
服务并发模式 366
concurrencymode.single 366
concurrencymode.multiple 367
concurrencymode.reentrant 371
实例与并发访问 373
单调服务 373
会话服务与单例服务 374
资源与服务 375
访问死锁 375
避免死锁 376
资源同步上下文 377
.net同步上下文 377
ui同步上下文 380
服务同步上下文 385
在ui线程上托管服务 386
将窗体定义为一个服务 391
ui线程与并发管理 394
定制服务同步上下文 396
线程池同步器 396
线程关联度 402
优先级处理 404
回调与客户端安全 407
concurrencymode.single回调 408
concurrencymode.multiple回调 409
concurrencymode.reentrant回调 409
回调与同步上下文 410
回调与ui同步上下文 410
回调定制同步上下文 414
异步调用 417
异步机制的必备条件 418
基于代理的异步调用 419
异步调用 420
轮询或等待完成 423
完成回调 425
单向异步操作 430
异步错误处理 431
异步调用与事务 432
同步调用与异步调用 432
第9章 队列服务 434
离线服务与客户端 434
队列调用 435
队列调用架构 436
队列契约 436
配置与安装 437
事务 444
传递及回放 444
服务事务配置 446
非事务型队列 449
实例管理 450
单调队列服务 450
会话型队列服务 452
单例服务 456
并发管理 457
传递故障 458
死信队列 459
存活时间 460
配置死信队列 461
处理死信队列 462
回放失败 466
有害消息 467
msmq 4.0中对有害消息的处理 467
在msmq 3.0上的有害消息处理 471
队列调用与联机调用 471
要求使用队列 473
响应服务 474
设计一个响应服务契约 475
客户端编程 479
队列服务端编程 481
响应服务端编程 484
事务 485
http桥 488
设计http桥 488
事务配置 489
服务端配置 490
客户端配置 492
第10章 安全 494
身份验证 494
授权 495
传输安全 496
传输安全模式 496
传输安全模式的配置 498
transport security模式与凭证 501
message security模式与凭证 502
身份管理 502
总体策略 503
场景驱动方式 503
局域网应用程序场景 504
保证局域网绑定的安全 504
强制消息保护 512
身份验证 513
身份 515
安全调用上下文 516
模拟 518
授权 525
身份管理 531
回调 532
互联网应用程序场景 533
保证互联网绑定的安全 534
消息保护 538
身份验证 542
使用windows凭证 544
使用asp.net provider 545
身份管理 554
回调 554
b2b应用程序场景 555
确保b2b绑定的安全 555
身份验证 556
授权 558
身份管理 560
回调 560
宿主的安全配置 561
匿名应用程序场景 561
确保匿名绑定的安全 561
身份验证 562
授权 562
身份管理 562
回调 563
无安全场景 563
不保证绑定的安全 563
身份验证 564
授权 564
身份管理 564
回调 564
场景总结 565
声明式安全框架 565
securitybehaviorattribute特性 566
宿主端的声明式安全 573
客户端声明式安全 575
安全审核 582
配置安全审核 583
声明式安全审核 585
附录a 面向服务概述 587
附录b 消息头和上下文 600
附录c 发布-订阅服务 622
附录d 代码访问安全 640
附录e 通用拦截器 667
附录f wcf编码规范 682
附录g servicemodelex分类... 692