前几篇文章我们简单的介绍了WCF以及怎样使用它,今天我们来讨论一下WCF和WebService的异同。
相信大多数同学跟我一样,对于WebService有所了解。并且应该说你是先听说WebService,后听说还有个WCF的。对不正确?那好,我们今天来一起看看。这两者有何不同。
WebService是标准,是一种规范。严格来说WebService是一种行业标准,不是一种特定的技术。而WCF是一种WebService的实现。在WCF之前,微软系列中有ASP.NET Web Service,后来微软做了ASP.NETWeb Service的安全。性能,数据加密、解密,托管宿主等多方面的扩展。称为WSE系列。WSE3.0.后来就是WCF时代。
WCF是一个分布式应用的开发框架。属于特定的技术,或者平台。既不是标准也不是规范。
一定程度上WCF就是ASP.NET Web Service,由于它支持Web Service的行业标准和核心协议。因此ASP.NET WebService和WSE能做的事情,它差点儿都能胜任,跨平台和语言更不是问题,但它的目标不不过在支持和集成Web Service。
WCF是使用托管代码建立和执行面向服务(ServiceOriented)应用程序的统一框架。
它使得开发人员可以建立一个跨平台的安全、可信赖、事务性的解决方式,且能与已有系统兼容协作。WCF是微软分布式应用程序开发的集大成者,它整合了.Net平台下全部的和分布式系统有关的技术,如EnterpriseSevices(COM+).Net Remoting、WebService(ASMX)、WSE3.0和MSMQ消息队列。以通信(Communiation)范围而论,它能够跨进程、跨机器、跨子网、企业网乃至于 Internet。以宿主程序而论,能够以ASP.NET,EXE,WPF,WindowsForms,NT Service,COM+作为宿主(Host)。
WCF能够支持的协议包含TCP。HTTP,跨进程以及自己定义,安全模式则包含SAML,Kerberos,X509,用户/password,自己定义等多种标准与模式。也就是说,在WCF框架下,开发基于SOA的分布式系统变得easy了。微软将全部与此相关的技术要素都包含在内,掌握了WCF,就相当于掌握了叩开SOA大门的钥匙。
关于WCF大家的一些错误的理解,以及从网上找了一些解释:
1、Web Service太旧了
框架都版本号的差异。功能特性上却是有新旧之分,可是对于特定的系统。适合自己的就是最好的。
2、Web Service 就是 ASP.NET Web Service
相同不是一个范畴。
前者规范,后者是框架
3、WCF比Web Service性能好:不是一个范畴。
4、WCF 比 ASP.NET Web Service快
不一定,须要特定的限制条件,WCF使用BasicHttpBinding的时候与ASP.NET Web Service协议一样。
5、WCF比Web Service速度快:相同概念不严格。
6、WCF比Web Service强大
WCF却是集成了多种微软的分布式技术,可是这里应该严格说是:ASP.NET Web Service
7、WCF比 Web Service安全:不严格。
其次WCF也能够开发全然裸奔的应用程序。
8、Web Service必将被WCF代替
Web Service不会被WCF代替!
前者是一套广泛使用的规范。
假设说WCF能代替的是ASP.NET WebService。由于二者都是.NET平台上的技术。
9、WCF事实上就是Web Service
WCF在某些情况下不遵守 Web服务规范,也就是能够开发非服务性质的应用。并且不能简单等同。
10、WCF很easy。事实上没有什么
WCF尽管是个服务开发框架,可是假设你深入学习。会发现WCF架构的强大之处。单单是WCF安全这一块已经相当的复杂了。
况且还要统一编程模型,兼容和支持很多早期的分布式技术。
好了,这里仅仅是抛砖引玉,详细有哪些不同。还须要大家亲自己主动手查一下。做做样例体验一下。