在我还在试图将“Grok(神入)”这个词添加进每个人的主流词汇表时(参看我第1本书Professional SQL Server 2005 XML中的介绍),我遇到了在当时还被称为WinFX的.NET Framework 3.0。此后不久,我参加了一个当地的MSDN活动。在该活动中,展现了.NET Framework 3.0的一些新技术,例如,Windows Presentation Foundation和Windows通信基础(Windows Communication Foundation,WCF)。看到这些新技术时,我几乎无法控制我的情绪。 对Microsoft来说,SOA(Service-Oriented Architecture,面向服务体系结构)是一个重要的概念。问题在于,过去对SOA的定义相当模糊,但是Microsoft竭力阐述清楚这个概念。SOA并不仅仅是一个简单的服务集,还是用于提供正确服务的策略、架构和实践。 虽然Web服务是个很好的开始,但是SOA可以帮助传递Web服务应该提供的敏捷的业务和灵活的IT。此时就涉及到Windows通信基础(WCF)。Windows通信基础是创建和发布连接应用程序的平台,从一开始,设计和开发的分布式系统技术就是为了解决许多SOA问题的。而Windows通信基础就是当前分布式系统技术的合成。 0.1 本书读者对象 想要学习WCF以及如何在自己的环境中利用WCF的开发人员可以阅读本书。同样,对于至少已经了解或者使用过WCF,并想要进一步钻研该技术——了解WCF提供的功能以及WCF如何增强当前应用程序——的读者来说,本书也是适用的。 对.NET Framework及其相关技术(例如,Web服务和WS-*规范)的良好理解对阅读本书很有帮助,但这却不是必要条件。如果阅读本书前您曾经使用过Web服务,那么理解WCF肯定会十分简单;但是如果您没有使用过Web服务,也无需过于担心。 0.2 本书主要内容 本书集中介绍3个方面的内容。首先也是最重要的,本书讨论了面向服务体系结构(Service-Oriented Architecture,SOA),并且介绍了WCF。这是本书的第Ⅰ部分,解释了SOA是什么,以及WCF如何满足SOA的许多要求。本书第Ⅱ部分跳到了WCF,首先阐述了WCF的基础并解释了WCF的核心组成。然后更进一步,讨论了更高级的话题,如安全和互操作性。本书第Ⅲ部分集中在WCF的管理话题上,包括托管选项和部署。 0.3 本书结构 本书可分解为如下结构: ● 第Ⅰ部分——WCF入门 ● 第1章——“WCF概述”。本章讨论了SOA及其用途,以及WCF如何解决这些需求。 ● 第2章——“WCF概念”。本章提供了对WCF的基本概念以及通用的消息传递的概述。 ● 第3章——“了解WCF”。本章快速讲述和解释了WCF编程模型和服务模型,最后讲解了如何安装WCF。 ● 第Ⅱ部分——WCF编程基础 ● 第4章——“地址”。本章讨论了WCF地址以及如何使用它们。 ● 第5章——“WCF绑定及编程”。本章介绍了不同的WCF绑定、如何使用这些绑定以及每个绑定提供的功能。 ● 第6章——“WCF契约及其编程”。本章介绍了WCF契约的概念、不同的契约类型以及如何使用这些契约。 ● 第7章——“客户端”。本章从客户端一方讨论了WCF,并特别阐述了客户端如何连接到WCF服务并与之进行通信。 ● 第8章——“服务”。本章介绍了行为的概念,并且讨论了可应用于WCF服务的不同选项和行为。 ● 第9章——“事务和可靠会话”。通过介绍和讨论事务和队列的话题以及如何在WCF中利用这些功能,本章讨论了消息的可靠交换。 ● 第10章——“安全”。本章讨论了WCF的安全方面,显示了如何将安全构建到WCF应用程序中。 ● 第11章——“定制WCF”。本章主要讨论了如何扩充和定制WCF。 ● 第12章——“互操作性和集成性”。本章集中在WCF与已有应用程序和技术(如MSMQ、WSE和ASP.NET)的集成性和互操作性上。 ● 第Ⅲ部分——部署WCF ● 第13章——“部署WCF”。本章主要讨论了有关WCF服务的部署策略和问题。 ● 第14章——“管理WCF”。本章深入讲解了可用的、由WCF提供以帮助调试和配置WCF服务的WCF管理工具。 ● 第15章——“托管WCF服务”。本章讨论了可用来托管WCF服务的选项。 ● 附录A——“Visual Studio中的WCF模板扩展”。本附录提供了对Visual Studio中模板和插件的概述,用来帮助构建WCF服务。 ● 附录B——“案例分析”。本附录提供的案例分析说明了本书讨论的许多技术。尽管与本书的其余内容有紧密的关联,但是仍然将附录B放到了网上()而非本书中。您可以在本前言后面的“源代码”一节找到访问该附录的详细信息。 0.4 阅读本书的要求 本书的所有示例要求: ● Visual Studio 2005 ● .NET Framework 3.0 ● Visual Studio 2005 Extensions for WCF 尽管可以在不同的计算机上运行这些产品,但是在本书的示例中,这些产品都运行在同一台计算机上。 0.5 源代码 在练习本书的示例时,您可以手工输入所有的代码,也可以使用本书附带的源代码文件。本书合作网站或http://www.tupwk.com.cn/downpage上提供了本书所有的源代码下载。在网站上,只需定位书名(使用Search搜索框或者使用书名列表),然后在该书的详细信息页面单击Download Code链接就可以获得本书的所有源代码了。 因为许多书的名称相近,所以使用书号进行搜索可能会最为简单,本书的EISBN为978-0-470-08984-2。 在下载完代码以后,只需使用您喜欢的解压工具进行解压缩即可。或者,您可以在Wrox代码的主下载页面/dynamic/books/download.aspx上查看本书和其他Wrox的书的可用代码。 0.6 勘误表 我们竭尽全力保证本书的文本或代码中没有错误,但是人无完人,错误在所难免。如果您在我们的书中发现了错误,例如,拼写错误或代码错误,那么请将信息反馈给我们,对此我们十分感激。通过您的勘误信息,可能另外一个读者可以避免受挫,同时您可以帮助我们提供更高质量的信息。 要查看本书的勘误表,请访问网站,使用Search搜索框或者书名列表定位本书。然后,在书的详细信息页面上单击Book Errata链接。在该页面上,您可以看到读者对本书所提交的以及由Wrox的编辑提交的所有勘误。网站/misc- pages/booklist.shtml提供了完整的图书列表以及每本书的勘误表的链接。 如果在Book Errata页面上没有发现“您的”错误,那么请访问/contact/ techsupport.shtml页面,完成该页面上的表单后将您所发现的错误发送给我们。我们会检查该信息,如果是正确的,我们会提交到本书的勘误表中,并在本书的后续版本里更正错误。 0.7 为了便于作者和同行进行讨论,可以加入到的P2P论坛。该论坛是一个基于Web的系统,您可以在其中提交有关Wrox图书及其相关技术的信息,并与其他读者和技术使用者交流。该论坛提供了订阅功能,在论坛有新帖子提交的时候,论坛会根据您选择的兴趣点向您发送邮件。这些论坛的成员包括Wrox的作者、编辑、其他行业的专家以及其他读者。 在网站上,您可以找到许多不同的论坛,这些论坛不仅在您阅读本书时可以提供帮助,而且在您开发自己的应用程序时也可以提供帮助。要加入这些论坛,需要完成以下几步: (1) 浏览到网站,单击Register链接。 (2) 阅读使用条款,然后单击Agree按钮。 (3) 完成要加入论坛所必需的信息,以及您想要提供的任何可选信息,之后单击Submit按钮。 (4) 您会收到一封电子邮件,告知您如何验证您的账户和完成加入过程。 即使您没有加入P2P,仍然可以阅读论坛里的消息。但是要想提交自己的消息,就必须加入论坛。 在加入后,您可以提交自己的消息,也可以回复其他用户提交的消息。您可以在任何时间阅读网络上的消息。如果您想让某个论坛在有新消息时给您发送电子邮件,那么单击论坛列表里论坛名旁边的Subscribe to this Forum图标。 要了解关于如何使用Wrox P2P的更多信息,一定要阅读P2P FAQ以获得关于论坛软件如何工作以及许多P2P和Wrox图书特有的常见问题的解答。通过在任意P2P页面上单击FAQ链接即可阅读FAQ。