NVIDIA 初创加速计划,免费加速您的创业启动 了解详情
写点什么

图书节选:WCF 服务编程

  • 2008-02-02
  • 本文字数:2496 字

    阅读完需:约 8 分钟

WCF 就是下一代开发者平台,它在很大程度上包容了最初的.NET 编程理念。任何.NET 开发者都可以使用 WCF,而不用考虑应用程序的类型、规模或者行业领域。WCF 是一门基础技术,它提供了生成服务与应用程序的“终南捷径”,完全符合我所认同的良好的设计准则。WCF 从一开始就是工程化的,能够简化应用程序的开发与部署,降低开发成本。WCF 服务用于构建面向服务的应用程序,不管这些程序是独立的桌面应用程序,还是 Web 应用程序和服务,还是高端的企业应用程序。

《WCF 服务编程》(Programming WCF Services,已经由机械工业出版社引进发行)涵盖了所有设计开发基于WCF 的面向服务应用程序所需的知识与技能。通过本书,读者可以看到如何利用WCF 内建的特性,例如服务托管、实例管理、并发管理、事务、离线队列调用以及安全。本书会为读者展示如何使用这些特性并探究它们在这种特定的设计思路下的实现原理。读者不仅能够了解到WCF 编程技术,以及相关的系统知识,同时还包括了相应的设计方案、诀窍、最佳实践以及存在的缺陷。作者之所以站在软件工程的立场阐述本书的每个主题与特征,是因为他期望它能够帮助读者不仅要成为一名WCF 专家,而且还要成为一名优秀的软件工程师。本书带给读者的这种认知能够使读者如虎添翼,使其应用程序在可维护性、可扩展性、可重用性以及高效性方面,更加符合软件工程的理念。

本书回避了许多WCF 的实现细节,更多的是注重使用WCF 的实用性与可行性:如何应用WCF 技术?如何选择可行的设计原则与编程模型?本书大量使用了.NET 2.0 技术,从某种角度来说,本书也可以算是一本高级的C#技术书籍。除此之外,本书包含了大量作者所编写的套件类、工具类以及辅助类。这些内容可以提高开发效率,保障开发的WCF 服务的质量。作者还开发了一个基于WCF 技术的小型框架,用以弥补一些设计缺陷,或者简化确切的任务,使其能够自动化实现。在书中,作者详细地介绍了这些工具、理念与技术并通过自己开发的框架演示了如何对WCF 进行扩展。

样章试读: WCF 服务编程(88 页,包括第 1 章第 2 章第 6 章)

以下是书中各章节以及附录的摘要。

第 1 章,WCF 基础

该章首先阐释了 WCF 的技术原理,并描述了 WCF 的基础概念和构建模块,例如地址、契约、绑定、终结点、托管以及客户端。在该章最后还讨论了 WCF 体系架构,它将是帮助我们理解后面章节的关键。该章假定读者已经了解面向服务的思想与优势。如果你不具备这方面的知识,可以首先阅读附录 A 的内容。即使你已经熟悉了 WCF 的基础概念,我仍然建议你至少能够快速地浏览该章的内容,它不仅能够巩固你已有的知识,更在于该章介绍的一些辅助类与技术术语有助于阅读全书。

第 2 章,服务契约

该章致力于介绍服务契约的设计与开发。首先,你会了解到一些有用的技术,包括服务契约的重载与继承以及其他高级技术。然后,该章深入探讨了如何设计以及分解契约,以利于服务的重用、可维护性以及可扩展性。最后,展示如何通过公开契约元数据完成运行时的交互编程。

第 3 章,数据契约

如果没有实际存在的可共享的数据类型本身,如果没有使用相同的开发技术,应该如何处理客户端与服务之间的数据交换?在该章,你可以看到如何处理某些有趣的现实问题,例如数据版本控制,以及传递元素项集合的方式。

第 4 章,实例管理

究竟是哪一种服务实例处理哪一种客户端的请求?该章给出了问题之钥。WCF 支持多种服务实例管理、激活以及生命周期管理技术,这些技术与系统规模和性能息息相关。该章给出了每一种实例管理模式之间的关系,指导读者何时以及如何有效地使用它们。该章还介绍与之相关的主题,例如限流。

第 5 章,操作

随着对各种类型操作的处理,客户端能够调用服务,遵循相关的设计原则,例如如何改善和扩展基础功能,以支持回调的安装与销毁,管理回调端口与通道,提供类型安全的双向代理。

第 6 章,错误

该章全面介绍了服务将错误与异常返回给客户端的方式,毕竟,诸如异常与异常处理的构建都是一门特定的技术,无法穿越服务边界。该章介绍了错误处理的最佳实践,使开发者能够解除客户端错误处理与服务的耦合度。该章还演示了如何扩展以及改善 WCF 基础的错误处理机制。

第 7 章,事务

首先,该章从整体上介绍了使用事务的目的,然后讨论了事务服务的众多特征:事务管理架构、事务传播配置、WCF 提供的声明性事务支持,以及客户端创建事务的方式。最后,该章讨论了与事务相关的设计原则,例如事务服务状态管理与实例模式。

第 8 章,并发管理

WCF 提供了一种强大而简单的声明方式,用来管理客户端与服务的并发与同步。该章展现了诸多高级技术,例如回调、重入、线程关联度、同步上下文以及避免死锁的最佳实践与原则。

第 9 章,队列服务

该章描述了客户端如何通过队列调用服务,从而支持异步与离线工作。该章首先介绍如何创建与配置队列服务,然后,重点讲解诸如事务、实例管理、故障以及它们对服务业务模型与实现造成的影响。

第 10 章,安全

通过将多个方面的任务分解为一些基本的要素,如消息传递、认证和授权,就可以揭开面向服务安全神秘的面纱。该章演示了如何为局域网和互联网应用程序等关键场景提供安全保障。最后,你可以看到我为声明式的 WCF 安全所编写的框架,设计为自动实现安全的设置,从而极大地简化对安全的管理。

附录 A,面向服务概述

附录 A 为那些希望了解面向服务的读者提供,介绍了我在面向服务的具体应用。附录定义了面向服务应用程序(而非通常所谓的架构)以及服务自身,检验了它在方法学方面的优势。附录还给出了面向服务的原则,通过大多数应用程序所需要的实用要点,强化了面向服务的抽象原则。

附录 B,服务发布与订阅

附录 B 展现了我定义的框架,它实现了发布 - 订阅事件管理的解决方案。框架可以使你只需要编写一两行代码就能发布和订阅服务。发布 - 订阅模式属于第 5 章的内容,之所以将它放入到附录中,是因为它使用了其他章节的内容,例如事务与队列调用。

附录 C,WCF 编码规范

基本上,附录 C 涵盖了全书提及的甚至于没有提及的最佳实践。规范在于阐释应该“如何做”以及“怎么做”,而不阐明其原因。隐藏在规范之中的基础原理可以在本书的其余部分找到。该规范同时还使用了本书讨论的辅助类。

2008-02-02 23:481327

评论

发布
暂无评论
发现更多内容

Java岗四面字节跳动成功之前,我都刷了那些面试题以及做了那些准备!

Java架构之路

Java 程序员 架构 面试 编程语言

Spring Cloud 2020.0.0 正式发布,对开发者来说意味着什么?

阿里巴巴云原生

阿里云 容器 开发者 云原生 架构师

7. JDK拍了拍你:字符串拼接一定记得用MessageFormat#format

YourBatman

Spring Framework 类型转换 MessageFormat DateFormat

甲方日常 76

句子

工作 随笔杂谈 日常

K8S 资源可视化利器:Kubectl-Graph

郭旭东

Kubernetes Kubernetes Plugin

冰河又一MySQL力作出版(文末送书)!!

冰河

MySQL 高可用 高并发 高性能 MySQL架构

二十多岁的年纪是怎么成功四面字节跳动,最终拿到offer的?

Java架构之路

Java 程序员 架构 面试 编程语言

SpringBoot,来实现MySQL读写分离技术

Java架构师迁哥

CAP 原理 <笔记>

raox

极客大学架构师训练营

LeetCode题解:剑指 Offer 40. 最小的k个数,快速排序,JavaScript,详细注释

Lee Chen

算法 大前端 LeetCode

架构师训练营 - 大作业 2

阿甘

面试官:Android事件分发机制及设计思路,跳槽薪资翻倍

欢喜学安卓

android 程序员 面试 移动开发

扫地阿姨看完都学会了!万字长文总结Android多进程,满满干货指导

欢喜学安卓

android 程序员 面试 移动开发

突破2.8万美元关口,比特币为何“疯涨”? ​

CECBC

比特币 比特币数字货币

架构师训练营第五周”技术选型一“作业

随秋

极客大学架构师训练营

姐夫半夜不睡觉,竟躲在厕所看这“57道Redis面试题”?

Java架构之路

Java 程序员 架构 面试 编程语言

支持 gRPC 长链接,深度解读 Nacos 2.0 架构设计及新模型

阿里巴巴云原生

云计算 阿里云 开源 微服务 云原生

JAVA并发编程原理与实战

Geek_53983e

原理 java 并发 实战

架构师训练营 - 大作业1

阿甘

专家:区块链底层技术创新是关键

CECBC

区块链

速来围观!阿里P8大牛写出的JDK源码剖析及大型网站技术架构与业务架构融合之道

Java架构之路

Java 程序员 架构 面试 编程语言

GitHub标星力推!我掏空了各大搜索引擎,给你整理了188道Java面试题,满满干货记得收藏

Java架构之路

Java 程序员 架构 面试 编程语言

测开之函数进阶· 第4篇《匿名函数》

清菡软件测试

测试开发

为移动应用产业开辟出海新航路,华为应用市场是如何“破冰”的?

脑极体

云上可靠性测试:让我们一起给开发找点事儿

华为云开发者联盟

安全 云服务 可靠性

在wildfly 21中搭建cluster集群

程序那些事

程序那些事 wildfly wildfly21 集群部署 集群架构

架构大作业一

Geek_michael

极客大学架构师训练营

手把手教你写!2021年Android工作或更难找,最全的BAT大厂面试题整理

欢喜学安卓

android 程序员 面试 移动开发

架构大作业二

Geek_michael

极客大学架构师训练营

与前端训练营的日子 --Week09

SamGo

学习

自研ARM芯片,亲手拆掉Wintel联盟,微软这次是认真的吗?

脑极体

图书节选:WCF服务编程_SOA_霍太稳@极客邦科技_InfoQ精选文章