Windows Communication Foundation (WCF)是一个面向服务编程的综合分层架构。该架构的顶层称为服务模型层(Service Model Layer),使用户用最少的时间和经历建立自己的软件产品和外界通信的模型。它使得开发者能够建立一个跨平台的安全、可信赖、事务性的解决方案,且能与已有系统兼容协作。我将通过几篇文章和大家一起学习WCF,希望能对新手学习WCF有些帮助。
从功能的角度来看,WCF 完全可以看作是ASMX,.Net Remoting,Enterprise Service,WSE,MSMQ 等技术的并集:
WCF Service
软件设计的一个重要原则:软件组件必须针对特定的任务专门的设计和优化。假如我们要做一个管理软件,想象一下,如果一个软件非常依赖于与外界通信,我们不能把管理软件与外界通信的逻辑考虑在管理系统内部。所以必须把通信任务委托给不同的组件。用WCF术语来说,这个组件称为WCF服务。更通俗的将,WFC服务就是负责与外界通信的软件。
一个WCF Service 由下面三部分构成:
Service Class:一个标记了[ServiceContract]属性的类,在其中可能包含多个方法。除了标记了一些WCF 特有的Attribute 外,这个类与一般的类没有什么区别。
Host(宿主):可以是应用程序,进程如Windows Service 等,它是WCF Service 运行环境。
Endpoints:可以是一个,也可以是一组,它是WCF 实现通信的核心要素。
在后面的实例应用中,我还会提到上面这三个概念。
WCF 端点
一个WCF服务必须能为不同的通信场景提供不同的访问点,这些访问点称为WCF端点。也就是上面所提到的EndPoint。每个端点都有一个绑定,一个地址和一个契约:
(1)绑定:指定该端点如何与外界通信,也就是为端点指定通信协议。