Windows Communication Foundation (WCF) 是用于构建面向服务的应用程序的框架。
它是由微软发展的一组数据通信的应用程序开发接口,可以翻译为Windows通讯接口,它是.NET框架的一部分,由 .NET Framework 3.0 开始引入。
WCF的特点
Ø服务导向
使用WS 标准的一个结果是,WCF 允许我们创建面向服务的应用程序。面向服务的体系结构(SOA) 依赖Web 服务发送和接收数据。这些服务具有松耦合的常规优点,而不是从一个应用程序到另一个应用程序进行硬编码。松耦合关系意味着只要符合基本协定,则在任何平台上创建的任何客户端均可连接到所有服务。
Ø互操作性
WCF 实现了Web 服务互操作性的现代行业标准,即我们前面提到的Webservice的本意,一种通讯规范。
Ø多种消息模式
采用多种模式交换消息。最常用的模式是请求/答复模式,其中一个终结点从另一个终结点请求数据,另一个终结点进行答复。还有其他模式,比如单向消息,其中只有一个终结点发送消息,而不期望得到答复。更复杂的模式是双工交换模式,在该模式下,两个终结点建立连接并来回发送数据,类似于即时消息传递程序。
Ø服务元数据
WCF 支持使用行业标准(如WSDL、XML 架构和WS-Policy)中指定的格式发布服务元数据。该元数据可用于自动生成并配置客户端,以便访问WCF 服务。可通过HTTP和HTTPS 来发布元数据,也可使用Web 服务元数据交换标准来发布元数据。
Ø数据契约(数据协定)
由于WCF 是使用.NET Framework 生成的,因此它也包括代码友好的方法,用于提供希望强制执行的协定。数据协定就是其中一种通用类型的协定。实质上,当我们使用Visual C# 或Visual Basic 对服务进行编码时,处理数据的最简单方法是使用属于数据实体的属性创建表示该数据实体的类。WCF 包括一个采用这一简便方式处理数据的综合系统。在创建了表示数据的类之后,服务会自动生成使客户端能够符合所设计数据类型的元数据。
Ø持久性消息
持久性消息决不会由于通信中断而丢失。持久性消息模式的消息会始终保存到数据库中。如果发生中断,数据库将允许我们在恢复连接后恢复消息交换。此外,也可以使用Windows Workflow Foundation (WF) 来创建持久性消息。
Ø安全性
Ø多种传输和编码方式
Ø可靠的排队消息
Ø支持事务
ØAJAX 和REST 支持
Ø可扩展性
public class HelloService : IHelloService
{
public void DoWork()
{
}
}
代码中定义了一个名为HelloService的类,它实现了IHelloService的 接口 。该接口在WCF中称之为 “契约”(Contract或“协定”) 。
下面是 IHelloService 中的代码:
IHelloService.cs:
namespace WCFServer
{
// 注意: 使用“重构”菜单上的“重命名”命令,可以同时更改代码和配置文件中的接口名“IHelloService”。
[ServiceContract] //服务契约
public interface IHelloService
{
[OperationContract] //契约公布的方法
void DoWork();
}
}
[ServiceContract]
public interface IHelloService
{
[OperationContract]
void DoWork();
[OperationContract]
string Hello(); //不用写public
}
WCF应用程序发布
发布步骤:
1、WCF服务端程序右键--“发布”
2、选择发布方法--“文件系统”
3、选择目标位置,例如D:\WcfWeb
4、点击发布
5、IIS中新建网站,方法同一般发布网站方法。