前几篇文章我们简单的介绍了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安全这一块已经相当的复杂了。

况且还要统一编程模型,兼容和支持很多早期的分布式技术。

好了,这里仅仅是抛砖引玉,详细有哪些不同。还须要大家亲自己主动手查一下。做做样例体验一下。

WCF探索之旅(五)——WCF与WebService的异同的更多相关文章

  1. WCF探索之旅(一)——入门

    背景 对于.NET程序员来说,假设你不知道WCF,那仅仅能说明一点:你还是个菜鸟. 曾经也用.NET做过几个系统,尤其做后面的系统的时候,心里就有点沾沾自喜了! 想着,.NET也就这点东西,我如今也能 ...

  2. WCF探索之旅(三)——IIS公布WCF服务

    在之前的博客已经对WCF的基础知识做了介绍.而且做了一个简单的小样例. 假设你看了之前的博客,相信你已经对WCF有了一定的掌握.这篇博客主要说一下怎样把WCF服务公布的IISserver上. 在上篇博 ...

  3. WCF学习之旅—WCF第二个示例(五)

    二.WCF服务端应用程序 第一步,创建WCF服务应用程序项目 打开Visual Studio 2015,在菜单上点击文件—>新建—>项目—>WCF服务应用程序.在弹出界面的“名称”对 ...

  4. WCF学习之旅—第三个示例之五(三十一)

       上接WCF学习之旅—第三个示例之一(二十七)               WCF学习之旅—第三个示例之二(二十八)              WCF学习之旅—第三个示例之三(二十九) WCF学习 ...

  5. WCF学习之旅——第一个WCF示例(一)

    最近需要用到WCF,所以对WCF进行了解.在实践中学习新知识是最快的,接下来先做了一个简单的WCF服用应用示例. 本文的WCF服务应用功能很简单,却涵盖了一个完整WCF应用的基本结构.希望本文能对那些 ...

  6. WCF学习之旅—WCF第二个示例(七)

    三.创建客户端应用程序 若要创建客户端应用程序,你将另外添加一个项目,添加对该项目的服务引用,配置数据源,并创建一个用户界面以显示服务中的数据. 在第一个步骤中,你将 Windows 窗体项目添加到解 ...

  7. WCF学习之旅—WCF第二个示例(六)

    第五步,创建数据服务 在“解决方案资源管理器”中,使用鼠标左键选中“SCF.WcfService”项目,然后在菜单栏上,依次选择“项目”.“添加新项”. 在“添加新项”对话框中,选择“Web”节点,然 ...

  8. WCF学习之旅——第一个WCF示例(三)

    第五步:创建客户端 WCF应用服务被成功寄宿后,WCF服务应用便开始了服务调用请求的监听工作.此外,服务寄宿将服务描述通过元数据的形式发布出来,相应的客户端就可以获取这些元数据.接下来我们来创建客户端 ...

  9. WCF学习之旅——第一个WCF示例(二)

    第四步:通过自我寄宿的方式寄宿服务 WCF服务需要依存一个运行着的进程(宿主),服务寄宿就是为服务指定一个宿主的过程.WCF是一个基于消息的通信框架,采用基于终结点(Endpoint)的通信手段. 终 ...

随机推荐

  1. D2. Toy Train

    D2. Toy Train time limit per test 2 seconds memory limit per test 256 megabytes input standard input ...

  2. ubuntu apt-update NO_PUBKEY 40976EAF437D05B5 NO_PUBKEY 3B4FE6ACC0B21F32

    Fetched 28.1 MB in 11s (2344 kB/s) W: GPG error: http://archive.canonical.com xenial Release: The fo ...

  3. 无插件纯Web 3D机房,HTML5+WebGL倾力打造

    前言 最近项目开发任务告一段落,刚好有时间整理这大半年的一些成果.使用html5时间还不久,对js的认识还不够深入.没办法,以前一直搞java,对js的一些语言特性和概念一时还转换不过来. 上一篇大数 ...

  4. Python3.5安装wxpython

    摘要:安装python3.X的wxpython:学习<Python基础教程>第12章“图形用户界面”时,关于升级pip和安装wxpython时遇到的一些问题和解决办法. 关于升级pip 使 ...

  5. eclipse 导入svn项目并添加server

    1.打开svn资源库 window-->show view-->other-->svn-->svn资源库 2.控制台选中文件夹右键-->检出为--finish 3.添加服 ...

  6. 贪心 Radar Installation (求最少探测雷达)

    Description Assume the coasting is an infinite straight line. Land is in one side of coasting, sea i ...

  7. 集训第四周(高效算法设计)I题 (贪心)

    Description Shaass has n books. He wants to make a bookshelf for all his books. He wants the bookshe ...

  8. 3.2.8 sed 的运作

        sed 的工作方式相当直接.命令行上的每个文件会依次打开与读取.如果没有文件,则使用标准输入,文件名“-”(单个破折号)可用于表示标准输入.       [many@avention Desk ...

  9. mac 文本处理命令分享

    mac 文本处理命令分享 */--> pre.src {background-color: #292b2e; color: #b2b2b2;} pre.src {background-color ...

  10. 从Hadoop框架讨论大数据

    [Hadoop是什么?] 1)Hadoop 是一个由 Apache 基金会所开发的分布式系统基础架构. 2)主要解决,海量数据的存储和海量数据的分析计算问题. 3)广义上来说,HADOOP 通常是指一 ...