WCF

WCF可以理解为WebService的升级版, 能够通过配置兼容WebService,同时又拥有一些WebService不具备的优势,比如:

1)WCF可以不依赖于IIS(在VS环境下)

2)WCF 支持多种通信协议 Http/Https 、TCP/UDP、MSMQ、命名管道、对等网、消息可达性、事务流等

3)WCF 安全性要强:支持对称安全、非对称安全、消息安全、传输安全、SSL 流安全、Windows 流安全等

4)WCF支持多种格式化方式。DataContractSerializer、XmlSerializer、 DataContractJsonSerializer

以下基本概念应该清楚:

  • 契约(CONTRACT

WCF使用契约来定义“服务端”与“客户端”之间“服务”及“数据”等内容的格式,一般来说,主要包括服务契约,数据契约,消息契约,错误契约等, 契约的声明应当是建立WCF服务的第一步

  • 服务的功能实现(ServiceBehavior

实现WCF服务中的具体功能, 以实例应用为例,需要在SilverLight中调用WCF服务访问Oracle数据库,那么就需要实现访问数据库的功能,以及根据用户传入的参数,返回结果的功能

  • 寄宿(Host)

Service中,仅有功能的实现,但要使得WCF服务能够被网络上的其它客户端访问到,还需要经过一个寄宿的过程,通过这个过程,WCF将获得一个可访问的地址,能够被其它程序所访问。 除地址之外,在寄宿过程中,还可以配置WCF的许多属性(服务描述 Service Description),比如通信协议,服务类型等 WCF不仅可以通过IIS来寄宿服务,还可以通过其它方法,例如将WCF寄宿到EXE中,执行EXE文件来开启WCF服务

  • 客户端访问(Client

通过寄宿这一过程,WCF获得了一个可访问的服务地址,客户端可以通过访问这个服务地址,调用其中的功能

Hello World

建立最简单的WCF服务

一、新建

【Visual C#】=>【WCF】=》【WCF service application】 新建一个项目。

二、运行

什么都不用管。直接在项目中【Service1.svc】上右键=>【在浏览器中查看(Google Chrome)】。然后你可以看到:

wcf service

嗯。就这样。

三、客户端

运行好了服务端。我们随便建立一个客户端测试一下。

【Visual c#】=》【控制台应用程序】

新建完之后。项目右键=》【添加】=》【服务引用】

wcf client

四、调用

修改控制台应用程序,Program.cs修改如下:

class Program
{
    static void Main(string[] args)
    {
        ServiceReference1.Service1Client service = new ServiceReference1.Service1Client();
        Console.WriteLine(service.GetData(1314));
        Console.Read();
    }
}

直接运行,命令行打印如下

You entered: 1314

参考

最简单的入门例子

WCF 学习

WCF 系列

传说中的WCF系列