最近因为项目缘故需要给项目组的新人讲关于架构的知识,我们的框架是基于MVC+EF+WCF的一个框架,分为服务端和客户端,期间有人问我,WCF到底是什么?那么小编就来介绍一下WCF的前世是什么吧(如果小编本文有什么错误希望大家多多提出)。
Windows Communication Foundation(WCF)是由微软发展的一组数据通信的应用程序开发接口,可以翻译Windows通讯接口,它是.NET框架的一部分。由 .NET Framework 3.0 开始引入的,听明白了吧,没错WCF就是微软大慈大悲给大家开放的一个和网络进行通讯的接口,所以我们只需要来使用这个接口就可以了,但是在使用他之前我们要知道他的一个机制是什么:
1. WCF的最终目标是通过进程或不同的系统、通过本地网络或是通过Internet收发客户和服务之间的消息。
2.WCF合并了Web服务、.net Remoting、消息队列和Enterprise Services的功能并集成在Visual Studio中。
3.WCF专门用于面向服务开发。
WCF的服务调用借助于服务代理(Service Proxy)。而ChannelFactory<T>则是服务代理的创建者。WCF采用基于终结点(Endpoint)服务消费方式:WCF服务通过一个或者多个终结点暴露给潜在的服务消费者,服务的消费中通过与之匹配的终结点与之交互。在客户端,我们具有两种典型的服务代理创建方式,其一是通过诸如SvcUtil.exe这样的工具导入服务的元数据生成相应的服务代理(一个继承自ClientBase<T>的类型)代码和相关配置;其二是直接通过相应的终结点信息(通过代码指定或者配置)创建ChannelFactory<T>对象,并借助该对象直接进行服务代理的创建。
实际上,即使通过ClientBase<T>对象进行服务调用,其内部也是调用ChannelFactory<T>创建的服务代理。整个ChannelFactory<T>的创建是一项相对复杂并且费时的工作,会涉及很多诸如反射、配置文件的读取等操作。为了提高服务调用的性能,在.NET 3.5中,WCF在ClientBase<T>中引入了ChannelFactory<T>的缓存机制。
。