《WCF全面解析》(上、下册)正式出版
“全书之写印,实系初稿。有时公私琐务猬集,每写一句,三搁其笔;有时兴会淋漓,走笔疾书,絮絮不休;有时意趣萧索,执笔木坐,草草而止。每写一段,自助覆阅,辄摇其首,觉有大不妥者,即贴补重书,故剪刀浆糊乃不离左右。个中甘苦,只自知之。”
在某个阳光明媚的早晨,我在去上班的公交车上翻看岳南先生的《南渡北归》的时候,看到上面这段董作宾描述自己写作《殷历谱》之甘苦的文字,回想起我写作这本书的经历,不禁感慨万千。我无意将《WCF全面解析》自比煌煌巨著《殷历谱》,只是觉得人同此心,这段文字正好描述我写作此书的状态。
《WCF技术剖析(卷1)》(以下称《卷1》)于2009年7月正式出版,在此不久我就开始了《卷2》的创作。对于《卷1》的写作,我还算是游刃有余,但是写作《卷2》的难度是我始料未及的。如果像市面上大部分专著一样只涉及WCF编程,我想《卷2》早在一年之前就已经完成了。但是我在写作之初就没有将本书定位为一本纯粹的WCF编程书籍,而是决心写一本“深入肌理”,对WCF进行“庖丁解牛”式剖析的书籍。在没有任何现成资料可供参考的情况下,我只能通过对源码的分析来了解其底层的实现原理。为了能够确保这部分内容的正确性,我编写了很多的测试程序来证实我的想法。
“探究之深”是本书难以在较短的时间之内交付出版的一个主要原因,而另一个因素则是“涉及之广”。WCF不是微软在Windows平台下的闭门造车,而是在设计之初就考虑到了针对开放标准的支持。《卷2》涉及到太多的WS-*规范,比如“异常处理”一章涉及到SOAP;“元数据”一章涉及到WS-Policy、WS-Transfer、WS-MEX和WSDL;“事务”一章涉及到WS-Coordination和WS-AT;“可靠会话”一章涉及到WS-RM;“传输安全”一章涉及到WS-Security、WS-Trust 、WS-Secure Conversation和WS-Security Policy;“WCF 4.0新特性”一章涉及到WS-Discovery。对于这一系列的WS-*规范,单单从头到尾看一遍都需要花费不少时间,而我已经不太记得自己究竟看多少遍了。
《卷1》的整个内容基本上都围绕着WCF本身,但《卷2》却涉及到不少的背景知识。为了让读者对WCF有一个全面而深刻的了解,我在书中涉及到很多背景知识的介绍。比如“事务”一章中花费了很多文字介绍MSDTC和System.Transactions事务;“并发与限流”一章中有针对同步上下文的介绍;为了让读者能够深入认识可靠会话的实现原理,我将其同TCP协议的机制进行类比;“队列服务”一章中对MSMQ进行了系统的介绍;“传输安全”一章中更是涉及到针对非对称加密以及NTLM和Kerberos认证原理的介绍。
由于写作难度不小,加上写作和资料收集只能在工作之余进行,所以很多次都有中途放弃的念头。很有意思的是,每次在我下定决心放弃写作后没几天总是会收到《卷1》的读者给我的留言,这些留言体现了对《卷1》的肯定,充满了对《卷2》的期待。读者的肯定和期待一次次给了我坚持下去的力量,前后经历了两年的时间终于完成了《卷2》,这算是对读者的交代,也是对我自己的交代。
《卷2》完稿之后我开始为《卷1》的再版进行修订。对于出版后的《卷1》我基本上很少翻看,因为我个人基本上不太喜欢翻看自己写的东西,包括自己写的400多篇博客文章。针对《卷1》的修订让我第一次完整地阅读自己写的东西,经过了写作《卷2》的“折磨”,让我对WCF有了更加深刻的认识,于是我基于对WCF最新的理解开始对《卷1》的内容进行大刀阔斧的修改。虽然《卷1》大体上还是保留着原来的结构,但是内容已经发生了巨大的改变。据我粗略估计,改动内容的比率基本上达到一半。
最后我将《卷2》和修订后的《卷1》给李建忠和吕建伟(阿朱)老师帮忙审阅,李建忠老师建议增加关于WCF REST的内容,于是我在《卷1》中新加了“REST服务”一章。由于新的《卷1》已经难现往日模样,在本书的策划编辑张春雨老师的建议下我决定将原《卷1》和《卷2》作为一个整体分上、下册出版,于是才有了你手中的这本《WCF全面解析》。
内容简介
本书特点
本书读者
推荐序一 [李建忠 祝成科技创始人]
推荐序二 [阿朱 畅销书《走出软件作坊》作者]
媒体评论
《WCF全面解析》(上册)- 目录
《WCF全面解析》(下册)- 目录
《WCF全面解析》-章节内容简介
内容简介
《WCF全面解析》是作者多年潜心研究wcf技术的心血之作,也是这些年来从事wcf开发的经验总结。书如其名,《wcf全面解析》涵盖了wcf几乎所有的知识点,并对其底层框架进行了“庖丁解牛”式的剖析,力求将wcf的整个运行机制完整而清晰地呈现在读者面前。
《WCF全面解析》上册的前四章在对wcf进行总体介绍的基础上,对构成终结点的三要素(地址、绑定和契约)进行了系统说明;随后的两章则着重剖析序列化和消息编码在wcf中的实现;第7、8章讲述了在服务寄宿和操作调用过程中,wcf的服务端和客户端框架分别为我们做了什么;第9、10章将介绍的重点落在实例化、会话和rest服务上面;在最后一章中采用wcf构建了一个具体的电子商务网站vm,它将指导你如何将理论应用于实践。
《WCF全面解析》下册主要涉及一些所谓的“高级”话题,主要包括如何在分布式环境中处理异常(第1章);元数据的导入与导出、发布与获取如何实现(第2章);如何利用wcf对事务的支持将分布式事务引入服务(第3章);如何利用并发与限流机制提高服务的吞吐量和可用性(第4章);如何利用可靠会话机制确保消息的“使命必达”(第5章);如何利用队列服务提供离线通信的支持(第6章);第7、8章主要涉及安全的相关内容,包括传输安全、授权与审核;第9章全景展示wcf服务端和客户端的运行时框架,以及在此基础上的所有扩展可能;最后一章为你带来wcf 4.0几个独立的新特性。
《WCF全面解析》不仅适合尚未接触过wcf,希望尽快入门并进行深入研究的开发人员使用,同样也适合对wcf有一定了解的开发设计人员和架构师阅读。相信不同层次的读者都能从《wcf全面解析:全2册》中找到自己希望了解的部分。
本书特点
如果要说出《WCF全面解析》具有哪些市面上其他WCF图书不具备的特点的话,我觉得可以通过以下三个“注重”来概括。
- 注重原理:“知其然,且知其所以然”,对一项技术实现原理的把握能够帮助你更加有效地利用这项技术。WCF建立在.NET平台下,提供基于托管代码的应用编程接口(API),在编程层面不会太复杂,也很容易入手。但是如果希望通过WCF构建一个具有高性能、高可维护性、高可扩展性的分布式应用,就要求架构师、设计师和开发者对WCF的实现机制,以及面向服务的设计原理具有正确、全面而深入的理解。当然,对于WCF编程的介绍对于任何一本关于WCF的图书都是必需的,《WCF全面解析》也不例外,不过它和那些完全介绍WCF编程的书不同的是,本书中此类内容仅占全部内容的一半左右。
- 注重细节:“细节决定成败”,如果将2/8原则应用到编程领域,它将体现在:花20%的时间编写出80%程序主体,而80%的时间用于编写剩下20%核心程序并纠错和解决Bug。这些Bug的产生往往是由于对细节不够重视所导致的。《WCF全面解析》会介绍一些常被人们忽视而导致产品Bug的细节,这些细节多源自于我这些年来实践的积累和总结。
- 注重实践:“实践出真知”,不断地在具体应用中进行实践是学习WCF最有效的手段。实践是检验真理的唯一标准,通过将所学的WCF知识应用到一个真正的应用之中,才能确保我们掌握的知识的正确性。实践不但可以巩固我们的所学,还会让我们意识到不足。《WCF全面解析》在每一章节都会提供一系列的实例演示,读者可以单独下载这163个实例的源代码。
本书读者
本书的内容不仅适合尚未接触过WCF,希望尽快入门并进行深入研究的开发人员,同样适合对WCF具有一定了解的开发设计人员和架构师。相信不同层次的读者都能从本书中找到自己希望了解的部分。阅读本书的读者需要对.NET,包括对C#和.NET Framework具有一定的了解。如果读者具备了DCOM、Enterprise Library Service、.NET Remoting、Web Service、MSMQ及SOA相关的基础,对阅读此书尽快掌握WCF将大有裨益。
推荐序一 [李建忠 祝成科技创始人]
由于从事IT技术教育行业,我对金楠在技术教育传播方面的付出有着格外一层敬意。对国内IT技术出版历史有所了解的朋友应该不会忘记,我们曾经的IT技术出版是多么的贫瘠和劣质。大量的非专业人士在翻译、编著一些粗制滥造的图书来“教育”从事一线IT技术工作的专业人士,一如食品行业的“三聚氰胺”和“地沟油”,侵蚀着技术人员的知识供应系统——这段荒诞的历史,是中国IT行业一段时间以来技术水平低下的一个重要原因。
我一直有一个观念:IT教育、出版、传播必须由一线专业的技术人来做内容的生产者——其实这是一个常识,可惜的是在我们这个杂草丛生的时代,这些常识常常被忘记。
所幸,每个行业总有一些进步的力量在推动改变。金楠就是推动国内技术教育进步力量的一分子。首先,金楠是一位工作在一线的优秀的WCF技术人员,这符合我对阅读技术图书的第一个要求和期待;其次,金楠的写作文笔、专业责任也给人以充分信任,这在金楠的文字中读者可以体会。
另一方面,我也相信读者的觉醒是中国技术出版环境改善的土壤基础。“阅读图书前仔细调研作译者,了解作译者的背景和经验,看作译者是否持续地在某一领域有长期积累和耕耘,大家用买书作为选票来鼓励那些优秀、负责任的作译者……”这是我在很多场合鼓动“读者觉醒”的“启蒙言论”。
我相信随着觉醒的读者越来越多,像金楠这样的教育同道越来越多,假以时日,国内的技术教育和出版环境就会得到大幅度改善,中国技术产业也会有质的飞跃。
这是我为金楠的呕心力作《WCF全面解析》出版感到欣喜的原因。了解WCF的朋友我想很多都知道“国内有个叫蒋金楠,网名Artech的在搞WCF”——这也是我对金楠的初始印象。通过接触金楠的技术博客,以及金楠09年的作品《WCF技术剖析》,我以及我的技术团队都曾从金楠那里得到过技术营养。作为继DCOM、Remoting、Web Services、Enterprises Services之后微软的分布式组件通信与服务框架,WCF无疑是微软技术平台构建网络应用的首选。特别是在添加了REST支持之后,WCF在面向新一代移动互联应用方面也成为很多技术架构的选择。金楠的《WCF全面解析》全面剖析了构建WCF应用所需要的各方面技术,剥丝抽茧,由浅入深,也是我非常欣赏的技术讲述方式。我相信《WCF全面解析》一书是搞WCF朋友的案头必备。
李建忠,祝成科技与Boolan.com创始人,兼高级讲师,国内知名.NET技术专家。对于技术教育有异乎寻常的热情,由于在.NET社区的特殊贡献,于2010年获微软区域技术总监荣誉称号。专注于面向对象、.NET、C++、设计模式。微软MSDN中国C++、.NET、设计模式专栏讲师。四度连任微软最有价值专家(MVP);微软MSDN中文网络广播最受欢迎讲师。译作:《Microsoft .NET框架程序设计(修订版)》、《Effective C#中文版》。曾成功培训过西门子、SAP、HP、CA、腾讯、东软、诺基亚等著名企业。
推荐序二 [阿朱 畅销书《走出软件作坊》作者]
组件式开发是每个开发人员的梦想。前有CORBA、COM+、EJB前赴后继,进化到如今又演变成了SOA。而微软体系内的SOA解决方案就是WCF。微软的技术似乎入门、易用性一直都不错,VS.NET随便一个向导就能产生一个WCF应用代码骨架。而且微软一直号称底层他们给搞定,大家只要专注业务实现即可。但事实真的如此吗?如果你曾经经历了过往的组件式开发技术在商用产品中的实践,那么你就会知道,不了解底层机理,你做的东西只能作为原型,一到真实的商用生产环境中接受数据、并发、事务、安全、网速的考验,不足立马显现。这也就是组件技术经历了多种技术,流行多年,但真正能在市面上看到的成功的组件式应用软件却少之甚少的原因。
但我们仍然不乏梦想,组件式开发仍然是我们每个开发人员的追求境界。我们想做好它掌控它,怎么入手?庞杂的技术规范和技术演进,又杂合了各家厂商的实现不同、理念不同,让我们乱花迷眼。我经历了COM时代,一直把Don Box的《COM本质论》奉为我的指路明灯。在SOA时代,我想学习WCF,我曾经购买过大量关于SOA和WCF的书籍,但能把SOA机理和WCF这种特定厂商实现的技术讲得如《COM本质论》一样完美透彻的,那必属Artech这本经过自己深研、实践而著作成功的心血结晶——《WCF全面解析》。
Artech对WCF的研究历来已久,早在2009年就已经出版了广受欢迎的《WCF技术剖析》(卷1),因为我关注Artech的博客已经很久,所以卷1一出版我就赶快入手了一本。很快这本书就成为我学习WCF的主要读物,每每重读都有新的启发和认识。但卷1对WCF的高级技术如事务、异常保护、元数据、可靠会话、传输安全等主题并没有谈得很透彻,所以Artech又专门著作了卷2来专题论述。WCF技术发展日新月异,回过头来看卷1内容,很多细节已经发生了改变,而且一些新的技术特性也需要增补,Artech对WCF技术的认识和实践在这么多年一线研发工作中更深入了一层,所以Artech决定修订卷1,并且和卷2构成更完整、更流畅、更清晰的体系,两卷合并出版,这就是《WCF全面解析》的来由。这本书历经5年打磨,绝对和它的名字“全面解析”名副其实。能读到此书,幸哉!
国内在技术图书这个领域大多崇拜国外翻译的书籍,当然也有国内害群之马不在一线开发实践工作就大讲技术,厚厚的一本书尽贴的是大段完整的Demo代码和Next Step之类的截图。但卷1已经用事实证明,这本书都是干货。尽管这次卷1、卷2合二为一,厚厚一个大部头容易让人吓一跳,但这确实是因为WCF这个体系太庞大,要想真正把它层层解析透彻,就需要这么多的笔墨力量。
而且Artech有着程序员惯有的严谨、细致、踏实、追本求源、动手验证、力求完美代码的精神品质。所以此书的字里行间也处处透着这种实践、实证、机理的氛围。能把如此复杂、庞大的技术体系讲明白,这需要有非常高超的文字架构能力和描述能力。但Artech层层剖析,从入门实例到技术规范原理,再到WCF实现与代码验证,Artech这种写作风格非常符合开发人员的理解习惯,而Artech本身就是一直战斗在一线的开发人员,因此这就是一本开发人员写给开发人员的书。
如果你想成为SOA和WCF方面的专家,那么这本书就是你的最好法宝。想想你作为专家而获得的回报,那么你对这本书购买所付出的,简直是太值了。
阿朱,本名吕建伟,畅销书《走出软件作坊》作者,CSDN名博,现任深圳明源软件CTO。10年以上商业软件从业经验,10余年来一直专注行业管理信息化领域,7年职业经理人生涯,在商业分析、产品体系规划、研发人才体系搭建、研发过程管理、技术架构、贯通售前/研发/售后方面多有经验。
媒体评论
我经历了COM时代,一直把Don Box的《COM本质论》奉为我的指路明灯。能把SOA机理和WCF这种特定厂商实现的技术讲得如《COM本质论》一样完美透彻的,那必属Artech这本经过自己深研、实践而著的心血结晶——《WCF全面解析》。如果你想成为SOA和WCF方面的专家,那么这本书就是你的最好法宝。想想你作为专家而获得的回报,那么你对这本书购买所做的付出,那简直是太值了。
——《走出软件作坊》作者 明源软件CTO 阿朱
金楠是一位工作在一线的优秀的WCF技术人员,这符合我对阅读技术图书的第一个要求和期待。其次,金楠的写作文笔、专业责任也给人以充分信任,这在金楠的文字中读者可以体会。这本《WCF全面解析》全面剖析了构建WCF应用所需要的各方面技术,剥丝抽茧,由浅入深,也是我非常欣赏的技术讲述方式。我相信《WCF全面解析》一书是搞WCF朋友的案头必备。
——祝成科技与Boolan.com创始人 .NET技术专家 李建忠
知识全面、论述准确、逻辑严密是本书的特点。这是一本各层次开发人员都可以从中受益的书:对于初、中级开发人员,它可以帮助你获得WCF全方位的知识,系统地梳理WCF的知识结构,提升动手实践能力;对于高级开发人员,它既可以有效弥补你WCF相关知识中的盲点,又可以让你在自己熟悉的知识点上领略作者的看法和理解。
——资深架构师 曲春雨