《Essential Windows Communication Foundation 》 系列翻译文章最先从CSDN 上开始翻译,后来转到博客园,现在是将前四章的翻译内容从CSDN搬到博客园上,同时按章节划分不同系列,方便大家查看。以后会继续更新。
[第1篇] 基础
微软通信基础是关于服务的。主要是指创建,寄宿,使用以及安全性。WCF是基于标准和互通性的。可以提高开发人员的生产力。简短地说,WCF就是让每一个专业软件开发人员能够使用分布式计算服务。
在这一章,我们主要介绍一些WCF服务如何工作的基础理论。我们主要集中介绍最通用的特性。通过接下来的内容和例子,你将可以在本地或是网间创建并使用WCF服务。
[第2篇] 如何实现一个WCF服务
这一部分描述怎么样使用WCF实现一个简单的服务。最简单的方式,我们可以使用HTTP 协议,比如文本形式的XML文档。对于安全问题,我们假设它已经在应用程序中进行了相关处理。我们使用了同步请求-回复方式而且我们的服务只支持一个操作,就是接受输入字符串返回double 型输出。在接下来的章节中,我们会改变所有这些假定,但是目前为止,我们需要排除不必要的复杂性。
[第3篇] 使用代码生成WCF服务
实现一个WCF服务,你要先实现一个.NET 类然后使用System.ServiceModel 属性来修饰这个类。System.ServiceModel 命名空间与.NET 3.0 一起安装而且包含了大多数WCF实现。当代码编译时,CLR(公共语言运行库)解释这些属性,使用运行时代码取代它们。对于.NET来说属性并不是新事物; 在.NET 1.0 时它们已经存在了。WCF,就像.NET 1.0,1.1和2.0 中的ASMX,当写服务时使用属性来提高我们的生产力。
[第4篇] 使用代码和配置文件写一个WCF服务
WCF为在配置文件中定义服务属性提供了丰富的支持。你仍然需要为你将要在服务中暴露的特性或者算法编码,但是终结点地址,绑定和行为可以从代码中移动到配置文件中。
[第5篇] 更多关于配置文件的内容
服务控制文件web.config 或是 app.config 依赖于服务是如何被寄宿的,它们必须包含一个<system.serviceModel>节点。在这个节点下,服务,绑定,行为,客户端,诊断,扩展,寄宿环境和COM+互操作都可以被特殊设置。最低限度必须有一个<services>节点用来包含终结点,也至少有一个非基础架构的<endpoint>节点在<services>节点下面。在<endpoint>节点内,ABCs会被定义在每一个终结点上。
[第6篇] 暴露元数据交换节点
WCF中的元数据是精确描述如何与服务通信的消息。客户端可以向一个运行的服务请求元数据来了解它们要求的终结点和消息格式。在设计时,客户端发送由WS-MetadataExchange 标准定义的消息并接收返回的WSDL。WSDL可以被客户端用来定义一个将要用来在运行时与服务通信的代理类和配置文件。
[第7篇] 完成一个WCF服务客户端
当需要和服务通信时WCF为客户端提供了丰富的API。通过Service.ServiceModel实现的API处理将.NET类型转换成XML然后从客户端向服务端发送消息。你可以直接用API编程,或者你可以使用工具生成一个代理类和配置文件。在这一部分,我们将首先说明如何使用代码直接调用服务,然后我们将使用工具实现这个过程。前一种方法使用较少的代码并不使用配置文件。后一种方式有更少的依赖性而且在调用时有更好的微控性。每种解决方案都有很多最佳适用情况。
[第8篇] 在IIS中寄宿服务
一个WCF服务可以在操作系统中运行的任何托管进程中寄宿。服务本身一般并不知道或者关心它是怎么被寄宿的,尽管它可以通过丰富的APIs来找出来。它可以寄宿到一个不被注意的随机器初始化时启动随机器关闭时关掉的Windows 服务上,或者在一个最小化到Windows系统托盘的客户端应用程序。最普通的用法,就是在IIS里托管一个WCF服务。
[第9篇] 为一个ASMX服务实现一个WCF客户端
WCF客户端可以调用任何基于标准的服务而不用考虑目标宿主环境。在.NET Framework 1.1 上创建的ASMX网络服务是完全兼容的。由WS-I 1.1基本概况定义的标准确保它们可以被WCF调用。