WCF技术内幕(china-pub首发)
基本信息
编辑推荐
适合有一定WCF基础知识和开发经验,并且想学习深入学习WCF的开发人员、架构师和测试人员
提供了示例代码去阐述WCF技术,便于开发人员深入学习
推荐阅读
内容简介回到顶部↑
本书分为3部分。第1部分介绍WCF,描述了面向服务应用系统(SOA)的原则,介绍了主要的WCF子系统,描述了这些子系统之间如何交互。第Ⅰ部分主要包括面向服务、消息的概念,以及WCF架构等3部分内容。从高层次上说,WCF由两个基本的层组成:通道层和服务模型层。第Ⅱ部分“WCF通道层”和第Ⅲ部分“WCF服务模型层”分别描述了通道层和服务模型层。第Ⅱ部分首先描述了消息类型,然后描述了通道和通道管理器。第Ⅲ部分涵盖绑定、契约、分发器和客户端。第Ⅱ部分和第Ⅲ部分的每个章节剖析了各自相关主题的重要类型,并且提供了示例代码去阐述这些知识。
作译者回到顶部↑
目录回到顶部↑
第ⅰ部分 wcf介绍 1
第1章 蓝月亮 3
1.1 普遍需求 3
1.2 普遍概念 4
1.3 商业示例 7
1.4 介绍wcf 8
1.4.1 它不只是另一个api 9
1.4.2 wcf总览 9
1.4.3 wcf特性 11
1.5 本章小结 16
第2章 面向服务 17
2.1 快速定义面向服务 18
2.2 理解消息 18
2.3 消息参与者 19
2.3.1 初始发送者 20
2.3.2 中介者 21
2.3.3 最终接收者 22
2.4 消息剖析 23
2.4.1 消息信封 24
2.4.2 消息头 24
第1章 蓝月亮 3
1.1 普遍需求 3
1.2 普遍概念 4
1.3 商业示例 7
1.4 介绍wcf 8
1.4.1 它不只是另一个api 9
1.4.2 wcf总览 9
1.4.3 wcf特性 11
1.5 本章小结 16
第2章 面向服务 17
2.1 快速定义面向服务 18
2.2 理解消息 18
2.3 消息参与者 19
2.3.1 初始发送者 20
2.3.2 中介者 21
2.3.3 最终接收者 22
2.4 消息剖析 23
2.4.1 消息信封 24
2.4.2 消息头 24
译者序回到顶部↑
WCF全称Windows Communication Foundation,是Microsoft为构建面向服务的应用提供的分布式通信编程框架,是.NET Framework的重要组成部分。使用该框架,开发人员可以构建跨平台、安全、可靠和支持事务处理的企业级互联应用解决方案。
自WCF框架推出以后,国内外陆续出现了10多本有关WCF的书籍,但是在众多的图书里选择出来经典的书籍出来学习也是一件非常难的事情。如何学习WCF,如何更深入地学习WCF?应该是很多读者面对的问题。我在之前写过一篇《WCF学习经验分享,如何更好地学习WCF》的文章,对WCF学习涉及的问题做过详细系统的介绍。
在WCF学习书籍的选择中,我首推的就是《Programming WCF Services》(中文版的名称为《WCF服务编程》),Juval Lowy著。这本书是非常经典的WCF初中级教程,内容非常详细,知识点也很系统。要深入学习WCF,首选的书籍就是这本Justin Smith先生所著《Inside Microsoft Windows Communication Foundation》。在世界范围内,这是唯一一本深入介绍WCF框架底层机制的并得到广泛认可的著作,属于WCF的高级教程。为了延续Inside系列书籍的风格,该书中文名字,定为《WCF技术内幕》(COM的经典著作《Inside COM》杨秀章翻译,《COM技术内幕》)。
国内外很多WCF书籍都是教您如何使用WCF开发程序,而这本书告诉您WCF框架的底层原理和实现机制!真正深入到内部介绍WCF的基础框架。对此有个形象的类比:很多WCF书籍是在介绍如何驾驶飞机,而这本书则是在告诉您雷达、航空电子等设备的运行原理,以及它们如何组装在一起成为一个完整的飞机。
我非常荣幸能够翻译《WCF技术内幕》并把它介绍给国内的技术爱好者。希望本书可以对国内的技术人员的学习有所帮助。
1. 面向读者
这本书不适合WCF的初级开发者或刚学习.NET Framework编程的开发者。这是我必须提醒读者的,虽然我很想给大家推荐这本书,但是并不希望您在学习中走任何弯路。这本书适合有一定WCF基础知识和开发经验,并且想学习深入学习WCF的开发人员、架构师和测试人员。
如果还有关于WCF学习的疑问,可以参考我博客里的《WCF学习经验分享,如何更好地学习WCF》一文。
2. 本书结构
本书分为3部分。第一部分(WCF介绍)介绍了面向服务的基本概念,以及面向服务应用系统(SOA)的原则。在此基础上对WCF框架做了简单的介绍。第二部分(WCF通道层)详细了消息类型、通道和通道管理器的概念。第三部分(WCF服务模型层)涵盖了绑定、契约、分发器和客户端的内容。第二和第三部分的每个章节剖析了各自相关主题的重要类型,并且提供了大量例子代码,通过实例去阐述这些知识。总体来说,本书对基本概念到WCF框架的核心机制和运行原理都做了深入、系统的介绍。
3. 问题和建议
由于本人翻译水平有限,难免出现翻译错误。希望多多包涵,并指正错误。如果您有关于本书的问题、批评或建议,可以到我的博客或个人网站留言交流。我的博客的网址:http://www.cnblogs.com/frank_xl。个人网站:www.frankxulei.com。
4. 致谢
在Justin Smith 、微软的Ben Ryan、陈芃先生、O’Reilly 陈磊女士的帮助下,这本书得以顺利出版,非常感谢他们的帮助。另外也感谢参与本书审稿的朋友:王进祥、时均帅、邓天奎、朱伟、董琦和徐扬。他们的帮助使得本书更加的出色。
另外,特别感谢在本书的翻译过程中给予帮助的Justin Smith先生。
同时也把此书,献给我平凡而伟大的父母。
也祝福大家的父母身体安康,平安快乐。
徐雷(Frank Xu Lei)
2010-5-23 于上海
自WCF框架推出以后,国内外陆续出现了10多本有关WCF的书籍,但是在众多的图书里选择出来经典的书籍出来学习也是一件非常难的事情。如何学习WCF,如何更深入地学习WCF?应该是很多读者面对的问题。我在之前写过一篇《WCF学习经验分享,如何更好地学习WCF》的文章,对WCF学习涉及的问题做过详细系统的介绍。
在WCF学习书籍的选择中,我首推的就是《Programming WCF Services》(中文版的名称为《WCF服务编程》),Juval Lowy著。这本书是非常经典的WCF初中级教程,内容非常详细,知识点也很系统。要深入学习WCF,首选的书籍就是这本Justin Smith先生所著《Inside Microsoft Windows Communication Foundation》。在世界范围内,这是唯一一本深入介绍WCF框架底层机制的并得到广泛认可的著作,属于WCF的高级教程。为了延续Inside系列书籍的风格,该书中文名字,定为《WCF技术内幕》(COM的经典著作《Inside COM》杨秀章翻译,《COM技术内幕》)。
国内外很多WCF书籍都是教您如何使用WCF开发程序,而这本书告诉您WCF框架的底层原理和实现机制!真正深入到内部介绍WCF的基础框架。对此有个形象的类比:很多WCF书籍是在介绍如何驾驶飞机,而这本书则是在告诉您雷达、航空电子等设备的运行原理,以及它们如何组装在一起成为一个完整的飞机。
我非常荣幸能够翻译《WCF技术内幕》并把它介绍给国内的技术爱好者。希望本书可以对国内的技术人员的学习有所帮助。
1. 面向读者
这本书不适合WCF的初级开发者或刚学习.NET Framework编程的开发者。这是我必须提醒读者的,虽然我很想给大家推荐这本书,但是并不希望您在学习中走任何弯路。这本书适合有一定WCF基础知识和开发经验,并且想学习深入学习WCF的开发人员、架构师和测试人员。
如果还有关于WCF学习的疑问,可以参考我博客里的《WCF学习经验分享,如何更好地学习WCF》一文。
2. 本书结构
本书分为3部分。第一部分(WCF介绍)介绍了面向服务的基本概念,以及面向服务应用系统(SOA)的原则。在此基础上对WCF框架做了简单的介绍。第二部分(WCF通道层)详细了消息类型、通道和通道管理器的概念。第三部分(WCF服务模型层)涵盖了绑定、契约、分发器和客户端的内容。第二和第三部分的每个章节剖析了各自相关主题的重要类型,并且提供了大量例子代码,通过实例去阐述这些知识。总体来说,本书对基本概念到WCF框架的核心机制和运行原理都做了深入、系统的介绍。
3. 问题和建议
由于本人翻译水平有限,难免出现翻译错误。希望多多包涵,并指正错误。如果您有关于本书的问题、批评或建议,可以到我的博客或个人网站留言交流。我的博客的网址:http://www.cnblogs.com/frank_xl。个人网站:www.frankxulei.com。
4. 致谢
在Justin Smith 、微软的Ben Ryan、陈芃先生、O’Reilly 陈磊女士的帮助下,这本书得以顺利出版,非常感谢他们的帮助。另外也感谢参与本书审稿的朋友:王进祥、时均帅、邓天奎、朱伟、董琦和徐扬。他们的帮助使得本书更加的出色。
另外,特别感谢在本书的翻译过程中给予帮助的Justin Smith先生。
同时也把此书,献给我平凡而伟大的父母。
也祝福大家的父母身体安康,平安快乐。
徐雷(Frank Xu Lei)
2010-5-23 于上海
前言回到顶部↑
服务是现代软件架构的主要组成部分。WCF(Windows Communication Foundation)是为Microsoft Windows系统构建面向服务系统的平台。WCF编写的服务不仅与其他软件厂商的服务交互(例如,IBM、BEA和Novell),而且WCF为行业标准的发展预留了足够的空间。对于传输,WCF支持TCP/IP、HTTP、Microsoft消息队列(MSMQ)和命名管道。另外,WCF同样支持一系列WS-*(读作“WS-星”)规范,例如WS-Addressing、WS-ReliableMessaging(WS-RM)、WS-AtomicTransaction(WS-AT)、WS-Security、 WS-SecureConversation、WS-Trust和WS-Federation等。使用WCF可以收发SOAP消息和POX(Plain Old XML)消息。将来,微软会扩展WCF,使其可以支持新的传输、协议和消息结构,把WCF视为服务的IO系统。尽管将来无法确定,但是可以肯定地说,在可预见的将来,微软不会使用其他技术取代WCF。大多数产品,比如Microsoft BizTalk Server和Microsoft Windows Live Server都完全兼容WCF,这就是很好的证明。
本书的目让就是让读者具备使用WCF设计、开发和维护服务必要的知识。在我看来,这些任务超出了WCF编程模型的知识范围。成功使用WCF须理解服务背后的原则、WCF服务编程模型和WCF基础结构。耦合由来已久,并不是新的概念。在面向对象(OO)变得流行以后,从面向过程转变到面向对象的开发者和架构师需要了解的知识,远不止编程语言的语法这样简单。如果面向过程的开发者在不了解面向对象的情况下开始使用现代的编程语言,则他们只能使用新语言来创建面向过程的应用。虽然他们可以编译和运行这些代码,但是不可能使用面向对象语言的多种特性。这就是本人对于不能体会面向服务(SO)的优势而去学习WCF的开发者的看法。
有些人认为学习这种方法是在浪费时间,认为WCF团队已经从正常的编程模型里成功抽象出消息底层架构,就没有必要去学习底层的面向服务(SO)的模式,或者WCF如何实现这些模式。我完全不认同这种观点。虽然WCF团队的这种抽象可以更快地开发应用系统,但是它没有解除开发者和架构师转到面向服务(SOA)及理解WCF内部如何工作的任务。正如成功接受C++或java这样的面向对象语言需要开发者转变思维方式一样,WCF的学习者也要从面向组件转变到面向服务(SO)去提升自己的认知。如果不能转换思维,将会面对诸多问题。简单地编写、编译、运行WCF程序只是万里长征的一小步。从长远来看,理解WCF技术内幕和新的编程模式非常重要。
即使不理解面向服务架构(SOA)的特征,也应该知道WCF基础结构。换句话说,应该了解我们的平台。通用语言运行时(CLR)对于这种情况提供了支持性的事实。CLR团队的工作非常出色,他们从开发者那里抽象出了垃圾收集器和JIT编译器,从而在不了解或很少了解这些子系统如何工作的情况下,就可以写出Microsoft .NET Framework应用程序。比如,迁移到C#的C++开发者,在不知道垃圾收集器的情况下,会本能地为每个声明的类型增加一个finalizer,不知不觉地就会增加分配的时间和这些对象的声明周期。对于大多数C++开发者来说,简单说一句“不要这样做”是不够的,他们还要知道这是为什么。从技术上来说,为一个类型增加一个finalizer不是bug,但是它确实是许多书籍和培训课程要耗费时间强调的东西。
开发者了解WCF基础结构可以避免在WCF上浪费不必要的精力,并且可以调整他们的程序功能去满足业务需求。例如,在构造函数里改变绑定的可靠消息参数,可以动态地调节各个终结点之间的消息编排。WCF团队已抽象出这些功能并部分通过绑定暴露出来。这种消息编排是必要的,有时只有理解了消息编排的开发者,才能正确决定何时使用些特性。进一步讲,想调试一个使用可靠消息的程序,就必须掌握可靠消息的配置。
我希望本书可以在面向服务(SO)的关键概念、WCF服务编程模型和WCF基础结构之间取得平衡,能提供一个从内部认识WCF的严谨视野,让开发者可以设计、构建、调试、维护可扩展的和可靠的分布式应用系统。
面向读者
本书适合那些想学习如何设计、编写或者测试WCF分布式应用的架构师、开发人员和测试人员。本书前面一些章节对想深入学习或评估WCF的商业决策者也有帮助。本书不适合初级开发者或刚学习.NET Framework编程的开发者。倘若如此,我推荐你在阅读本书之前先阅读Jeffrey Richter的《CLR via C#》(Microsoft Press,2006)或Jeff Prosise的《Programming Microsoft.NET》(Microsoft Press,2002)。此外,如果能熟悉一些分布式应用系统开发,也会有所帮助,但这不是必要条件。
本书结构
本书分为3部分。第1部分介绍WCF,描述了面向服务应用系统(SOA)的原则,介绍了主要的WCF子系统,描述了这些子系统之间如何交互。第1部分包括关于面向服务、关于消息的概念,以及关于WCF架构等3章。从高层次上说,WCF由两个基本的层组成:通道层和服务模型层。第2部分“WCF通道层”和第3部分“WCF服务模型层”分别描述了通道层和服务模型层。第2部分首先描述了消息类型,然后描述了通道和通道管理器。第3部分涵盖绑定、契约、分发器和客户端。第2部分和第3部分的每个章节剖析了各自相关主题的重要类型,并且提供了例子代码去阐述这些知识。总体来说,本书将带领读者学习基本概念到WCF核心机制,然后到WCF主要的编程接口(API)等内容。换句话说,本书对WCF进行了彻底的剖析。
示例代码和系统需求
本书所有讨论的例子代码都可以在本书附录的网址中下载:
http://www.microsoft.com/mspress/companion/9780735623064
微软出版社在下列地址提供了书籍的后续支持服务:
http://www.microsoft.com/learning/support/books/
本书展示的代码为.NET Framework 3.0所写。安装.NET Framework 3.0及其需求在此网址:
http://www.microsoft.com/downloads/details.aspx?displaylang=en&FamilyID=10CC340B-F857-4A14-83F5-25634C3BF043
问题和评论
如果你有任何关于此书的评论、问题或想法,请通过Email联系微软出版社:mspinput@microsoft.com,或者通过信件直接与微软出版社《WCF技术内幕》的编辑联系,地址是:Redmond,WA 98052-6399。请注明在之前的网站中未能提供支持服务的软件产品名称。
本书的目让就是让读者具备使用WCF设计、开发和维护服务必要的知识。在我看来,这些任务超出了WCF编程模型的知识范围。成功使用WCF须理解服务背后的原则、WCF服务编程模型和WCF基础结构。耦合由来已久,并不是新的概念。在面向对象(OO)变得流行以后,从面向过程转变到面向对象的开发者和架构师需要了解的知识,远不止编程语言的语法这样简单。如果面向过程的开发者在不了解面向对象的情况下开始使用现代的编程语言,则他们只能使用新语言来创建面向过程的应用。虽然他们可以编译和运行这些代码,但是不可能使用面向对象语言的多种特性。这就是本人对于不能体会面向服务(SO)的优势而去学习WCF的开发者的看法。
有些人认为学习这种方法是在浪费时间,认为WCF团队已经从正常的编程模型里成功抽象出消息底层架构,就没有必要去学习底层的面向服务(SO)的模式,或者WCF如何实现这些模式。我完全不认同这种观点。虽然WCF团队的这种抽象可以更快地开发应用系统,但是它没有解除开发者和架构师转到面向服务(SOA)及理解WCF内部如何工作的任务。正如成功接受C++或java这样的面向对象语言需要开发者转变思维方式一样,WCF的学习者也要从面向组件转变到面向服务(SO)去提升自己的认知。如果不能转换思维,将会面对诸多问题。简单地编写、编译、运行WCF程序只是万里长征的一小步。从长远来看,理解WCF技术内幕和新的编程模式非常重要。
即使不理解面向服务架构(SOA)的特征,也应该知道WCF基础结构。换句话说,应该了解我们的平台。通用语言运行时(CLR)对于这种情况提供了支持性的事实。CLR团队的工作非常出色,他们从开发者那里抽象出了垃圾收集器和JIT编译器,从而在不了解或很少了解这些子系统如何工作的情况下,就可以写出Microsoft .NET Framework应用程序。比如,迁移到C#的C++开发者,在不知道垃圾收集器的情况下,会本能地为每个声明的类型增加一个finalizer,不知不觉地就会增加分配的时间和这些对象的声明周期。对于大多数C++开发者来说,简单说一句“不要这样做”是不够的,他们还要知道这是为什么。从技术上来说,为一个类型增加一个finalizer不是bug,但是它确实是许多书籍和培训课程要耗费时间强调的东西。
开发者了解WCF基础结构可以避免在WCF上浪费不必要的精力,并且可以调整他们的程序功能去满足业务需求。例如,在构造函数里改变绑定的可靠消息参数,可以动态地调节各个终结点之间的消息编排。WCF团队已抽象出这些功能并部分通过绑定暴露出来。这种消息编排是必要的,有时只有理解了消息编排的开发者,才能正确决定何时使用些特性。进一步讲,想调试一个使用可靠消息的程序,就必须掌握可靠消息的配置。
我希望本书可以在面向服务(SO)的关键概念、WCF服务编程模型和WCF基础结构之间取得平衡,能提供一个从内部认识WCF的严谨视野,让开发者可以设计、构建、调试、维护可扩展的和可靠的分布式应用系统。
面向读者
本书适合那些想学习如何设计、编写或者测试WCF分布式应用的架构师、开发人员和测试人员。本书前面一些章节对想深入学习或评估WCF的商业决策者也有帮助。本书不适合初级开发者或刚学习.NET Framework编程的开发者。倘若如此,我推荐你在阅读本书之前先阅读Jeffrey Richter的《CLR via C#》(Microsoft Press,2006)或Jeff Prosise的《Programming Microsoft.NET》(Microsoft Press,2002)。此外,如果能熟悉一些分布式应用系统开发,也会有所帮助,但这不是必要条件。
本书结构
本书分为3部分。第1部分介绍WCF,描述了面向服务应用系统(SOA)的原则,介绍了主要的WCF子系统,描述了这些子系统之间如何交互。第1部分包括关于面向服务、关于消息的概念,以及关于WCF架构等3章。从高层次上说,WCF由两个基本的层组成:通道层和服务模型层。第2部分“WCF通道层”和第3部分“WCF服务模型层”分别描述了通道层和服务模型层。第2部分首先描述了消息类型,然后描述了通道和通道管理器。第3部分涵盖绑定、契约、分发器和客户端。第2部分和第3部分的每个章节剖析了各自相关主题的重要类型,并且提供了例子代码去阐述这些知识。总体来说,本书将带领读者学习基本概念到WCF核心机制,然后到WCF主要的编程接口(API)等内容。换句话说,本书对WCF进行了彻底的剖析。
示例代码和系统需求
本书所有讨论的例子代码都可以在本书附录的网址中下载:
http://www.microsoft.com/mspress/companion/9780735623064
微软出版社在下列地址提供了书籍的后续支持服务:
http://www.microsoft.com/learning/support/books/
本书展示的代码为.NET Framework 3.0所写。安装.NET Framework 3.0及其需求在此网址:
http://www.microsoft.com/downloads/details.aspx?displaylang=en&FamilyID=10CC340B-F857-4A14-83F5-25634C3BF043
问题和评论
如果你有任何关于此书的评论、问题或想法,请通过Email联系微软出版社:mspinput@microsoft.com,或者通过信件直接与微软出版社《WCF技术内幕》的编辑联系,地址是:Redmond,WA 98052-6399。请注明在之前的网站中未能提供支持服务的软件产品名称。







点击看大图







加载中...
