WCF 4高级编程

当前位置:首页 > 计算机网络 > 计算机体系结构 > WCF 4高级编程

出版社:清华大学出版社
出版日期:2011-10
ISBN:9787302266990
作者:[美]Pablo Cibraro,Kurt Claeys,Fabio Cozzolino
页数:423页

章节摘录

版权页:   插图:   在这个架构中,读者可以看到是由代理把消息插入到通道中。在通道中,消息在传递给服务之前,要经过其他层,如协议层和编码层等。在服务端,消息由一个相应的通道栈接收,接收后把消息通过相应的层向上传递,经过编码层、协议层,再由分配器接收,分配器对消息进行分析,然后确定要调用哪个方法。 2.内容富集器 内容富集器是运行在功能层的一个模式。当应用程序发送数据,而数据并不包含接收者所需要的全部信息时,便需要一个内容富集器。 信息缺失的原因可能是历史因素——可能是在设计的时候还不需要这些信息作为消息的一部分,因为这些信息总是出现在数据库中。但是在分布式环境中,并非所有服务都可以访问数据库。在发送者与接收者之间,另一个服务需要读取这个消息,对它进行分析,并添加必要的信息。对这个额外信息的查询可以通过查询数据库、执行业务规则或直接使用硬编码来实现。 富集数据可以说是一个服务操作的执行过程。富集内容意味着数据契约的动态变化。这种富集数据的行为会导致给数据契约增加额外的属性,并赋给这个新增的属性某些值,然后把修改后的数据契约发送给其他服务。 用通用方法执行这个操作,意味着WCF需要采用一种方式,来接收还没有在操作签名中定义数据契约的消息,并用代码未知的数据契约发送此消息。大多数时候,富集器只是一些通用函数,它们以通用格式(XML)接收数据,改变格式后再把这个数据发送给其他服务。 WCF支持使用消息类接收无类型数据。使用函数接收消息类的一个参数,并用一个消息响应这个调用。女口果是一个单向无返回值的方法,则不发送任何响应消息。消息类是一类包罗万象的数据契约。在一个以消息类为输入参数的方法中,每一个还没有映射到另一个操作的消息都可以接收。因此建立通用型的内容富集器可以通过创建一个如下这样的服务来实现:此服务中有一个使用消息参数的操作。 当然,这样的代码不能直接访问这个数据契约,因为它并不知道数据契约的细节。但是这样的代码可以读取XML数据,可以修改数据内容,还可以在需要时添加XML结点。 3.消息路由 在许多情况下,消息的发送者并不知道消息最终要发送到哪里,客户端也不知道消息的实际接收者,因此需要一个路由方法来决定终结点的实际地址。在路由过程中,可以执行不同类型的处理。 这个决定要受消息内容和一组事务规则的影响,或者实际的终结点本来就只是一个硬编码的字符串。所有这些情况,基本思想都是用一种灵活的方式解除发送者与接收者之间的耦合关系。

内容概要

作者:(美国)西布拉奥(Pablo Cibraro) (美国)克莱斯(Krut Claeys) (美国)科佐利诺(Fabio Cozzolino) (美国)格拉布纳(Johann Grabner) 译者:吴文国  西布拉奥(Cibraro P.),是一位企业架构师、Tellago地区的CTO。 克莱斯(Claeys K.),是.NET企业级应用程序架构师和培训师,热衷于用WCF实现集成,拥有MCT、MCSD认证。 科佐利诺(Cozzolino F.),是FimeSan公司的软件架构师、分析师和开发人员。 格拉布纳(Grabner J.)是微软Learning Partners项目的自由培训师。

书籍目录

目    录
第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客户端
112
4.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接口
以接受汽车子类
328
11.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方法编写
代码
351
12.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

编辑推荐

《WCF 4高级编程》共14章节,内容包括设计原理与设计模式、服务契约与数据契约、绑定、客户端等。《WCF 4高级编程》专门针对中级.NET开发人员和解决方案架构师。他们对用WCF4创建面向服务的应用程序、实现可靠的通信、宿主业务流程、在云计算中实现安全及可扩展的集成应用比较感兴趣。

作者简介

本书由微软MVP团队编写,可使读者对WCF 4中各种组件是如何相互支撑、进而提供一个完整的企业级分布式应用程序开发框架,有一个清晰而全面的理解。本书详细介绍了WCF 4的各种技术,并通过3个案例介绍这些技术的应用。读者将发现,利用Visual Studio 2010 和 Microsoft Azure PlatformAppFabric可以大幅提升开发效率,并且可以最大地发挥WCF 4的功能。

图书封面


 WCF 4高级编程下载 更多精彩书评



发布书评

 
 


精彩书评 (总计2条)

  •     讲的有些地方还是不够通俗,不知道是表达方式问题还是什么,例子之间不够连贯,不容易形成容易记忆的知识网。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
  •     如题,在wrox网站上下载的代码里(前一二章)也没有完整的可运行的例子。下载来的前一二章的代码都是代码片段。书应该是给中级WCF开发人员看的,而不仅仅是中级.net开发人员。书里遇到一个知识点,就钻下去讲很多讲很全,而不是先构成一个可运行的例子。事实上,在前言部分就讲了,要在第11章才开始构建一个完整的解决方案。对于想要快速实践的读者可能不是个好选择。

精彩短评 (总计15条)

  •     可能是因为之前没有学习过,对于新手来说确实不是很好理解。不建议新手学习。
  •     经典的好书,值得学习
  •     这本书质量还可以,就是感觉前面几章理论偏多,后面的还没看
  •     不错,活动的时候买的,很给力
  •     不知道为什么,每次在这买的书的质量都很次,不是这破就是那破的,这次居然还有鞋印,请问你们都是用脚工作的嘛?这本书的纸张真的很次,发黄,对眼睛是种严重的考验
  •     这本书是迄今为止我手上质量最差的红皮书,如果不是从亚马逊物流员工手机接货,我都怀疑他是盗版书。纸张严重发黄,可明显看见斑点,有的页面还有浆糊印。明显不如以前红皮书的质量。
  •     神马情况 刚买回来三天就开始降价 内容还可以 前边几章的理论知识比较深入 后边几章的例子就很简单了
  •     内容很详细,作为工具书不错
  •     有明显折痕 搞飞机的哇
  •     书的质量还可以,发货速度很快,此书很全面,不过此一些细节点不够细,还需上网另找资料。总体还是好评
  •     对WCF有了些了解.需求已经成为过去式,可能很久都不会再看这本书了吧.阿门.应该再翻看一下,记一下WCF都有哪些内容.
  •     工具书,可以一读。
  •     从第11章开始看
  •     快递的送货速度很快,但是书拿到手的时候书脊的胶就压裂了。这是我第二次在卓越买到压坏的书了。希望卓越可以提高对书籍的储藏和运送的保护
  •     很经典的wcf书籍,值得看看
 

外国儿童文学,篆刻,百科,生物科学,科普,初中通用,育儿亲子,美容护肤PDF图书下载,。 零度图书网 

零度图书网 @ 2024