日期:2014-05-17  浏览次数:20672 次

Windows 通信基础(Windows Communication Foundation)

Windows 通信基础(Windows Communication Foundation)

 

Windows 通信框架(WCF)的目标是提供一个统一模型,以创建分布式应用程序。其概念是创建一个服务,有些地方非常相似于网站服务,包含你想要暴露的功能,服务能够以在各种的不同方法暴露。例如,网站服务总是传递 XML 消息,但是,可以把 WCF 服务配置成既能传递 XML 消息,还能传递二进制数据。另外,WFC 服务可以托管在任何进程中,不仅仅是在网站服务器上。这表明,你查以创建一个桌面应用程序,来监听入站消息,而不需要在桌面上没有安装网站服务器。

 

注意 WCF 是 .NET 框架 3 的一部分,有一组 APIs 随着 Windows Vista 同时发行,且已经安装操作系统中。也可以从 http://www.microsoft.com 下载,安装在 Windows XP和 Windows 服务器 2003 上(http://www.microsoft.com/downloads/details.aspx?FamilyId=10CC340B-F857-4A14-83F5- 25634C3BF043&displaylang=en )。WCF 使用的协议是基于一组扩展网站服务的规范,有时简称为 WS-* 协议,因为每一个协议通常都以 WS- 前缀命名,比如,WS-Security 和 WS-Reliability。这些协议有的已经标准化,有的即将标准化。为了开发 WCF,需要从 http://www.microsoft.com/downloads 下载 .NET 框架 3 SDK。

在第一个示例清单 10-8 中,我们将构建一个简单的 WCF 服务,托管在网站服务器中,看起来更像一个简单的网站服务。然后,再改进这个服务,以展示 WCF 的有趣功能。为了创建在网站服务器上托管的 WCF 服务,遵循的步骤与在“创建网站服务”一节中讨论的相同,不同的是,不能托管在运行 Linux 的 Apache 上,因为 WCF 依赖于 Windows的一些特定功能。

 

Listing 10-8. Creating a Simple WCF Service

 

#light

namespace Strangelights.Services

open System.ServiceModel

[<ServiceContract(Namespace =

    "http://strangelights.com/FSharp/Foundations/WCFServices")>]

type IGreetingService = interface

    [<OperationContract>]

    abstract Greet : name:string -> string

end

type GreetingService() = class

    interface IGreetingService with

        member x.Greet(name) = "Hello: " + name

    end

end