《WCF技术剖析(卷1)》推荐序
Windows Communication Foundation (WCF)是用来在不同应用间进行互通信的一个编程框架,它是.Net Framework中偏重于通信的重要组成部分。原代码名为Indigo的这个编程框架,在其Beta2 版本正式更名为WCF,于2006年12月作为.Net Framework 3.0的四套API之一,一起发布。
从Native Win32到Managed的世界,应用进程间的通信机制一直是开发者最为关注的方面,在.Net Framework 2.0(2005年11月发布)以及以前的CLR版本中,微软提供了若干套相互分开的APIs,来支持应用间的互通信:有相对基础的Managed Socket机制;有可为二进制优化而设计的.Net Remoting(同时支持TCP/HTTP/Pipline);有可支持事务的通信机制Distributed Transactions;还有为使互操作能力最大化而设计的Soap-based通信机制XML Web Services;也有可以与老式遗留系统(COM/COM+/MTS等)异步通信机制Message Queues。由于这些这种各样的通信机制的设计方法不同,而且彼此间也有重叠性,对于开发者来说,不同的选择需要学习掌握不同的程序设计模型,非常的不方便。另外SOA(Service-Oriented Architecture)也开始盛行,随着技术的推进,微软重新审视了.Net中的这些通信机制,设计实现了一个统一化的通信编程开发模型,这就是WCF,对.Net平台上的数据通信提供了最基本最富有弹性和一致性的基础设施。
WCF是被按照SOA的架构原则而设计的分布式计算基础环境,在其上开发人员可以实现各种Services提供给客户端消费者来调用。WCF提供了各种各样的基础结构来最大程度地为开发人员提供方便性和灵活性,快速有效地构建Web Service应用。
WCF的魅力除了来自于它为我们开发人员所提供的模型和基础外,还来自于它自身的设计和实现。记得,当第一次了解到WinFx中Indigo的使命时,就对它充满了期待,同时也有几分的悬疑;当2002年得知Don Box加入微软负责Indigo的架构时,悬疑彻底被转化为更多的期待,更加关注它每个版本的成长,到2006年WCF随.Net 3.0发布时,呈现在我们面前的WCF堪称经典。其中恰到好处的抽象、分层和模块关系,简妙高效的运行时模型与框架机理,以及各部分丰满实在的内在实现,还有它相当彻底的可扩展性设计,都是我们学习架构设计的绝佳范本。可以说,WCF是微软SOA思维的第一轮近乎完美的演绎。自WCF发布以来,它迅速成为微软技术体系下企业级应用开发的首选平台,时间证明了它在微软SOA战略中的基石地位。
国内WCF的应用正稳步成长中,其中一些WCF技术先行者对广大社区的带动和推进作用是不可忽略的。本书的作者蒋金楠(Artech)就是其中走在前面的一位。他在博客园中关于WCF的博文成为许多WCF开发人员的第一手学习资料。
这里还要说一个小故事。去年,和TerryLee还有武汉博文的编辑朋友一起小聚,其中谈到技术写作,我向两位谈了自己关于“WCF三部曲(应用实践篇、技术内幕分析篇和扩展篇)”的写作计划,编辑朋友告诉我已经有作者在WCF上先期开始了,我马上就猜到了是Artech。随后通过TerryLee联络得知,Artech的书稿已经完成近半了。在拿到了Artech 新书的目录稿后,基于我对Artech博文写作的判断,我大胆做了决定,暂时搁置自己WCF首篇的写作计划,转而期待Artech新书的完稿。
直到最近看了Artech的整部书稿,通篇读后的感觉,书如己出,不亚于当年得知Don Box去了微软负责Indigo架构的消息时的感觉,事实证明,我当时搁置写作计划的决定是正确的。
知识结构全面、论述准确逻辑严密是本书的写作特点,是一本各个层次开发人员都可以从中受益的书:对于WCF的初、中级开发人员,这本书可以帮助你获得WCF全方位的知识,全面系统地帮你梳理关于WCF的知识结构,提升动手实施能力;对于WCF的高级开发人员,这本书即可以有效弥补你WCF相关知识结构的中盲点,又可以领略关于自己熟悉知识点的来自作者的看法和理解。
当然,读完本书,也不是完全没有疑惑,我最大的疑惑就是本书含有“卷一”字样的书名,难道这又是一个暗示?暗示我又要考虑搁置我关于WCF三部曲后续两篇的写作计划?亦或是可能的合作机会?我当然希望是后者,不过无论是哪一个,显然都是很值得我期待的!
资深架构师 曲春雨
2009年6月 于北京