WCF - 概述
WCF 代表 Windows Communication Foundation。WCF 的基本功能是互操作性。它是 Microsoft 用于构建面向服务的应用程序的最新技术之一。基于基于消息的通信的概念,其中 HTTP 请求以统一方式表示,WCF 使得无论使用何种传输机制都可以拥有统一的 API。
WCF 于 2006 年作为 Windows Vista 中 .NET 框架的一部分首次发布,随后进行了多次更新。 WCF 4.5 是目前广泛使用的最新版本。
WCF 应用程序由三个组件组成 −
- WCF 服务,
- WCF 服务主机,和
- WCF 服务客户端。
WCF 平台也称为服务模型。
WCF 的基本概念
消息
这是一个通信单元,除了主体外还包含几个部分。客户端和服务之间的所有类型的通信都会发送和接收消息实例。
端点
它定义了要发送或接收消息的地址。它还指定了通信机制来描述如何发送消息以及定义消息集。端点的结构由以下部分组成 −
地址
地址指定接收消息的确切位置,并以统一资源标识符 (URI) 的形式指定。它表示为方案://域[:端口]/[路径]。查看下面提到的地址 −
net.tcp://localhost:9000/ServiceA
此处,"net.tcp"是 TCP 协议的方案。域是"localhost",可以是机器或 Web 域的名称,路径是"ServiceA"。
绑定
它定义了端点通信的方式。它由一些绑定元素组成,这些元素构成了通信的基础架构。例如,绑定规定了用于传输的协议(如 TCP、HTTP 等)、消息编码的格式以及与安全性和可靠性相关的协议。
契约
它是一组操作,指定端点向客户端公开哪些功能。它通常由一个接口名称组成。
托管
从 WCF 的角度来看,托管是指 WCF 服务托管,可以通过许多可用选项完成,例如自托管、IIS 托管和 WAS 托管。
元数据
这是 WCF 的一个重要概念,因为它有助于客户端应用程序和 WCF 服务之间的轻松交互。通常,WCF 服务的元数据在启用时会自动生成,这是通过检查服务及其端点来完成的。
WCF 客户端
为以方法形式公开服务操作而创建的客户端应用程序称为 WCF 客户端。这可以由任何应用程序托管,即使是执行服务托管的应用程序也可以。
通道
通道是客户端与服务进行通信的媒介。不同类型的通道被堆叠在一起,被称为通道堆栈。
SOAP
尽管被称为"简单对象访问协议",但 SOAP 并不是传输协议;而是一个由标头和正文部分组成的 XML 文档。
WCF 的优势
它与其他服务具有互操作性。这与 .NET Remoting 形成鲜明对比,在 .NET Remoting 中,客户端和服务都必须具有 .Net。
与 ASMX(活动服务器方法)Web 服务相比,WCF 服务提供了增强的可靠性和安全性。
在 WCF 中实现安全模型和绑定更改不需要对编码进行重大更改。只需进行少量配置更改即可满足约束条件。
WCF 具有内置日志记录机制,而在其他技术中,必须进行必要的编码。
WCF 集成了 AJAX 并支持 JSON(JavaScript 对象表示法)。
它提供可扩展性并支持即将推出的 Web 服务标准。
它具有非常强大的默认安全机制。