zoukankan      html  css  js  c++  java
  • WCF和Web Service的 区(guan)别(xi)

    参考文献:http://social.microsoft.com/Forums/zh-CN/c06420d1-69ba-4aa6-abe5-242e3213b68f/wcf-webservice

            之前听许益平 就和我说过,推荐我看看WCF,当时听到这个名词的时候感觉好像非常高深的样子(其实现在也觉得很高深,只不过不像当初那么感觉难以琢磨了) 闲暇的时候 ,学习了一下通信技术。在通信技术中遇到一个很常见的问题,WCF 和Web Service 的区别是什么?当时看到这样的博客,觉得二者可以说是平级的,只是不同的技术平台使用的不同的通信框架而已,直到我的膝盖中了一箭(好吧,直到之前问过王晓,王晓简单的跟我说了下区别)。个人的总结WCF和Web Service 完全不是一个级别的。所以很难做出比较的 这就相当于  化妆技术和 心地善良   虽然都可以提升个人魅力,但是两者并不是同一个级别的。昨天看到MSDN上的这个问题 ,觉得比较严谨。摘来供只是初步涉猎通信的人们学习。

    (一)首先来对比介绍一下 WCF 和Web Service  的区(guan)别(xi)

    Web Service :

           (1)严格来说是行业标准,也就是Web Service 规范,也称作WS-*规范,既不是框架,也不是技术。

           (2)它有一套完成的规范体系标准,而且在持续不断的更新完善中。

           (3)它使用XML扩展标记语言来表示数据(这个是夸语言和平台的关键)。

           (4)WSDL来实现服务接口相关的描述。

            (5)此外Web services 可以注册到UDDI中心.供其客户查找使用。 

    WCF:

            (1)微软的Web服务实现称为ASP.NET Web Service.它使用Soap简单对象访问协议来实现分布式环境里应用程序之间的数据交互。后来微软做了ASP.NET Web Service的安全,性能,数据加密、解密,托管宿主等多方面的扩展,称为WSE系列,这个是过度产品,最高到WSE3.0.后来就是WCF时代。

    (二)Web Service  和ASP.NET Web Service有什么关系?

    ASP.NET Web Service微软提供了Web服务的开发框架,属于ASP.NET Framework的一部分,但是支持早起的WS规范。比如SOAP1.1。换句话说就是 Web Service的行业规范在ASP.Net实现的技术就是  ASP.NET Web Service.

     

    (三)WCF与ASP.NET Web Service的区别是什么?

    WCF:WCF 是一个分布式应用的开发框架,属于特定的技术,或者平台。既不是标准也不是规范。是微软SOA重要技术框架.

            WCF其实一定程度上(某些情况中)就是ASP.NET Web Service,因为它支持Web Service的行业标准和核心协议,因此ASP.NET Web Service和WSE能做的事情,它几乎都能胜任,跨平台和语言更不是问题(数据也支持XML格式化,而且提供了自己的格式化器)。
            但是WCF作为微软主推一个通讯组件或者平台,它的目标不仅仅是在支持和集成Web Service,因为它还兼容和具备了微软早期很多技术的特性。
             根据微软官方的解释,WCF(之前的版本名为“Indigo”)是使用托管代码建立和运行面向服务(Service Oriented)应用程序的统一框架它使得开发者能够建立一个跨平台的安全、可信赖、事务性的解决方案,且能与已有系统兼容协作。WCF是微软分布式应用程序开发的集大成者.

            它整合了.Net平台下所有的和分布式系统有关的技术,如Enterprise Sevices(COM+).Net Remoting、Web Service(ASMX)、WSE3.0和MSMQ消息队列。以通信(Communiation)范围而论,它可以跨进程、跨机器、跨子网、企业网乃至于 Internet;以宿主程序而论,可以以ASP.NET,EXE,WPF,Windows Forms,NT Service,COM+作为宿主(Host)。WCF可以支持的协议包括TCP,HTTP,跨进程以及自定义,安全模式则包括SAML, Kerberos,X509,用户/密码,自定义等多种标准与模式。也就是说,在WCF框架下,开发基于SOA的分布式系统变得容易了,微软将所有与此相关的技术要素都包含在内,掌握了WCF,就相当于掌握了叩开SOA大门的钥匙.
     (四)网上常见的错误认知

    以上是很多.NET开发人员容易搞错的问题。面试的时候也经常遇到。而很多新手也会因为初次接触WCF或者Web Service而陷入迷惑的境地,很多资料介绍的也不准确。我甚至和许多许多年开发经验的开发人员讨论这些问题,他们都无法分清二者的区别。相信很多人也被误导。以下是最常见的错误观点:

    1.Web Service太旧了;

    2.Web Service 就是 ASP.NET Web Service;

    3.WCF比Web Service性能好;

    4.WCF 比 ASP.NET Web Service快;

    5.WCF比Web Service速度快;

    6.WCF比Web Service强大;

    7.WCF比 Web Service安全;

    8.Web Service必将被WCF取代;

    9.WCF其实就是Web Service;

    10.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确实集成了多种微软的分布式技术,但是这里应该严格说是:WCF比ASP.NET Web Service强大

    7.WCF比 Web Service安全:不严格。其次WCF也可以开发完全裸奔的应用程序。

    8.Web Service必将被WCF取代;Web Service不会被WCF取代!前者是一套广泛使用的规范。如果说WCF能取代的是ASP.NET Web Service,因为二者都是.NET平台上的技术。

    9.WCF其实就是Web Service:WCF在某些情况下不遵守 Web服务规范,也就是可以开发非服务性质的应用。而且不能简单等同。

    10.WCF非常简单,其实没有什么:WCF虽然是个服务开发框架,但是如果你深入学习,会发现WCF架构的强大之处。单单是WCF安全这一块已经相当的复杂了。况且还要统一编程模型,兼容和支持许多早期的分布式技术。很多人轻易下这样的结论,一定是仅仅看了一些文章或书籍,不一定写过代码。高手不会这样武断地下结论。

    看了这个文章,希望你对于WCF和WebService有个透彻的理解

    而不会再产生这样的疑惑。

    无论是参加面试,作为候选人,还是面试官,弄清楚这些基础的问题,相当的必要。不要忽悠别人,也不要被别人忽悠。

    技术人员应该坚持严谨的学习态度。~

    呵呵,希望对大家的学习有帮助~

  • 相关阅读:
    PAT Advanced 1067 Sort with Swap(0, i) (25分)
    PAT Advanced 1048 Find Coins (25分)
    PAT Advanced 1060 Are They Equal (25分)
    PAT Advanced 1088 Rational Arithmetic (20分)
    PAT Advanced 1032 Sharing (25分)
    Linux的at命令
    Sublime Text3使用指南
    IntelliJ IDEA创建第一个Groovy工程
    Sublime Text3 安装ftp插件
    Sublime Text3配置Groovy运行环境
  • 原文地址:https://www.cnblogs.com/jilodream/p/4219844.html
Copyright © 2011-2022 走看看