第4章:WCF101
概述
WCF框架是个复杂的框架,它的复杂性源于这样一个事实,在抽象层上,一个消息框架必须适应行业标准的不断更新和完善。在WCF设计阶段,SOAP和WS-*被认为是未来主流的消息结构和协议。当初任何一个负责WCF的架构师都不会想到JSON会有今天的地位。但是他们确实明白一个事实,WCF必须很好地兼容和适应那些新的消息结构和传输,就像现在的WCF一样。于是微软设计了高扩展性和适应性的WCF,不但可以满足今天消息需求,也可以满足未来不可预知的新的需求。这些努力的结果就是一个容易使用,但整体上有点难以理解的复杂平台
每个设计过一个大的框架(framework)的人都可以证明,设计、构建、测试和维护这个框架都是一个艰巨的任务。我曾经设计、讨论和构建过几个框架,明白这有多么的困难。当设计一个框架的时候,Alan Kay的名言
[老徐备注1]“简单的东西应该简单,复杂的东西才有可能成功”应该是首要原则。当在看现在的WCF,我想微软通过把许多复杂的东西简单化,已经成功地实现了这个名言,即使从长远来看也是如此。这不是说我认为WCF是完美的,没有错误,而是说,作为一个完整的产品,WCF是精心思考和设计良好的。
WCF核心需求之一就是暴露一个对象模型给开发者,这个对象模型可以兼容所有的传输和协议。具体化的例子就是,WCF团队的架构师希望通过TCP/IP发送消息的代码和通过MSMQ发送消息的代码看起来十分相似。这个特性有以下几个好处。第一,它意味着这个平台不强迫开发者学习各种不同传输和协议的对象模型。实际上,了解WCF对象和执行模型的开发者可以在他们的应用系统里实现对不同传输和协议的支持。第二,它意味着随着WCF的对新的传输、协议和功能的成功支持,开发者没有必要为了开发系统里新的功能而学习新的通信方式。相反,他们可以使用WCF框架里已经存在的通信机制。
由于这些类型的需求,WCF架构由许多交织的层组成。
随着时间的推移,我发现要向完全理解任何一个
WCF
基础架构里的一层,都需要首先理解
WCF
基础架构里每个层相关的一些概念。本章的目的就是要介绍
WCF
应用中主要的层次,为本书后面部分章节深入学习这些层次奠定坚实的基础。
【老徐备注】
1.Simple things should be simple
, complex things should be possible,Alan 是Smalltalk 面向对象编程环境语言的发明人之一,也是面向对象编程思想的创始人之一,他还是笔记本电脑最早的构想者和现代Windows GUI的建筑师(architect)。
本文转自 frankxulei 51CTO博客,原文链接:http://blog.51cto.com/frankxulei/318607
,如需转载请自行联系原作者