基本信息
- 原书名:Programming WCF Services
- 原出版社: O'Reilly Media, Inc.
- 作者: Juval Lowy
- 译者: 张逸 徐宁
- 丛书名: 北京华章图文信息有限公司O'Reilly系列
- 出版社:机械工业出版社
- ISBN:9787111278900
- 上架时间:2009-10-29
- 出版日期:2009 年10月
- 开本:16开
- 页码:700
- 版次:2-1
- 所属分类:计算机 > 软件与程序设计 > .NET > 综合

编辑推荐
对于WCF编程,我们不仅要知其然,更要知其所以然。本书正是基于这样的目的,它不仅能够帮助你掌握WCF,还能够让你成为一位优秀的软件工程师。...
内容简介
计算机书籍
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,还能够让你成为一位优秀的软件工程师。...
作译者
目录
序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
译者序
从面向组件设计到面向服务设计无疑是软件设计的又一次重大飞跃,它摆脱了组件设计固有的约束与桎梏,不再依赖于实现的技术与平台,以“服务”为核心的实现原则,可以极大程度地解除组件之间的依赖关系,而面向服务框架在事务处理、安全控制、消息传输等方面提供的公共基础功能模块,又使得开发者可以从实现基础功能的工作中解放出来,服务的设计者可以只关注与企业应用密切相关的业务逻辑。可以说,面向服务设计在互操作性、可扩展性、可重用性以及可伸缩性等诸多方面有着得天独厚的优势与巨大潜能。
是的,SOA(Service Oriented Application,面向服务应用程序)的时代已经到来! “弄潮儿向涛头立,手把红旗旗不湿”,软件开发人员从来都不缺乏弄潮儿迎接怒涛的勇气,谁能够坚定地走在更前面,谁就能够收获更广阔的视野。
WCF无疑为.NET开发者提供了决战SOA的制胜利刃。WCF是基于WindOWS平台下开发和部署服务的SDK,为服务提供了运行时环境,以便于开发者设计服务、部署服务与运行服务。WCF是.NET Framework 3.0的一个重要组成部分,它集成了.NET Remoting、Web服务、WSE以及MSMQ的所有特性,使得开发者能够以统一的方式开发面向服务的应用程序。
在WCF还未推出正式版本(当时被命名为Indigo)的时候,我就开始关注于它的技术元素与技术发展。出于对SOA的认知,我能够预见到WCF的远大前程。无疑,WCF是Microsoft软件产品战略中针对企业级应用的重要产品。以WCF为基础框架搭建面向服务的企业级应用程序,以WF工作流引擎支撑企业应用中业务流程的传递与控制,以CardSpace以及WCF固有的安全策略保证企业信息的安全,最后以ASP.NET AJAX、WPF以及Silverlight丰富客户端界面与企业客户的体验,这就是Microsoft实现企业级应用的霸业宏图。WCF在其中的地位举足轻重。..
本书可以称得上是讲解WCF技术的开山之作。它全面准确地为我们描绘了一幅WCF画卷的清明上河图。Juval Lowy作为全世界享有盏誉的分布式系统专家,一位循循善诱的技术讲师与作家,具有高屋建瓴的体系架构知识,同时又能够细致入微地观察技术细节,然后用深入浅出的语言转换为通俗易懂的著作。本书就像清明上河图一般,巨细无遗,浑然天成。
我很荣幸自己能够翻译Juval Lowy的这本巨著。然而,在兴奋之余,也难免感到诚惶诚恐。对于一本书而言,译者的翻译可以称得上是书籍的第二次生命,“信”乃其骨,“达”乃其肉,“雅”则为其貌。我担心自己拙劣的翻译会让这本书的第二次生命成为一次苦难的历程。翻译自古难为,译者就像走钢丝绳的杂耍者,如果不能准确、优雅地表达原作者的含义,就会失去平衡,从高达数丈的钢丝绳上摔下来。然而,这份惶恐与踌躇,终究敌不过本书给我带来的诱惑,何况,我自有作为一名技术人员的几分自信。同时,在我的诚邀之下,徐宁先生的“加盟”无疑又为本书的翻译加重了成功的砝码。作为Microsoft的MVP,徐宁先生曾经参与了Patrick Smacchia的著作Practical.NET 2 and C# 2的翻译,翻译经验非常丰富。
本书的第7章、第9章以及第10章由徐宁先生翻译,而我则负责翻译除这几章之外的所有章节, 同时包括附录、序、前言以及第10章的部分小节,并负责全书的技术审校。由于译者技术水平有限,疏漏在所难免,敬请广大读者指正。
我要感谢机械工业出版社引进这样一本关于WCF技术的杰作,它必然会在面向服务设计技术领域的众多书籍中占据重要的地位,并为推动国内的WCF技术作出卓越贡献。感谢机械工业出版社的陈冀康先生、曹玉英女士,正是你们的工作促成了本书中文版的顺利出版。
感谢我的合作者徐宁先生,你的加入无异于雪中送炭。否则,我一个人无法在如此短的时间内翻译完成这本厚达700多页的巨著。
最后,我要感谢我的父母,我的爱妻漆茜,感谢你们的宽容、体谅以及默默的支持。
张逸
Microsoft Windows Server System-Connected System Developer,MVP
2007年10月30日于重庆高新园...
前言
2003年7月,我有机会接触了一个全新的事务型体系架构,它能够改善.NET编程中关于事务处理的相关缺陷。当时,并没有一个稳定的编程模型能够统一这些独立的技术。直到2003年末,我有幸获邀参加了一个由同行专家组成的小型团队,对代号为Indigo的开发平台进行战略性的设计评审。据我所知,这个开发团队可谓人才济济,汇聚了许多世界上最优秀的天才。在接下来的2~3年时间内,Indigo一共经历了三代编程模型版本的演变。就在2005年早期发布了基于终结点驱动对象模型的版本之后,终于在当年8月逐渐成为一个稳定的版本,同时更名为WCF。
关于WCF是什么,很难从不同的人那里得到相同的答案。对于Web服务的开发者而言,WCF就是最终的互操作性解决方案,该方案实现了大量行业标准。分布式应用程序的开发者则认为它是实现远程调用以及队列调用最简单方式。系统开发者认为它具备下一代面向产品的特征,诸如事务与宿主,为应用程序捉供了现成的基础功能模块。至于应用程序的开发者,WCF则为他们构建应用程序提供了声明式的编程模型。而对于架构师,WCF则是构建面向服务应用程序的最终选择。一言以敝之,WCF涵盖了以上所有的一切,因为设计WCF的目的就是为了能够统一微软的下一代全新的技术。
对我而言,WCF就是下一代开发者平台,它在很大程度上包容了最初的.NET编程理念。任何.NET开发者都可以使用WCF,而不用考虑应用程序的类型、规模或行业领域。WCF是一门基础技术,它提供了生成服务与应用程序的“终南捷径”,完全符合我所认同的良好的设计准则。WCF从一开始就是工程化的,能够简化应用程序的开发与部署,降低开发成本。WCF服务用于构建面向服务的应用程序,不管这些程序是独立的桌面应用程序,还是Web应用程序,也不管它们是服务,还是高端的企业应用程序。
本书的组织结构
本书涵盖了所有设计和开发基于WCF的面向服务应用程序所需的知识与技能。通过本书,你可以看到如何使用WCF内建的特性,例如服务托管、实例管理、并发管理、事务、离线队列调用以及安全。本书会为你展示如何使用这些特性,并探究它们在这种特定的设计思路下的实现原理。你不仅能够了解到WCF编程技术,以及相关的系统知识,而且还能了解到相应的设计方案、诀窍、最佳实践以及存在的缺陷。我之所以站在软件工程的立场阐述本书的每个主题与特征,是因为我期望它能够帮助读者不仅要成为一名WCF专家,而且还要成为一名优秀的软件工程师。本书带给你的这种认知能够使你如虎添翼,让你的应用程序在可维护性、可扩展性、可重用性以及高效性方面,更加符合软件工程的理念。
虽然本书的第1版出版于2007年年初,但本书基于的素材则可以追溯到2005年。第2版让我有机会加入最近3年的新技术、新理念,以及更多的辅助类和取得的新进展。我相信这些新加入的内容,即使对于第1版的读者而言,都是有价值的。在过去几年里,和我打过交道的WCF开发人员遍布五湖四海。他们讲解WCF以及设计WCF系统的经验,为我以最佳的方式呈现WCF各个方面的功能提供了极大的帮助,也有助于我阐明那些开发者难以理解的概念。本书第2版处处体现了这种知识积累的过程。
本书回避了许多WCF的实现细节,更多的是注重使用WCF的实用性与可行性:如何应用WCF技术,以及如何选择可行的设计原则与编程模型。本书大量使用了.NET 3.5技术,从某种角度来说,本书也可以算是一本高级的C#考书。
除此之外,本书包含了大量我所编写的套件、工具以及辅助类,并集中放在了ServiceModelEx中。我编写工具、辅助类和自定义特性的目的在于提高开发人员的开发效率,以及保障WCF服务的质量。从字面上讲,serviceModelEx是构建在WCF之上的一个小型框架,弥补了WCF设计的某些疏漏。它还能够简化或自动化实现一些特定的任务。在书中,像介绍WCF技术那样,我详细地介绍了这些工具、理念与技术。同时,我开发的框架还演示了如何对WCF进行扩展。许多读者告诉我,除了本书对WCF的讲解,ServiceModelEx是本书提供的最有价值的一笔财富,因此希望我能够着重介绍,并给出清晰的分类。在这个版本中,我采纳了这一建议,但我仍然坚持我的原则,就是读者不应该完全依赖于ServiceModelEx的实现。实际上,ServiceModelEx应该作为你的WCF工具集。此外,你也可以单独使用每个辅助类、工具或框架,因为它们之间几乎没有相互依赖的关系。
在过去的4年中,我在MSDN杂志上发表了大量关于WCF的文章。目前,我还在为杂志的基础专栏(Foundations Column)撰写WCF技术文章。我要感谢杂志社能够允许我将这些文章收录到本书中。如果你曾经阅读过这些文章,或许还能够从本书的相关章节中发现它们的影子。相对来说,本书的章节更加全面,提供了WCF的多种视角、技术与实例,而且这些主题也与书中的其他章节紧密相连。
我在每一章中都系统地讲解了一个专题,深入探讨了这些专题的内容。然而,每一章又都依赖于前一章的内容,因此,我建议你最好按照先后顺序阅读本书。
以下是书中各章节以及附录的摘要:
第1章,WCF基础
本章首先阐释了WCF的技术原理,并描述了WCF的基础概念和构建模块,例如地址(Address)、契约(Contract)、绑定(Binding)、终结点(Endpoint)、托管(Hosting)以及客户端(Client)。本章最后还讨论了WCF体系架构,它将是帮助我们理解后面章节的关键。本章假定读者已经了解面向服务的思想与优势。如果你不具备这方面的知识,可以首先阅读附录A的内容。即使你已经熟悉了WCF的基础概念,我仍然建议你至少能够快速地浏览本章的内容,它不仅能够巩固你已有的知识,而且本章介绍的一些辅助类和技术术语有助于你阅读全书。
第2章,服务契约
本章致力于介绍服务契约的设计与开发。首先,你会了解到一些有用的技术,包括服务契约的重载与继承,以及其他高级技术。然后,本章深入探讨了如何设计以及分解契约,以利于服务的重用、维护和扩展。最后,本章还将向你展示如何通过公开契约元数据完成运行时的交互编程。
第3章,数据契约
如果没有实际存在的可共享的数据类型本身,如果没有使用相同的开发技术,我们应该如何处理客户端与服务之间的数据交换?在本章,你可以看到如何处理某些有趣的现实问题,例如数据版本控制,以及传递元素项集合的方式。
第4章,实例管理
究竟是哪一种服务实例处理哪一种客户端的请求?本章给出了问题之钥。WCF支持多种服务实例管理、激活以及生命周期管理技术,这些技术与系统规模、性能、编程模型和业务流程息息相关。本章还讲解了每一种实例管理模式之间的关系,指导读者何时以及如何有效地使用它们。本章还介绍了与之相关的主题,例如限流(Throttling)。
序言
作为应用程序之间的主要通信方式,Web服务初露峥嵘,如果你是在微软的.NET平台下开发应用程序,自然离不开WCF。这种为Web服务提供的丰富平台是如此地强大而全面,它能够支持多种不同的通信模式与协议,能提供几乎所有你能够想到的扩展方式。..
如果你试图探索该通信平台的奥秘,那就需要一匹识途老马。而当今世界,在为数不多的精通WCF的几个人中,Juval Lbwy无疑是个中翘楚。最好的证明就是在Redmond的42号楼中(WCF团队工作的地方),本书第1版业已成为了多数人的案头必备。我有幸在2001年结识Juval,在那时我已经拜读过他早期的一本著作,并为他丰富的学识以及对技术细节孜孜不倦的追求而深深折服。
选择学习WCF,无疑是明智之举。选择通过Juval Lowy的著作来学习WCF,会令你事半功倍。本书第1版现在就放在我的电脑桌旁,已被我翻得破旧不堪。我迫不及待地期望早日看到本书的第2版。
———Ron Jacobs
WCF资深技术作家
微软公司...
媒体评论
——Ron Jacobs
微软公司WCF资深技术作家...