首页 > 代码库 > WCF探索之旅(五)——WCF与WebService的异同
WCF探索之旅(五)——WCF与WebService的异同
前几篇文章我们简单的介绍了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,用户/密码,自定义等多种标准与模式。也就是说,在WCF框架下,开发基于SOA的分布式系统变得容易了,微软将所有与此相关的技术要素都包含在内,掌握了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非常简单,其实没有什么
WCF虽然是个服务开发框架,但是如果你深入学习,会发现WCF架构的强大之处。单单是WCF安全这一块已经相当的复杂了。况且还要统一编程模型,兼容和支持许多早期的分布式技术。
好了,这里只是抛砖引玉,具体有哪些不同,还需要大家亲自动手查一下,做做例子体验一下。