书籍详情
WCF 4高级编程
作者:(美)西布拉奥,克莱斯,科佐利诺,格拉布纳 著,吴文国 译
出版社:清华大学出版社
出版时间:2011-10-01
ISBN:9787302266990
定价:¥58.00
购买这本书可以去
内容简介
本书讨论基于.NET 4.0架构的WCF(Windows CommunicationFoundation)J]艮务编程技术。WCF是.NET架构中的技术,用来创建面向服务的应用程序、交换不同通信方案中的消息,以及执行由服务操作生成的工作流。通过学习本书,读者将掌握面向服务的基本原理,学习通信模式和发现如何显式定义业务流程。读者还将学习如何使用这些技术的不同部分来实现上述功能,并清晰地理解WCF4的不同组件是如何相互支撑、协作,成为一个综合框架的,进而支持企业级分布式应用程序的各个方面。除了介绍WCF技术外,本书还采取了一种实用的讲法,介绍了3个案例(面向服务、通信和业务流程)并逐步实现了它们。本书将引导读者如何将WCF和VisualStudi0工具用于实际开发的各个方面。在构建WCF 4知识体系的过程中,读者将掌握如何有效地利用Visual Studi02010,以构建能够最大化利用WCF 4新增功能的解决方案。读者将学习如何创建应用程序(作为开发人员和架构师),如何把这些应用程序集成为WCF4中新的编程范式。读者将学习如何用建立在WCF技术和.NET服务之上的新架构模式创建一个解决方案,将学习如何解决在实现WCF4项目所需要的新编程范式和新结构风格的过程中遇到的实际问题。本书中介绍的实例决不是简单的“helloworld”示例,而是引导读者如何建立架构正确的解决方案,并向读者展示最佳的编程风格。 本书4位作者都具有丰富的实际开发经验。在日常的开发工作中他们都曾遇到过这些问题,并用最佳的指导和实践提出了切实可行的解决方法。他们把各自的实际经验融入到了本书中。
作者简介
暂缺《WCF 4高级编程》作者简介
目录
目 录
第1章 设计原理与设计模式 1
1.1 SOA简介 1
1.2 SOA架构的4条原则 3
1.2.1 边界显式定义 3
1.2.2 服务自动化 3
1.2.3 服务共享的是模式和契约,
而不是类 3
1.2.4 基于策略的服务兼容性 4
1.3 服务的内部结构 4
1.4 组织业务流程中的服务 7
1.5 SOA的底层技术 7
1.5.1 SOAP 8
1.5.2 WS -* Protocols 8
1.5.3 WSDL 8
1.6 契约优先原则 9
1.7 WCF和.NET服务如何
实现SOA模式 10
1.7.1 模式 10
1.7.2 解耦契约:接口与实现 10
1.7.3 代理模式 11
1.7.4 OperationContext模式 11
1.7.5 并发契约 11
1.7.6 数据保密性 12
1.7.7 Web服务原子事务 12
1.7.8 会话外观 12
1.7.9 异常保护 12
1.8 通信与集成模式 13
1.8.1 集成模式 14
1.8.2 消息交换模式 16
1.8.3 消息模式 22
1.9 业务流程模式 26
1.9.1 流程管理器 26
1.9.2 在工作流声明中的模式 28
第2章 服务契约与数据契约 31
2.1 服务契约 32
2.2 数据契约 32
2.3 消息契约 32
2.4 契约与代码 32
2.5 汽车租赁服务——实现示例 33
2.5.1 步骤1:定义服务契约 33
2.5.2 步骤2:提取服务元数据 34
2.3.3 步骤3:服务的实现 38
2.5.4 步骤4:生成客户端代码 39
2.5.5 [ServiceContract]和
[OperationContract]特性 40
2.6 数据契约 42
2.6.1 数据契约详解 47
2.6.2 KnownTypes特性 49
2.7 服务契约与数据契约的
版本控制 52
2.7.1 数据契约的版本控制 52
2.7.2 双向版本控制 54
2.7.3 服务契约版本控制的
最佳实践 56
2.7.4 数据契约版本控制的
最佳实践 56
2.8 消息契约 57第3章 绑定 63
3.1 绑定的工作原理 64
3.2 地址 66
3.3 行为 67
3.3.1 服务行为 67
3.3.2 操作行为 70
3.3.3 终结点行为 71
3.3.4 契约行为 74
3.4 绑定 75
3.4.1 basicHttpBinding和
wsHttpBinding 76
3.4.2 netTcpBinding 77
3.4.3 netMsmqBinding 77
3.4.4 基于上下文的绑定 77
3.4.5 如何选择要使用的绑定 78
3.5 配置绑定 79
3.5.1 基址 80
3.5.2 默认配置 82
3.5.3 设置多绑定 85
3.6 修改绑定 86
3.6.1 绑定的属性 86
3.6.2 创建自定义绑定 88
3.6.3 重用自定义绑定 90
3.7 持久双工服务 93
3.8 PollingDuplexHttpBinding绑定:
HTTP轮询 95
第4章 客户端 97
4.1 Basic Profile 1.1标准 98
4.2 .NET客户端 98
4.2.1 共享WSDL-契约 98
4.2.2 共享WSDL契约和数据
契约-DLL 101
4.2.3 共享接口和数据
契约-DLL 102
4.3 REST 104
4.3.1 REST与WCF 106
4.3.2 使用REST客户端 1124.3.3 使用REST Starter Kit
工具 113
4.4 AJAX与WCF的关系 114
4.5 WCF 4与Silverlight 118
第5章 实例化 121
5.1 实例上下文模式 122
5.1.1 PerlCall模式 122
5.1.2 Single模式 125
5.1.3 PerSession模式 127
5.2 服务的生命周期 131
5.3 性能 137
5.3.1 限流 137
5.3.2 最佳做法 144
5.3.3 负载均衡 144
第6章 工作流服务 147
6.1 剖析工作流服务 148
6.2 声明式服务 149
6.3 接收与发送活动 152
6.3.1 接收活动 152
6.3.2 发送活动 155
6.3.3 SendAndReceiveReply和
ReceiveAndSendReply
活动 157
6.4 实现工作流服务的第一个
示例 157
6.5 配置工作流服务 161
6.6 实现消息的关联 164
6.7 托管工作流服务 174
第7章 理解WCF安全 177
7.1 Web服务安全的历史演变 177
7.2 Web服务安全的基本原则 178
7.2.1 验证 178
7.2.2 授权 179
7.2.3 消息的完整性 179
7.2.4 消息的机密性 179
7.3 传输安全与消息安全 180
7.3.1 传输安全 180
7.3.2 消息安全 180
7.4 WCF安全概述 182
第8章 WCF安全实战 195
8.1 验证的起步 195
8.2 基于声明的身份验证模型 196
8.3 验证实战 199
8.3.1 建立在消息安全之上的
用户验证 199
8.3.2 建立在传输安全之上的
用户名验证 209
8.3.3 利用消息安全实现X509
证书的相互验证 213
8.3.4 建立在消息安全之上的
Kerberos验证 221
8.4 声明转换与安全上下文的
初始化 226
8.5 服务授权 228
8.5.1 基于角色的授权 228
8.5.2 基于声明的验证和验证
上下文 232
8.5.3 授权管理器 233
第9章 WCF联合验证 237
9.1 联合验证 237
9.1.1 STS服务简介 238
9.1.2 多域之间的联合验证 238
9.1.3 SAML语言 239
9.2 WIF架构 241
第10章 Windows Azure Platform
AppFabric 255
10.1 服务总线和访问控制简介 256
10.2 使用服务总线 259
10.3 中继服务 264
10.4 WCF中继绑定 265
10.4.1 netOneWayRelayBinding
绑定 266
10.4.2 netEventRelayBinding
绑定 268
10.4.3 netTcpRealyBinding
绑定 270
10.4.4 HTTP中继绑定 272
10.5 使用访问控制服务(ACS) 274
10.5.1 服务名称空间 275
10.5.2 作用域 276
10.5.3 发送者 276
10.5.4 规则 276
10.5.5 把第一个服务集成到
访问控制中 277
第11章 创建一个SOA案例 285
11.1 需求分析 285
11.2 建立解决方案 286
11.3 创建接口 288
11.3.1 创建CarManagement
接口 291
11.3.2 创建Customer接口 292
11.3.3 创建Rental接口 293
11.3.4 创建External接口 294
11.4 创建服务 296
11.5 创建宿主程序 298
11.6 创建数据库 306
11.7 实现服务 306
11.7.1 为CustomerService和
RentalService服务创建
数据库访问 307
11.7.2 创建CarManagement
服务 308
11.8 公开元数据 310
11.9 创建CarManagement
客户端 313
11.10 创建RentalApplication
应用程序 320
11.11 添加错误处理功能 325
11.12 模拟客户端 328
11.13 扩展CarManagement接口
以接受汽车子类 32811.14 实现ExternalInterface-
Facade 330
11.14.1 调用ExternalInterface-
Facade 331
11.14.2 给参与事务的方法设置
事务支持 333
11.14.3 为servicehost配置
额外的终结点 333
第12章 创建通信和集成案例 335
12.1 需求分析 335
12.2 建立解决方案 337
12.3 创建HQOrderEntryService-
Interface接口项目 338
12.4 创建HelperLib类库 340
12.5 创建HQOrderEntry-
Implementation项目 341
12.6 创建HQOrderEntryServiceHost
项目 342
12.7 创建OrderEntryApplication
项目 343
12.8 创建LocalOrderEntryInterface
接口项目 345
12.9 继续HQOrderEntry-
Implementation项目 346
12.10 创建HQProductServiceASMX
项目 348
12.10.1 创建Web服务 348
12.10.2 把HQProductService-
ASMX作为服务引用
添加到OrderEntryService-
Implementation项目中 349
12.10.3 为CheckIfOrderIsValid
方法编写代码 350
12.10.4 为TranslateProduct-
Description方法编写
代码 35112.10.5 为ConvertOrderEntry-
Schema方法编写
代码 351
12.11 创建HQLocalizationService
服务 352
12.12 为RouteOrderEntry方法
编写代码 354
12.13 创建RealTimeOrderTracking-
Application应用程序 355
12.13.1 为RealTimeOrder-
TrackingApplication
方法编写代码 355
12.13.2 添加IsubscribeToOrder-
TrackingInfo 接口 356
12.13.3 实现SubscribeService
方法 356
12.13.4 在订单处理时调用
订阅服务 357
12.13.5 打开SubscribeService
服务 358
12.13.6 订阅来自RealTimeOrder-
TrackingApplication的
事件 359
12.13.7 配置HQOrderEntry-
ServiceHost宿主 359
12.14 创建路由 360
12.15 配置HQOrderEntry-
ServiceHost宿主 362
第13章 创建业务流程 365
13.1 需求分析 365
13.2 建立解决方案 366
13.3 创建数据契约 367
13.4 创建CalculateReferenceID-
Service服务 369
13.5 创建ReceiveApprovedHoliday-
RequestsService项目 370
13.6 给HolidayRequestActivity-
Library项目添加服务引用 373
13.6.1 添加CalculateReferenceID-
Service项目 373
13.6.2 添加对ReceiveApproved-
HolidayRequestsService
服务的引用 374
13.6.3 开发HolidayRequestProcess
项目 375
13.6.4 添加工作流 375
13.6.5 创建变量 376
13.6.6 配置Receive活动 378
13.6.7 配置Send活动 379
13.6.8 配置ApproveRequest操作
的ReceiveAndSendReply
活动 383
13.7 开发HolidayRequest-
ProcessHost项目 388
13.8 测试这个服务宿主能否正确
公开元数据 389
13.9 开发ManagersHoliday-
RequestApprovalApplication
项目 391
13.10 创建SqlWorkflowInstance-
Store项目 391
第14章 托管服务 393
14.1 自托管 394
14.1.1 ServiceHost和ServiceHost-
Base 394
14.1.2 实现一个自定义的
ServiceHost 397
14.2 IIS托管 399
14.2.1 ServiceHostFactory与
ServiceHostFactoryBase 401
14.2.2 使用CustomService-
HostFactory类 401
14.2.3 不通过svc文件承载
服务 402
14.2.4 Windows激活服务 403
14.3 用Windows AppFabric管理
和跟踪终结点 406
14.3.1 建立Windows Server
AppFabric 407
14.3.2 使用AppFabric监视
服务 409
14.3.3 启动事件查看器 412
14.4 路由服务 413
14.4.1 基于内容的路由 413
14.4.2 协议和安全桥接 417
14.4.3 错误处理 418
14.5 云托管 419
14.5.1 在Windows Azure中
托管WCF服务 420
14.5.2 Windows Azure Platform
AppFabric服务总线 420
14.5.3 通过云中继服务 421
第1章 设计原理与设计模式 1
1.1 SOA简介 1
1.2 SOA架构的4条原则 3
1.2.1 边界显式定义 3
1.2.2 服务自动化 3
1.2.3 服务共享的是模式和契约,
而不是类 3
1.2.4 基于策略的服务兼容性 4
1.3 服务的内部结构 4
1.4 组织业务流程中的服务 7
1.5 SOA的底层技术 7
1.5.1 SOAP 8
1.5.2 WS -* Protocols 8
1.5.3 WSDL 8
1.6 契约优先原则 9
1.7 WCF和.NET服务如何
实现SOA模式 10
1.7.1 模式 10
1.7.2 解耦契约:接口与实现 10
1.7.3 代理模式 11
1.7.4 OperationContext模式 11
1.7.5 并发契约 11
1.7.6 数据保密性 12
1.7.7 Web服务原子事务 12
1.7.8 会话外观 12
1.7.9 异常保护 12
1.8 通信与集成模式 13
1.8.1 集成模式 14
1.8.2 消息交换模式 16
1.8.3 消息模式 22
1.9 业务流程模式 26
1.9.1 流程管理器 26
1.9.2 在工作流声明中的模式 28
第2章 服务契约与数据契约 31
2.1 服务契约 32
2.2 数据契约 32
2.3 消息契约 32
2.4 契约与代码 32
2.5 汽车租赁服务——实现示例 33
2.5.1 步骤1:定义服务契约 33
2.5.2 步骤2:提取服务元数据 34
2.3.3 步骤3:服务的实现 38
2.5.4 步骤4:生成客户端代码 39
2.5.5 [ServiceContract]和
[OperationContract]特性 40
2.6 数据契约 42
2.6.1 数据契约详解 47
2.6.2 KnownTypes特性 49
2.7 服务契约与数据契约的
版本控制 52
2.7.1 数据契约的版本控制 52
2.7.2 双向版本控制 54
2.7.3 服务契约版本控制的
最佳实践 56
2.7.4 数据契约版本控制的
最佳实践 56
2.8 消息契约 57第3章 绑定 63
3.1 绑定的工作原理 64
3.2 地址 66
3.3 行为 67
3.3.1 服务行为 67
3.3.2 操作行为 70
3.3.3 终结点行为 71
3.3.4 契约行为 74
3.4 绑定 75
3.4.1 basicHttpBinding和
wsHttpBinding 76
3.4.2 netTcpBinding 77
3.4.3 netMsmqBinding 77
3.4.4 基于上下文的绑定 77
3.4.5 如何选择要使用的绑定 78
3.5 配置绑定 79
3.5.1 基址 80
3.5.2 默认配置 82
3.5.3 设置多绑定 85
3.6 修改绑定 86
3.6.1 绑定的属性 86
3.6.2 创建自定义绑定 88
3.6.3 重用自定义绑定 90
3.7 持久双工服务 93
3.8 PollingDuplexHttpBinding绑定:
HTTP轮询 95
第4章 客户端 97
4.1 Basic Profile 1.1标准 98
4.2 .NET客户端 98
4.2.1 共享WSDL-契约 98
4.2.2 共享WSDL契约和数据
契约-DLL 101
4.2.3 共享接口和数据
契约-DLL 102
4.3 REST 104
4.3.1 REST与WCF 106
4.3.2 使用REST客户端 1124.3.3 使用REST Starter Kit
工具 113
4.4 AJAX与WCF的关系 114
4.5 WCF 4与Silverlight 118
第5章 实例化 121
5.1 实例上下文模式 122
5.1.1 PerlCall模式 122
5.1.2 Single模式 125
5.1.3 PerSession模式 127
5.2 服务的生命周期 131
5.3 性能 137
5.3.1 限流 137
5.3.2 最佳做法 144
5.3.3 负载均衡 144
第6章 工作流服务 147
6.1 剖析工作流服务 148
6.2 声明式服务 149
6.3 接收与发送活动 152
6.3.1 接收活动 152
6.3.2 发送活动 155
6.3.3 SendAndReceiveReply和
ReceiveAndSendReply
活动 157
6.4 实现工作流服务的第一个
示例 157
6.5 配置工作流服务 161
6.6 实现消息的关联 164
6.7 托管工作流服务 174
第7章 理解WCF安全 177
7.1 Web服务安全的历史演变 177
7.2 Web服务安全的基本原则 178
7.2.1 验证 178
7.2.2 授权 179
7.2.3 消息的完整性 179
7.2.4 消息的机密性 179
7.3 传输安全与消息安全 180
7.3.1 传输安全 180
7.3.2 消息安全 180
7.4 WCF安全概述 182
第8章 WCF安全实战 195
8.1 验证的起步 195
8.2 基于声明的身份验证模型 196
8.3 验证实战 199
8.3.1 建立在消息安全之上的
用户验证 199
8.3.2 建立在传输安全之上的
用户名验证 209
8.3.3 利用消息安全实现X509
证书的相互验证 213
8.3.4 建立在消息安全之上的
Kerberos验证 221
8.4 声明转换与安全上下文的
初始化 226
8.5 服务授权 228
8.5.1 基于角色的授权 228
8.5.2 基于声明的验证和验证
上下文 232
8.5.3 授权管理器 233
第9章 WCF联合验证 237
9.1 联合验证 237
9.1.1 STS服务简介 238
9.1.2 多域之间的联合验证 238
9.1.3 SAML语言 239
9.2 WIF架构 241
第10章 Windows Azure Platform
AppFabric 255
10.1 服务总线和访问控制简介 256
10.2 使用服务总线 259
10.3 中继服务 264
10.4 WCF中继绑定 265
10.4.1 netOneWayRelayBinding
绑定 266
10.4.2 netEventRelayBinding
绑定 268
10.4.3 netTcpRealyBinding
绑定 270
10.4.4 HTTP中继绑定 272
10.5 使用访问控制服务(ACS) 274
10.5.1 服务名称空间 275
10.5.2 作用域 276
10.5.3 发送者 276
10.5.4 规则 276
10.5.5 把第一个服务集成到
访问控制中 277
第11章 创建一个SOA案例 285
11.1 需求分析 285
11.2 建立解决方案 286
11.3 创建接口 288
11.3.1 创建CarManagement
接口 291
11.3.2 创建Customer接口 292
11.3.3 创建Rental接口 293
11.3.4 创建External接口 294
11.4 创建服务 296
11.5 创建宿主程序 298
11.6 创建数据库 306
11.7 实现服务 306
11.7.1 为CustomerService和
RentalService服务创建
数据库访问 307
11.7.2 创建CarManagement
服务 308
11.8 公开元数据 310
11.9 创建CarManagement
客户端 313
11.10 创建RentalApplication
应用程序 320
11.11 添加错误处理功能 325
11.12 模拟客户端 328
11.13 扩展CarManagement接口
以接受汽车子类 32811.14 实现ExternalInterface-
Facade 330
11.14.1 调用ExternalInterface-
Facade 331
11.14.2 给参与事务的方法设置
事务支持 333
11.14.3 为servicehost配置
额外的终结点 333
第12章 创建通信和集成案例 335
12.1 需求分析 335
12.2 建立解决方案 337
12.3 创建HQOrderEntryService-
Interface接口项目 338
12.4 创建HelperLib类库 340
12.5 创建HQOrderEntry-
Implementation项目 341
12.6 创建HQOrderEntryServiceHost
项目 342
12.7 创建OrderEntryApplication
项目 343
12.8 创建LocalOrderEntryInterface
接口项目 345
12.9 继续HQOrderEntry-
Implementation项目 346
12.10 创建HQProductServiceASMX
项目 348
12.10.1 创建Web服务 348
12.10.2 把HQProductService-
ASMX作为服务引用
添加到OrderEntryService-
Implementation项目中 349
12.10.3 为CheckIfOrderIsValid
方法编写代码 350
12.10.4 为TranslateProduct-
Description方法编写
代码 35112.10.5 为ConvertOrderEntry-
Schema方法编写
代码 351
12.11 创建HQLocalizationService
服务 352
12.12 为RouteOrderEntry方法
编写代码 354
12.13 创建RealTimeOrderTracking-
Application应用程序 355
12.13.1 为RealTimeOrder-
TrackingApplication
方法编写代码 355
12.13.2 添加IsubscribeToOrder-
TrackingInfo 接口 356
12.13.3 实现SubscribeService
方法 356
12.13.4 在订单处理时调用
订阅服务 357
12.13.5 打开SubscribeService
服务 358
12.13.6 订阅来自RealTimeOrder-
TrackingApplication的
事件 359
12.13.7 配置HQOrderEntry-
ServiceHost宿主 359
12.14 创建路由 360
12.15 配置HQOrderEntry-
ServiceHost宿主 362
第13章 创建业务流程 365
13.1 需求分析 365
13.2 建立解决方案 366
13.3 创建数据契约 367
13.4 创建CalculateReferenceID-
Service服务 369
13.5 创建ReceiveApprovedHoliday-
RequestsService项目 370
13.6 给HolidayRequestActivity-
Library项目添加服务引用 373
13.6.1 添加CalculateReferenceID-
Service项目 373
13.6.2 添加对ReceiveApproved-
HolidayRequestsService
服务的引用 374
13.6.3 开发HolidayRequestProcess
项目 375
13.6.4 添加工作流 375
13.6.5 创建变量 376
13.6.6 配置Receive活动 378
13.6.7 配置Send活动 379
13.6.8 配置ApproveRequest操作
的ReceiveAndSendReply
活动 383
13.7 开发HolidayRequest-
ProcessHost项目 388
13.8 测试这个服务宿主能否正确
公开元数据 389
13.9 开发ManagersHoliday-
RequestApprovalApplication
项目 391
13.10 创建SqlWorkflowInstance-
Store项目 391
第14章 托管服务 393
14.1 自托管 394
14.1.1 ServiceHost和ServiceHost-
Base 394
14.1.2 实现一个自定义的
ServiceHost 397
14.2 IIS托管 399
14.2.1 ServiceHostFactory与
ServiceHostFactoryBase 401
14.2.2 使用CustomService-
HostFactory类 401
14.2.3 不通过svc文件承载
服务 402
14.2.4 Windows激活服务 403
14.3 用Windows AppFabric管理
和跟踪终结点 406
14.3.1 建立Windows Server
AppFabric 407
14.3.2 使用AppFabric监视
服务 409
14.3.3 启动事件查看器 412
14.4 路由服务 413
14.4.1 基于内容的路由 413
14.4.2 协议和安全桥接 417
14.4.3 错误处理 418
14.5 云托管 419
14.5.1 在Windows Azure中
托管WCF服务 420
14.5.2 Windows Azure Platform
AppFabric服务总线 420
14.5.3 通过云中继服务 421
猜您喜欢