WCF核心技术

WCF核心技术
作 者: 雷斯尼克 克兰 鲍恩 鲁成东 戚文敏
出版社: 人民邮电出版社
丛编项:
版权说明: 本书为出版图书,暂不支持在线阅读,请支持正版图书
标 签: 程序设计
ISBN 出版时间 包装 开本 页数 字数
未知 暂无 暂无 未知 0 暂无

作者简介

  Steve Resnick从20世纪90年代中期开始就在微软公司工作,担任过从架构师到开发人员以及所在领域中的推广专家等职务。他的专长是因特网技术,精于设计构架高容量高价值的Web应用。Steve是美国微软技术中心的国家级技术总监,他负责制定技术策略与方向,指引其团队满足最棘手的客户要求。他开始使用.NET的时间可以上溯至其刚出现时,他是Web服务、BizTalk、事务处理以及相关技术方面的专家。他在Delaware大学和波士顿大学分别获得了计算机学士与硕士学位。Rich Crane是一名技术架构师,在位于马萨诸塞州沃尔瑟姆的微软技术中心工作。Rich是拥有超过18年工作经验的软件架构师和工程师,最近6年来一直致力于帮助客户在微软平台上设计和构建解决方案。他曾使用无数微软产品和技术工作过,他是BizTaik、SQL Server、SharePoint、集群计算服务器以及Visual Studio和.NET框架方面的专家,曾多次在诸如TechEd和Code Camp的会议与集会上发表演讲。他以最优等的成绩毕业于Drexel大学,获得了电子与计算机工程专业学士学位。Chris Bowen是微软公司美国东北区域的开发推广专家,专长于开发工具、平台以及最佳架构实践。Chris拥有15年的软件架构师和工程师工作经验,他在加入微软公司以前曾在Monster.corn、VistaPrint、Staples和IDX Systems等公司任高级职位,从事网站及电子商务项目的咨询工作。他是Professional Visual Studio 2005 Team System(WROX,2006)一书的作者之一。他在Worcester工学院获得了管理信息系统专业学士学位以及计算机科学硕士学位。

内容简介

《WCF核心技术》全面系统地介绍了如何使用WCF进行Web Service编程。对于与Web Service相关的领域,包括最简单的SOAP-HTTP绑定、各种高级WS-*扩展协议,以及各种数据编码、消息交换模式,书中都给出了用WCF实现的方法和例子。《WCF核心技术》还介绍了通过WCF用各种方式来扩展原类的Web Service服务,使用各种不同的绑定方式在不同的网络环境甚至本机上部署服务等内容。另外,专门讲述了问题诊断与异常处理,还涉及了与微软工作流(WF)和热门技术AJAX的集成。《WCF核心技术》示例丰富,讲解透彻清晰,主要面向微软平台上的开发者。对于已有C#基础的WCF初学者或具有一定经验的WCF开发者,《WCF核心技术》也大有裨益。另外,对于正在使用其他技术(如Java)而希望进入WCF领域,或者想对其有所了解的Web Service技术人员,《WCF核心技术》也是适用的参考资料。

图书目录

第1章 基础 1

1.1 为何选择WCF 1

1.2 简介 2

1.3 实现WCF服务 5

1.3.1 服务的ABC 5

1.3.2 完全用代码编写WCF服务 5

1.3.3 使用代码和配置文件编写服务 7

1.3.4 再谈配置文件 9

1.3.5 再谈服务托管 10

1.3.6 暴露元数据交换端点 11

1.4 实现WCF服务的客户端 14

1.4.1 完全用代码编写WCF客户端 14

1.4.2 使用代码和配置编写WCF客户端 15

1.5 在IIS中托管服务 18

1.5.1 讨论 19

1.5.2 3步完成IIS中的服务托管 19

1.6 实现ASMX服务的WCF客户端 22

1.6.1 支持工具 22

1.6.2 生成客户端代理类和配置文件 23

1.7 小结 26

第2章 契约 28

2.1 服务契约 30

2.1.1 同步请求-响应操作 31

2.1.2 异步请求-响应操作 34

2.1.3 单向操作 36

2.1.4 双工操作 37

2.1.5 单个服务中的多契约与多端点 44

2.1.6 在WSDL中如何命名操作、类型、行为及命名空间 47

2.2 数据契约 49

2.2.1 为.NET类定义XML Schema 51

2.2.2 定义类的层次结构 53

2.2.3 用KnownType属性在WSDL中发布其他数据类型 55

2.2.4 数据契约的版本控制 60

2.2.5 数据契约等价性 62

2.2.6 使用容器 63

2.3 消息契约 64

2.3.1 有类型消息 65

2.3.2 无类型消息 68

2.3.3 使用无类型消息的SOAP消息头 70

2.4 小结 72

第3章 信道 74

3.1 信道范型 76

3.1.1 单向通信模式 76

3.1.2 双工通信 77

3.1.3 请求-响应通信 78

3.1.4 范型变换 80

3.2 操作契约与信道范型 80

3.3 信道监听器 81

3.4 信道工厂 83

3.5 ICommunicationObject 86

3.6 小结 89

第4章 绑定 90

4.1 选择合适的绑定 93

4.2 .NET应用程序间的跨机通信 99

4.3 .NET应用程序间的本机通信 102

4.4 使用基本的Web Service进行通信 104

4.5 使用高级Web Service进行通信 107

4.5.1 wsHttpBinding 108

4.5.2 ws2007HttpBinding 110

4.5.3 wsDualHttpBinding 112

4.6 绑定的性能与可伸缩性的比较 119

4.7 使用队列服务进行通信 121

4.7.1 netMsmqBinding 122

4.7.2 msmqIntegrationBinding 130

4.8 创建定制化绑定 132

4.9 绑定元素 135

4.9.1 传输机制 135

4.9.2 编码器 136

4.9.3 安全 137

4.9.4 传输机制的增强/助力 137

4.9.5 范型变换 138

4.9.6 其他协议 138

4.10 通过多种绑定发布服务契约 139

4.11 小结 140

第5章 行为 141

5.1 并发与实例化(服务行为) 143

5.1.1 默认的并发、实例化设置与无会话的绑定 144

5.1.2 单实例使用多线程 146

5.1.3 实现单例 147

5.1.4 会话级实例 149

5.1.5 控制并发实例的数量 151

5.1.6 控制并发调用的数量 155

5.1.7 控制并发会话的数量 157

5.2 导出和发布元数据(服务行为) 159

5.3 实现事务(操作行为) 162

5.3.1 服务中的事务化操作 163

5.3.2 在操作之间的流转事务 168

5.3.3 选择事务协议——OleTx或WS-AT 173

5.3.4 事务服务行为 174

5.4 实现自定义行为 176

5.4.1 为服务端点行为实现消息检验器 178

5.4.2 作为属性暴露服务操作行为的参数检验器 180

5.4.3 通过配置文件暴露服务行为 183

5.5 行为安全 187

5.6 小结 187

第6章 序列化与编码 189

6.1 序列化vs编码 189

6.2 比较WCF中可以选择的序列化方式 190

6.2.1 DataContractSerializer 191

6.2.2 NetDataContractSerializer 194

6.2.3 XmlSerializer 195

6.2.4 DataContractJsonSerializer 198

6.2.5 选择序列化器 199

6.3 保留引用与循环引用 200

6.4 用NetDataContractSerializer共享类型 205

6.5 用IExtensibleDataObject进行往返式序列化 209

6.6 用替身对类型进行序列化 214

6.7 为大型数据使用流模式 220

6.8 用XmlSerializer定制序列化 221

6.8.1 用属性定制XML序列化 222

6.8.2 用IXmlSerializable定制XML序列化 223

6.9 选择编码 225

6.9.1 文本编码vs二进制编码 225

6.9.2 通过MTOM编码发送二进制数据 227

6.9.3 了解WebMessageEncoder 228

6.10 小结 228

第7章 托管 230

7.1 在Windows Process Activation Services中托管服务 231

7.2 在IIS 7中托管服务 233

7.3 在IIS托管的服务中启用ASMX特性 235

7.4 自托管 240

7.5 在Managed Windows服务中进行自托管 241

7.6 在单进程中托管多个服务 244

7.7 定义服务和端点定制 247

7.8 小结 249

第8章 安全 251

8.1 WCF安全概念 251

8.1.1 认证 251

8.1.2 授权 252

8.1.3 机密性 252

8.1.4 完整性 252

8.1.5 传输和消息安全 252

8.2 基于证书加密 253

8.2.1 概念 254

8.2.2 设置 254

8.3 传输级安全 256

8.3.1 用SSL加密 256

8.3.2 客户端认证 259

8.3.3 服务的身份 264

8.4 消息级安全 266

8.5 用Windows内置安全机制加强服务安全 271

8.5.1 本节例子简介 271

8.5.2 用Windows证件认证用户 273

8.5.3 使用Windows证件为用户授权 276

8.5.4 用AzMan做授权 278

8.5.5 扮演用户 282

8.6 加强互联网服务的安全 286

8.6.1 ASP.NET集成 287

8.6.2 用成员资格供应器进行认证 288

8.6.3 用角色供应器进行基于角色的授权 291

8.6.4 使用表单认证 293

8.7 日志与审计 297

8.8 小结 299

第9章 诊断 300

9.1 WCF应用程序范例 300

9.2 追踪 301

9.2.1 端对端追踪 301

9.2.2 活动和相关性 302

9.2.3 启用追踪 303

9.2.4 详细程度方面的建议 304

9.3 消息日志 304

9.4 额外的配置选项 306

9.4.1 共享监听器 306

9.4.2 消息过滤器 307

9.4.3 踪迹源自动刷新 308

9.4.4 性能计数器 308

9.4.5 Windows Management Instrumentation 309

9.5 使用服务配置编辑器 309

9.5.1 追踪选项 310

9.5.2 日志选项 310

9.5.3 配置源 312

9.5.4 配置监听器 312

9.6 服务踪迹查看器 313

9.6.1 活动视图 314

9.6.2 项目视图 315

9.6.3 消息视图 315

9.6.4 图形视图 316

9.6.5 分析来自多个源的日志 317

9.6.6 过滤结果 319

9.7 小结 320

第10章 异常处理 321

10.1 WCF异常处理简介 321

10.1.1 SOAP通信中的WCF异常 322

10.1.2 未处理异常的例子 322

10.1.3 检测和恢复出错的信道 325

10.2 通知异常的细节 326

10.3 通过FaultException管理服务异常 327

10.4 简单FaultException的限制 330

10.5 创建和使用强类型的故障 331

10.5.1 在FaultContract中声明故障的定义 331

10.5.2 定义FaultContract 332

10.5.3 以定义的FaultContract抛出FaultException 333

10.5.4 故障契约策略 334

10.6 实现客户端故障处理器 334

10.7 错误处理应用程序块 336

10.8 小结 337

第11章 工作流服务 338

11.1 集成点 339

11.2 从WF调用WCF服务 340

11.2.1 使用发送活动 341

11.2.2 编写定制活动 343

11.3 从WF暴露服务 346

11.3.1 定义接口 346

11.3.2 接收活动 347

11.3.3 app.config中的配置 350

11.3.4 托管服务工作流 351

11.3.5 自托管服务工作流 351

11.3.6 在IIS中托管服务工作流 353

11.4 相关性与持久服务 353

11.4.1 长期运行的工作流 354

11.4.2 处理上下文 358

11.4.3 在服务器上持久化工作流状态 360

11.5 控制对服务工作流的访问 362

11.5.1 声明式访问控制 362

11.5.2 编程式访问控制 363

11.6 小结 365

第12章 对等网络 366

12.1 构建分布式应用程序的几种方式 366

12.1.1 客户机/服务器应用程序 366

12.1.2 N层应用程序 367

12.1.3 peer-to-peer应用程序简介 367

12.1.4 分布式方式的对比 368

12.2 peer-to-peer应用程序 368

12.2.1 啮合网络 368

12.2.2 解析同侪啮合网 369

12.2.3 覆盖式消息递送与定向式消息递送 369

12.3 创建peer-to-peer应用程序 370

12.4 使用PNRP解析同侪 372

12.4.1 PNRP引导过程 372

12.4.2 Windows因特网计算机名 373

12.4.3 PnrpPeerResolver 374

12.4.4 啮合网认证 374

12.5 使用PNRP注册名称 374

12.6 实现定制同侪解析器 377

12.7 限制消息跳跃数 381

12.8 使用Windows Vista进行协作 383

12.8.1 网络邻居 383

12.8.2 Windows联系人 384

12.8.3 邀请 385

12.8.4 System.Net.PeerToPeer.Collaboration 386

12.9 使用定制绑定的定向式消息递送 392

12.10 小结 400

第13章 可编程Web 401

13.1 URI详解 402

13.1.1 随处可见的GET 403

13.1.2 格式问题 403

13.1.3 通过WCF进行Web编程 404

13.2 URI和UriTemplates 404

13.2.1 构造URI 405

13.2.2 分析URI 406

13.3 为Web创建操作 407

13.4 使用WebGet和WebInvoke 409

13.4.1 WebGet 409

13.4.2 WebInvoke 410

13.5 通过AJAX和JSON开发Web 411

13.6 使用WebOperationContext 418

13.7 在Web上进行托管 424

13.7.1 WebScriptServiceHost 425

13.7.2 WebScriptServiceHostFactory 425

13.8 通过RSS和ATOM进行内容聚合 425

13.9 小结 429

附录A 高级主题 430

A.1 元数据发布端点 430

A.1.1 mexHttpBinding 430

A.1.2 mexNamedPipeBinding 431

A.1.3 mexTcpBinding 431

A.1.4 mexHttpsBinding 431

A.2 根据元数据创建客户端 431

A.3 根据元数据创建Silverlight客户端 433

A.4 在服务间共享端口 434

A.5 配置服务的配额设置 435

A.6 配置HTTP连接 436

A.6.1 回收空闲连接 437

A.6.2 调整连接的生命周期 437

A.6.3 关闭HTTP长连接 438

A.6.4 增加连接数 439

A.7 配置TCP连接 440

A.7.1 回收空闲连接 440

A.7.2 调整连接生命周期 440

A.7.3 增加连接数目 440

A.8 为WCF使用LINQ 441