WCF开发指南之构建服务开发指南之构建服务
一一. 引言引言
Windows通讯基础(简称为WCF)是一种SDK,用于让你使用典型的CLR编程结构(例如用于发布和消费服务的类和接口
等)来构建Windows面向服务的应用程序。WCF的编程模型是声明性的并且大部分是属性驱动的。
WCF为通讯服务提供了一种运行时刻环境,使你能够把CLR类型暴露为服务并且以CLR类型来消费服务。
尽管在理论上你可以不用WCF来构建服务;但是,在实践中,WCF能够显著地简化这一任务。WCF是微软的一组工业标准的
实现,该标准定义了服务交互、类型转化、编排和多种协议的管理。因此,WCF提供了服务间的互操作性并且提高了开发效
率(包括几乎任何应用程序所要求实现的基本的常规的繁重任务)。本文将描述WCF块及其架构的基本概念和构建,从而使
你能够构建简单的服务。
二二. 什么是什么是WCF服务?服务?
一个服务是一个暴露给外界的功能单元。从编程模型的发展历史来说,它经历了从函数到对象再到组件最后到服务的过程;而
WCF服务正代表了下一代的革命性的Windows编程模型。面向服务(SO)是一组原则的抽象集和针对于构建SO应用程序的
最好实践,但这其中的一大部分已经超出了本文的范围。
一个面向服务的应用程序(SOA)把服务聚合成单个逻辑的应用程序(见图1),这类似于一个面向组件的应用程序聚合组件或
一个面向对象的应用程序聚合对象的方式。服务可以是本地的也可以是远程的,可以由多种团队使用任何技术开发而成,它们
可以被独立地进行版本化管理,甚至可以在不同的时间进度上执行。在一个服务内部,你可以使用例如语言,技术,平台,版
本和框架等概念;然而,在服务之间,只允许使用规定的通讯模式。
图1:一个面向服务的应用程序的框架。
客户端通过发送和接收消息与服务进行交互。消息可以从客户端直接或经中介传输到服务。在WCF中,所有的消息都是SOAP
消息。注意,这些消息独立于传输协议——不象Web服务,WCF服务可以通过多种传输协议进行通讯,而不仅是HTTP。
在WCF中,客户端从不直接与服务进行交互,即使在当处理一个本地的内存中服务时。而是,客户端总是使用一个代理来把
该调用转发给服务。WCF允许客户端跨越所有执行边界与服务进行通讯。在同一台计算机上(见图2),客户端可以跨越同一
进程中的应用程序域或进程来消费同一个应用程序域中的服务。通过跨越计算机边界(图3),客户端能够在企业内网或跨越
因特网与服务进行交互。