WCF (Windows Communication Foundation),开发代号为“Indigo”,是一种新型的分布式通信平台。作为.NET 3.0框架的一部分,它和Windows Vista一同发布。.NET 3.0框架的开发代号为“WinFX”, 包括4个重要部分:WPF (Windows Presentation Foundation),WF (Windows Workflow Foundation), WCF (Windows Communication Foundation)和Windows CardSpace。如图1-1所示,.NET 3.0基下.NET 2.0,得到Windows XP、WindowsVista、Windows Server 2003,和Windows “Longhorn”Server等平台支持。
为什么还要发布另外一种分布式通信技术呢?与以前的技术相比,WCF是不折不扣面向服务的、松耦合的、可互操作的平台。它通过去除设计依赖,简化了面向服务系统的设计,而这些设计依赖以往总是存在于业务功能的获取和这些业务功能的真正实现之间。WCF对松耦合的促进,不仅体现在服务和该服务所表达的业务功能之间,还体现在协议的选择、消息编码格式和宿主环境等方面。例如,服务可以通过多种支撑协议被访问,包括命名管线、TCP、HTTP和MSMQ等。WCF也支持核心的和新兴的Web Service标准,这使它成为一个高度可互操作的平台。消息总是能够按照广泛使用的标准格式进行编码,以和其他平台进行通信。
嗨,我是Steve Swartz,Michele请我为她的新书《学习WCF》写前言,因为我是WCFV1的两位广度架构师之一。这显示了一个职位要给人留下深刻的印象是多么容易。我仅仅是软件开发工作中的普通一员。我们部门的技术伙伴——架构师Brad Lovering,构想出了WCF,并且指导我们小组的技术工作。我们部门的杰出工程师——架构师Eric Christensen,设计和实现了WCF的核心部分。像Steve Millet和我这样的广度架构师负责将WCF的各个部分整合成一个统一的整体。WCF的每一部分,都在一个深度架构师指导下,由一个包括开发人员、产品经理、测试人员和文档工程师的小组负责开发出来。值得称道的是,这200多个人中的任何一员,都不会炫耀自己对WCF做出的技术贡献。其实,大部分的微软产品组成员都不爱张扬,我们是一个害羞的群体。那些你们*终认识的人就是那些足够外向而出头露面的人。
微软产品小组为潜在的用户群体考虑颇多。我没有做过专门统计,但是,从个人角度来看,我敢确定,当我们开发WCF时,WCF就已经有了数百万活跃的用户。包括:使用COM,DCOM. COM+和MSMQ的人们使用ASMX、.NET Remoting、Enterprise Services和System.Messaging的人们;使用WSE的人们;还有使用WCF早期版本的人们。即使尽我们所能,也不可能与所有这些潜在用户们协同交互以完成我们的日常工作。我们的替代策略是,花一些时间和潜在客户群中有影响力的核心成员保持协作,期待他们能够把知识传递给更多的人。我们花时间和微软的“地区总监”(RD)们密切合作。这些总监们遍布世界各地,和微软员工及其他***团体有着良好的关系。另外,我们也与WCF的数字精英相与甚欢,他们是一支10到20人的小分队,是这个星球上*聪明*活跃的WCF用户。