学习WCF:从原理到实践



查看其他详细信息:http://www.china-pub.com/209207

【原 书 名】 Learning WCF: A Hands-on Guide 
【原出版社】 O'Reilly Media, Inc. 
【作  者】(美)Michele Leroux Bustamante
【译  者】 庞引明;侯伯薇
【出 版 社】 电子工业出版社     【书 号】 9787121073007 
【出版日期】 2008 年9月 【开 本】 16开 【页 码】 606     【版 次】1-1 
   市场价: ¥80.00      pub价:¥60.00

【媒体评论】
“……在你手中(计算机中,或者其他媒介中)的是一本书,作者是一位MVP和RD,并且是一位WCF数字精英(我现在敢告诉你了)。该作者实践经验丰富,交流手段精湛,正如你对WCF数字精英所期待的那样与产品小组联系颇深。这一切造就了一本众望所归的力作……它是通往WCF专家阵营的阳关大道。买一本,带回家,好好从中汲取营养吧。”.
——Steve Swartz,微软互联系统部架构师
“就像维吉尔(Virgil)引领但丁(Dante)穿过地狱湖那样,Michele也将带领你们遍览WCF,由浅入深,渐入佳境。关注实用和真实的案例,避开神秘莫测的陷阱……当你完成的时候,你将成为WCF专业开发者群体中的一员,这些人能够以自己喜欢的方式来使用WCF。”
——Ted Neward,http://www.tedneward.com
“仅仅是契约和安全性章节的价值就已超过你购书的付出了!”
——Sam Gentile,V5算法公司软件架构师&技术主管
“Michele做了一件富有成效的工作,以一种子易近人的、实践性很强的方式带领大家走近WCF。与此同时,本书讲授了技术内部的工作原理,并从一开始,就为更复杂的场合提供实用的解决方案。该书令人震撼!”..
——Rick Strahl,西风技术公司
“买这本书吧,我是认真的。我们(微软)对微软通信架构WCF的设计目标是,使得分布式系统更加易于构建,并且将你在此过程中需要掌握的技术种类数量从半打减少到唯一。(WCF)作为一种编程方式,我们相信已经取得成功,而使一个飞行器更易于飞行还意味着你必须学会如何来操纵它。分布式系统也一样,我们已经降低了复杂度,不过你还是需要学会如何构建分布式系统,而这正是Michele这本书的切入点。我们实现了这个架构,Michele展示并讲解这一架构——以一种绝妙的方式——如何将所需要的组成部分钩联在一起用于你的解决方案。买这本书吧,我是认真的。”...
——Clemens Vasters,微软互联系统部高级程序经理


【内容简介】
本书对微软WCF技术的各个细节均进行了详细的阐述,书中采用了大量的叙述和操作实例,由浅入深,对以下各方面都做了非常详细的介绍:设计契约、创建数据契约、定义绑定配置、选择合适的寄存环境、实例化服务、处理并发情况、保证服务的可靠性、使用授权和认证机制以保证服务的安全性,以及如何有效处理异常和故障,等等。.
本书适合创建面向服务应用程序的中高级开发者阅读,通过完成书中的操作实例,就能够对WCF的各个方面有更深入的理解。...

【前言】
我的整个职业生涯就是在学习和应用新技术,也在不断接受与技术和业务相关的挑战。我以学习新事物为乐事,并且喜欢通过文字和公开演讲与他人分享我的学习心得。我乐于帮助别人学习富于挑战性的新课题,尤其是与构建分布式企业系统有关的课题,这是我喜爱的领域。在这几年时间里,我一直在认真考虑写另一本书,直到开始本书的写作。同时,我一直在等待那些能让我真正充满激情的技术出现。这种技术能解决架构师和开发者们在构建企业系统时所面临的问题,它值得我为它放弃数月的灿烂阳光——WCF(Windows Communication Foundation)就是这样的技术。.
WCF之所以令我如此兴奋以至于要为它写一本书的原因很多。毫无疑问,我多年专注于Web服务和可互操作性(interoperability)是动因之一。WCF深度支持新兴的WS*(web service standards),并且依靠自身的可延展性随着这些标准的发展而发展。WCF的另一个令我印象深刻的特性在于,它是一个完美的SOA平台,将“服务”放在首位,并且把服务的开发从低端的业务组件中分离出来。令WCF魅力十足的最有说服力的原因也许是,当你创建一个服务时,它可以用来在内部网上实现跨进程、跨机器边界的客户一服务器调用。通过这个调用,可以公开队列调用和传送服务保证,并且使用完整的WS*协议栈来公开可互操作的Web服务。简而言之,WCF统一了早期的多种技术,即.NET Remoting、Enterprise Services、ASMX(ASP.NET web services)和WSE(Web Services Enhancements)。
在WCF之前,开发人员被迫将分布式功能同调用这些分布式功能的技术耦合起来。这就意味着我们需要提前知道我们使用的到底是远程对象、服务组件,还是Web服务。因为它们有着不同的表述模式。我不知道下面的哪一种情况会更糟糕,一种是为了满足不同的通信需求而学习这3种不同技术,一种是使用3种中的任何一种技术来满足所有不同的通信需求。有了WCF,这些问题都迎刃而解了。开发者们可以学习一种编程模式,基于契约来设计服务,在服务部署时,基于协议和策略来做出决定。而且,开发者们不必了解底层的基础管线和通信协议。
现在的企业系统的设计和开发者都应该使用WCF,这一点无可争议。现在的市场上没有任何一种其他平台能够像WCF这样,囊括了SOA所有的价值主张,封装了一长串的WS*协议,提供了多种功能来支持不同类型的分布式通信,同时支持安全、事务、传输保证和其他系统服务。WCF是一个enabler(译注1),它是一个完美的系统设计和安全性、可靠性、可扩展部署的集大成者。
我写这本书,是为了告诉系统的设计者和开发者们WCF的卓越和高效,是为了给特殊的应用情形提供推荐方案,是为了表达WS*协议支持的重要性和相关性,是为了帮助读者们在这个平台上迅速形成生产力。更进一步讲,写作本书也是为了我自己。因为我为WCF的问世而如此兴奋,以至于我想徜样于这个平台的每一个角落,包括它的基础架构和它丰富的功能集。
在这本书里,我将和读者分享自己深入钻研WCF平台的收获,比如,我将与大家分享曾经构建大规模、分布式、面向服务系统的经验和知识应用到WCF平台的体会,还会摘取一些我和微软产品组的同事们的讨论细节。在.NET 3.0的Beta 1版本的研发期间,我曾经和CardSpace产品组密切合作过。我的工作和基础代码库直接挂钩,重点在联邦安全性功能上,是为了集成CardSpace和PSTS(Portable Security Token Service)装置。我还在常规的SDRs(Software Design Reviews)期间,或者通过其他交流方式与WCF的项目组成员有过直接接触。同时,我也将自己在解答问题环节中的心得记录在本书中。
这本书为谁而写
本书的主要目标读者是中高级的开发者。他们期望学习关于WCF的全面知识以构建SOA系统,这意味着开发分布式企业系统需要一种可行的技术。本书从SOA演变的背景介绍开始,讨论了SOA架构的4个原则和WCF如何满足这些原则。之后,我将自顶向下介绍WCF的概念。读者应该事先知道这些概念,以进一步理解与契约设计、寄存、绑定、实例与并发、分流、可靠性、安全性和错误处理等相关的特定功能。
我的目标是使读者深刻理解每一个功能和它的作用,提供给读者自己动手做的机会以巩固对概念的理解,讨论功能的实际用处和操作规程。我将回答与每一个功能相关的、基于常见的不同设计场景的问题。所以,书中会有少许的架构和设计讨论,以及一些针对每一种场景设计目的的解释。
WCF可以应用于很多实际问题领域,包括分布式通信、消息传递和Web服务等都会在本书的不同场景中被讨论。我会尝试捕捉你将WCF编程模型应用到这些领域中的美妙瞬间。本书并不会涵盖分布式通信的方方面面,然而,在讨论WCF在因特网上的应用时我一定会给出很多背景材料。本书不打算全面讨论消息系统,不过,我将向你展示如何将WCF和MSMQ应用到消息环境中。本书也不打算讲授Web服务的点点滴滴,但是会深入探讨用到的标准及其工作方式,如何控制消息传输,以及如何在多个层次上激活可操作性。如果你是一个初学者,在基于分布式通信或Web服务之上构建系统方面经验较少,那么,你应该有计划地按顺序从头至尾阅读本书。通过按出现顺序学习一些动手就能做的操作实例,你将会被一步一步带入解决一些相对困难的应用情况,会帮助你不仅仅了解WCF是如何工作的,还会让你认识到它解决了什么问题。
尽管本书较为全面,但为了能够界定一个合理的范围,本书没有涉及WCF下面的一些细节:
贯穿本书,我提到了WCF的很多可扩展性的知识点,然而,我并没有单独列出一章来讲解可扩展性或定制信道。
没有涉及端到端(peer-to-peer)通信,因为这是需要若干章节才能透彻地讲清楚的概念。在你使用端信道实现方案之前,需要先了解本书中讨论的基础知识。
Visual Studio下一个版本的开发代码为  “Orcas”,将包含很多用于构建WCF应用的生产力工具(productivity tools)。本书仅略略谈到这些工具,由于它们还没有发布,所以,我所使用的临时版本在最终版本中可能会改变。
本书的结构
本书包括详细讲解、代码范例和动手就能做的操作实例。同时,第1章给出了对重要基础概念的综述,后续章节分别讨论了相关功能的细节。我推荐你首先通读第1章,然后就可以随兴趣在各章之间跳来跳去了。这就是说,我对章节的安排使得每一章并不涉及另外一层的复杂内容。不过,按序阅读还是最合适的。
章节概览
这里会概述你从每一章中能学到些什么。
第1章:Hello Indigo
因为很早就开始使用这一平台了,我变得十分依恋WCF的开发代码:Indigo。当然,我们最终都不得不放弃开发代码,转而使用产品代码——不过,这还是不能阻止我在第1章中向其表示敬意。在这一章中,我将把WCF介绍给你,同时讲述它如何解决分布式企业系统中的问题,并讲解它是如何支持SOA(Service Oriented Architecture)的。同时,你将学习很多基础概念,使你马上可以上手使用WCF,包括创建服务契约和服务、寄存服务,以及生成代理调用服务。..
第2章:契约
这一章重点讲述契约和串行化。它讲述如何设计服务契约,如何为复杂类型串行化创建数据契约,以及如何使用其他可串行化类型来解决特殊挑战,包括契约优先设计方法。你将学习到服务如何将原数据公开给客户用以生成代理,以及原数据交换是如何支持这一点的。同时,这一章还为你提供了用于服务契约和数据契约版本控制的指导方针。  
第3章:绑定
绑定是WCF的核心,运用绑定,你可以配置服务所支持的通信协议,包括那些与可互操作的通信相关的协议。这一章讲解了每一种核心绑定的实际用法:如何为内部网和因特网应用、单向通信和回叫,以及为处理大型消息载荷而定制这些绑定设置。你还将学习绑定如何为客户和服务配置通信信道,并且学习如何及何时使用定制绑定来处理特殊问题。
第4章:寄存
这一章探讨了WCF服务的不同寄存选择,包括Windows应用、Windows服务、IIS和Windows Activation Service。你将学习每一种环境所支持的相关寄存功能和协议,学习它们所共享的基础寄存架构,以及选择每一种寄存环境的现实理由。
第5章:实例化与并发
实例和并发模式管理服务的分配以支持请求,并对应用扩展性施加现实影响。这一章讲解了如何配置服务使其作为单实例(singleton)运行,如何为应用会话提供支持并关注其输入,或者作为可扩展的无会话服务而运行。还讨论了影响并发请求数量和其他服务分流行为的并发模式。你还将学习每一种选项的可扩展性含义,并学习关于负载平衡服务的建议。
第6章:可靠性
WCF的功能(比如可靠会话、分布式事务和队列通信)从整体上提高了企业系统的可靠性。基于可互操作协议的可靠会话使我们能够克服暂时的网络中断,基于TCP和HTTP的事务支持提升了系统的一致性,而队列通信则提供了持久和实在的可靠性。这一章探讨如何使用WCF的这些功能,以及何时使用功能的指导原则。
第7章:安全
这一章涵盖了较大的范围,因为安全性功能在WCF中介入较深。本章首先描述WCF所实现的基础的安全性概念,包括身份(identities)、双向验证(mutual authentication)和消息保护,因为它们都为核心WCF绑定而实现。然后,为了尝试简化这一令人生畏的另类问题,我给出了不同的方案,针对内部网、因特网、搭档或附带证书的机器认证,以及联邦安全性。针对如何配置这些方案,同时又减少功能中无用的冗余机能,我给出了自己的处理原则。你需要从本章中汲取的就是对于带有范例的几个重要安全方案的理解,这些范例可以作为你的应用的开始模板。
第8章:异常和故障
尽管我在本书的前面谈到过异常和故障,然而这一章才专门将重点放在错误处理概念上。包括调试技巧、故障契约设计和错误处理组件。我将本章置于最后是因为,从前面几章与可能出错的功能类型相关的内容中,你可以知道更多的上下文背景知识,同时因为本章涉及了一些WCF的复杂的扩展性功能。
附录A:设置指南
这一附录为数据库的配置和建立、ASP.NET成员关系提供了模型安装,以及如何使用授权书的方法,都给出了详细的安装指南。在建立操作实例和代码范例的过程中,你将会不定期地被引导到这里来寻求帮助。
附录B:当ASP.NET遇到CardSpace
这一附录包含的文章是用于Windows CardSpace上的asp.netPRO,也为第7章中所讨论的技术捉供了额外的背景知识。
操作实例和代码范例
每一章中都包含了一些动手就能做的操作实例以帮助你熟悉方案环境,而相关的代码范例则展示了更细粒度的知识点及复杂场合。操作实例和代码范例都是用C#写的,但是,本书中所涉及的概念对于VB开发环境也一样。对于操作实例,任何安装指南都是内联的,
而对于代码范例,你可以找到“Read Me”文件,显示了各自需要的安装方法(如果合适的话)。两者的详细安装指南都呈现在附录A中。
实例和代码示例文档可以从如下地址下载:www.oreilly.com/catalog/9780596101626。需要补充材料,可以访问我的相关博客:hffP://www.thatindigogirl.com。
有关读者的假定
本书假定你已经熟悉.NET 2.0和Visual Studio 2005。本书前面的操作实例指导中,将会在你首次实施一个动作(如添加项目引用)时,提供详细的步骤提示。而在后面的操作实例中,关于步骤的描述将会比较笼统,就是假定你已经逐渐熟悉了有关过程。因此,如果你是这些技术的初学者,建议你从前往后阅读本书。
有一些操作实例和代码范例还将使用Windows Forms、ASP.NET和Windows Service应用。你不需要知道这些技术的细节,因为操作实例提供了指导,但如果了解细节确实是有益的。
系统要求
这一节描述操作系统支持、数据库引擎和为完成操作实例并运行代码样例所需要的软件。你应该按照它们在如下列表中出现的顺序来安装所需软件:
Windows XP和SP2、Windows Server 2003或Windows Vista附带IIS和激活的MSMQ。
Microsoft SQL Server 2000、Microsoft SQL Server 2005或Microsoft SQL Server 2005 Express Edition(SQL Express)。
Microsoft Visual Studio 2005。
Microsoft.NET 3.0 Framework Runtime。系统已经预装了Vista。
针对Windows Vista的Microsoft Windows Software Development Kit和.NET 3.0 Runtime Components(针对.NET 3.0的Windows SDK)。
.NET Framework 3.0(WCF和WPF)的Visual Studio 2005“Orcas”扩展。或者安装最新版的Visual Studio“Orcas”,在本书写作时,它还仅仅是技术预览版。
你的工作目录
随本书提供的ZIP文件包含了操作实例、范例代码和其他支撑文件,比如,数据库脚本、证书和媒体。建议你将这个文件解压到名为c:\LearningWCF的目录下,或者不同驱动盘上的等价位置。这个目录将贯穿本书作为[YourLearningWCFPath],在引用目录和文件时读者们可随时查阅。...

【序言】
嗨,我是Steve Swartz,Michele请我为她的新书《学习WCF》写前言,因为我是WCF V1的两位广度架构师之一。这显示了一个职位要给人留下深刻的印象是多么容易。我仅仅是软件开发工作中的普通一员。我们部门的技术伙伴——架构师Brad Lovering,构想出了WCF,并且指导我们小组的技术工作。我们部门的杰出工程师——架构师Eric Christensen,设计和实现了WCF的核心部分。像Steve Millet和我这样的广度架构师负责将WCF的各个部分整合成一个统一的整体。WCF的每一部分,都在一个深度架构师指导下,由一个包括开发人员、产品经理、测试人员和文档工程师的小组负责开发出来。值得称道的是,这200多个人中的任何一员,都不会炫耀自己对WCF做出的技术贡献。其实,大部分的微软产品组成员都不爱张扬,我们是一个害羞的群体。那些你们最终认识的人就是那些足够外向而出头露面的人。.
微软产品小组为潜在的用户群体考虑颇多。我没有做过专门统计,但是,从个人角度来看,我敢确定,当我们开发WCF时,WCF就已经有了数百万活跃的用户。包括:使用COM、DCOM、COM+ 和 MSMQ的人们;使用ASMX、.NET Remoting、Enterprise Services和System.Messaging的人们;使用WSE的人们;还有使用WCF早期版本的人们。即使尽我们所能,也不可能与所有这些潜在用户们协同交互以完成我们的日常工作。我们的替代策略是,花一些时间和潜在客户群中有影响力的核心成员保持协作,期待他们能够把知识传递给更多的人。我们花时间和微软的“地区总监”(RD)们密切合作。这些总监们遍布世界各地,和微软员工及其他开发者团体有着良好的关系。另外,我们也与WCF的数字精英相与甚欢,他们是一支10到20人的小分队,是这个星球上最聪明最活跃的WCF用户。
既然大家出于厚爱,称我为WCF产品小组中WCF数字精英的第一人,我就有义务告诉大家更多有关这一神秘团队的事情。WCF数字精英团队的确切成员数目尚属未知数,即使对于WCF小组的管理层也是如此。那些高调宣称属于WCF数字精英团队的人通常不是,而那些平时对此三缄其口的人倒反而有可能正是团队成员。正式的名单,即使存在,也是误导大家。这千真万确,你可以通过一些线索分辨出一个WCF数字精英,通过他们是WCF的小组成员,通过他们知道WCF开发的林林总总的细节,通过他们在身体的某部位的面向服务的宗教纹身等来确认。但是这些线索,即使对于他们的朋友和家人来说都或许是隐秘符号。对于我们,就只有通过一些细微线索来分辨了:与工业界的联系,在一些团体中的活跃程度,在会议上的演讲,以及到雷蒙德的旅行和公开的出版物等。
言归正传,在你手中(计算机中,或者其他媒介中)的是一本书,作者是一位MVP和RD,并且是一位WCF数字精英(我现在敢告诉你了)。该作者实践经验丰富,交流手段高明,正如你对WCF数字精英所期待的那样与产品小组联系颇深。这一切造就了一本众望所归的力作。本书唯一值得改进的地方是,应该包含一张Michele的生活近照。缺了玉照的本书,只能被视为通向WCF技术的一道门而已。买一本,带回家,好好从中汲取营养吧。如果你曾经在身体的某个部位留下过面向服务的宗教纹身,你可以追忆一下那一痛苦时刻,并且认识到阅读本书将是一个起点,把你送上出发之路。你将心怀感激。
Steve Swartz
微软互联系统部架构师
在2004年圣地亚哥的微软技术教育大会(TechEd)上,我有幸和一帮非微软雇员的家伙们呆在一起。大会向他们介绍了一个新的且十分神秘的技术,那就是开发代号为“Indigo”的技术。这是微软平台上的分布式编程技术的一项完美的发明创造,是一个受控技术套件的一部分,将会在未来的某个时间发布。我们听了一系列讲座(不时被问题和讨论所打断——毕竟,这个群体几乎不能哪怕仅仅是休息一下,并且对不是十分确信的结论不依不饶),做了一些代码实例,吃了一些备好的食品,喝了很多苏打水,然后,我们步履沉重地回到TechEd关注的当前问题上来。..
时间快速转过大约十二个月,Indigo作为社区技术预览(Community Tech Preview,CTP)版本发布问世。我和其他一些演讲者在阿姆斯特丹的一个会议上围坐在圆桌前,其中的一名演讲者(后来加盟微软)俯下身子看着我,强烈抱怨Indigo——现在有了个绰号WCF(Windows Communication Foundation)——太过容易,而对于我们这些靠它来写文章、写书和做培训混饭吃的人来说,这可不是件好事。我还清晰地记得那时的想法,“不,我不这样认为。”但是,在当时,我已经无法争辩,因为啤酒喝多了。
时间再快速地转过一点,Vista宣布发布,随之发布的是后来被称为“NetFX3”的技术,现在被命名为.NET Framework 3.0。Indigo及其姊妹技术由Microsoft的Marketing部门的伙计们来命名:Indigo被称为Windows Communication Foundation或WCF,Avalon被称为 Windows Presentation Foundation或WPF,而WinOE 被称为 Windows Workflow Foundation或WWF,这使得很多开发者抓着脑门、迷惑不解,“WTF?”
Windows Communication Foundation对于培训者和推荐者来说,代表着两难的抉择:从概念上讲,WCF是一项简单的技术,其重点在于端点的“ABC”——Addresses、Bindings和Contracts。WCF真正显得可恶的是其与这些概念如影随形的大量细节。契约和绑定选项有着近乎无穷多种的可能的组合方式可以应用到给定的端点上,而每一种组合又有着隐含的关联——关于端点的用法和可用性。更不要提还有隐含的关联,关于这些选项之间的互相组合。当潜在的WCF用户粗略地浏览一下System.ServiceModel 命名空间,数量巨大的类通常已经足够吓退那些胆小或内心柔弱之人。
时间再快速转过一些,Michele在大约6个月之前,向我提出了一项请求:看一看本书的一些章节,针对其中的一些内容给出我的反馈。她一定是觉得,我,作为从WCF诞生起就宣讲和教授它的人,不要仅仅只是确信它没有任何技术上的疏漏(确实没有),而且还要能够帮助落实一些措施,以期找到最佳途径将WCF的大量内容传授给读者。出于多方面的考虑,包括我想要助朋友一臂之力的想法,我答应了她的请求。
事实证明,我真的对我的选择感到满意,而不仅仅是因为我得以将名字留在本书中。
我希望本书写作精良,她做到了。我希望Michele对WCF的讲解丝丝入扣,她做到了。我没有想到的是,我也深陷其中不能自拔,我逐渐感到,她设计的一步一个脚印的基于操作实例的方法,毫无疑问是最好的方式来向程序设计人员传授WCF之道。这在很大程度上归功于她所采用的叙述方法——简洁、实用、明快。
就像维吉尔(Virgil)引领但丁(Dante)穿过地狱湖那样,Michele也将带领你们遍览WCF,由浅入深,渐入佳境。关注实用和真实的案例,避开神秘莫测的陷阱。假如你像但丁那样在漫漫旅途中一直与向导如影随形,那么,当你浮出水面的时候,就会看到,最好的WCF
已经呈现在你的面前——以及你的客户和顾客的面前——用于构建分布式的、面向对象的通信层。
请尽情享用它吧。当你完成的时候,你将成为WCF专业开发者群体中的一员,这些人能够以自己喜欢的方式来使用WCF。...
Ted Neward
http://www.tedneward.com

【译者序】
从1996年Gartner Group提出SOA概念到现在,已经有十多年了。SOA已经从最初少数预言家在纸上画出的一块理想的饼,渐行渐近,变成了现实的系统。.
SOA不是一种产品,也不是一种技术,而是一种理念,一种愿景;是软件工程和系统架构的一种理想情形,即将业务变更与系统实现分开,在表征业务逻辑的服务之间实现松耦合。可以说,SOA成了构建综合业务系统的一种诸多理想状态的集大成者。
按照SOA的典型层次,一个综合的应用系统,总是从业务建模开始,再映射到服务的描述构建,之后会将服务进行层层的粒度细化,直到最后的系统实现,与数据库系统建立存取关系。应该说,SOA与具体的实现技术是无关的。不过具体到要实现SOA理念的厂家来说,就一定是与技术有关的了。没有厂家会抛弃其现有技术框架,去实现SOA的经典5层结构。因此,几乎所有的厂家都将SOA实现诠释为一种类似中间件的技术。于是,现有的SOA架构就演化成两个核心:服务的描述和解析实现,以及服务间的通信技术。XML被作为描述服务的工具和消息编码的格式,成为了不二的选择。
本书就是在这样的背景下,描述在微软的.NET架构上实现SOA框架的技术基础:WCF。在微软内部,WCF被称为Indigo。事实上WCF的全称是Windows Communication Foundation,它其实是.NET中支持SOA的一个通信架构。在WCF的3个大写字母中,核心是“C”,也就是通信。前面已经讲过,在当前的SOA架构中,就做了两件事情,一件是服务的描述和处理,另一件就是通信机制。
具体到WCF中,这个通信机制就是,通过契约来选定通信过程中所使用的协议,通过建立信道和提供消息流机制来实现客户和服务之间的请求/响应过程。其他相应内容都是围绕着这个中心展开的。有了服务就会谈到寄存,契约约定了协议就需要绑定,为了提高吞吐量就需要并发机制,为了保障通信就必然需要安全性、可靠性和故障处理等。
本书在写作上的最大特点就是,十分注重原理的实践性。通过贯穿全书的lab(操作实例),读者可以一边理解WCF原理一边动手实践。读完本书,基本上就可以动手编程了。..
需要说明的是,本书讲述的是在.NET架构下SOA的核心支撑技术WCF的机制。对于准备在.NET上构建SOA应用系统的开发者来说,本书必不可少。不过对于一般SOA工作者来说,更应该在阅读本书的基础上,进一步广泛地了解其他厂家的相关产品和实现机制,以求更加全面深入地理解SOA架构的精髓。无论如何,在众多技术中,首先阅读理解WCF还是很有益的。
翻译本书是一件艰苦卓绝的工作,尤其是要跨越一个春节和近年来少见的严冬。正是对SOA的热爱和推崇才使得我们在工作之余坚持完成了对本书的翻译,然而时间仓促,理解有限,在此斗胆献上我们的翻译作品,一是为了使阅读原版有困难的读者也有机会了解该书内容,二是为了与业内同仁共同学习和探讨相关技术。
感谢出版社的编辑们,徐定翔、何艳、晓菲和刘美惠都为本书的翻译出版倾注了大量心血,他们时刻鼓励着我们以更大的责任心投入到本书的翻译中。
我们的家人也在此过程中给予了我们更多的亲情、理解和宽容,使得我们能够在温暖的严冬里完成这一翻译作品。
我们作为本书的翻译者,对于本书翻译中的错误负全部责任。而且,我们也认为,能够有这样的机会与业界同仁共同探讨,是极为难得的机会。欢迎读者朋友们给出建议、批评和指正。...
庞引明
侯伯薇

【目录】
序. I
前言 V
第1章:Hello Indigo 1
面向服务的架构 2
WCF服务 12
WCF基本概念 14
从零开始创建服务 20
生成服务和客户代理 31
在IIS中寄存服务 51
公开多个服务端点 60
小结 77
第2章:契约 78
通信协议 79
服务描述 82
WCF契约和串行化 84
服务契约 86
数据契约 102
消息契约 125
串行化的方法 137
消息类型 144
小结 154
第3章:绑定 156
绑定是如何工作的 156
Web服务绑定 164
面向联接的绑定 179
单项和双向通信 193
大型消息传送 211
定制绑定 226
小结 230
第4章:寄存 232
寄存特性 232
ServiceHost 234
自我寄存.. 238
寄存在UI线程中 240
在Windows服务中寄存 256
在IIS 6.0中寄存 273
IIS 7.0和Windows Activation Service 279
选择正确的寄存环境 287
小结 288
第5章:实例化与并发 289
OperationContext 290
实例化 291
并发 314
实例化分流 328
负载平衡及故障转移 333
小结 335
第6章:可靠性 336
可靠会话 336
事务 356
排队调用 382
小结 404
第7章:安全 406
WCF安全概览 407
保护Intranet服务的安全 425
保护Internet服务的安全 435
使用证书 453
建立一个基于请求的安全模型 463
探索联邦安全 479
小结 494
第8章:异常和故障 496
SOAP故障 497
WCF异常处理 499
异常和调试 502
故障契约 510
IErrorHandler 520
小结 528
附录A:设置指南 529
附录B:当ASP.NET遇到CardSpace 550
索引 559
索引中文版... 583

请使用浏览器的分享功能分享到微信等