浅析WCF与WebService、WPF与Silverlight 区别

由于在《Windows服务调用Quartz.net 实现消息调度》中,涉及到ASP.NET Web Service

//WebServiceSoapClient client = new WebServiceSoapClient(new BasicHttpBinding(), new EndpointAddress(URL));
//client.Shake();

效果始终不是太好,故Google查之,此文做为平时积累。

一、ASP.NET Web Service



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

  它有一套完成的规范体系标准,而且在持续不断的更新完善中。它使用XML扩展标记语言来表示数据(这个是夸语言和平台的关键)。

  微软的Web服务实现称为ASP.NET Web Service.它使用Soap简单对象访问协议来实现分布式环境里应用程序之间的数据交互。WSDL来实现服务接口相关的描述。此外Web services 可以注册到UDDI中心.供其客户查找使用。后来微软做了ASP.NET Web Service的安全,性能,数据加密、解密,托管宿主等多方面的扩展,称为WSE系列,这个是过度产品,最高到WSE3.0.后来就是WCF时代。

二、WCF



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

  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大门的钥匙 。

  WCF能够建立一个跨平台的安全、可信赖、事务性的解决方案,是一个WebService,.Net Remoting,Enterprise Service,WSE,MSMQ的并集,很经典的对比图如下:

                  WCF与其他分布式技术对比表

  

三、WPF与Silverlight、WinForm



在Windows中,诸如窗体绘制等功能由GDI实现,放在操作系统内核中。Windows Forms在底层使用的是GDI+。GDI+是GDI的“面向对象包装”,使用C++实现。

  .NET Windows Forms应用程序中使用的GDI+其实是在C++实现的非托管代码之上又包了一层,从而让我们能使用C#这样的托管编程语言调用GDI+功能绘图。

  WPF底层使用的是DirectX,就是通常用来开发游戏的那个DirectX。WPF与Windows Forms这两者并没有什么关系。按照微软的意图,WPF是用来取代Windows Form的,所以最新的Visual Studio就使用了WPF开发界面,这是一个很明确的信号。

  当然,出于兼容目的,Windows Forms与WPF将长期并存,可以把它们看成是两套独立的界面技术。

  Silverlight在API层可以看成是WPF的子集,但事实上除了这点之外,Silverlight与WPF并没有任何联系。因为Silverlight应用程序不依赖于.NET Framework,只要用户计算机(或手 机)安装有Silverlight运行环境(比如用户通过互联网给浏览器添加了Silverlight插件),就可以跑Silverlight应用程序,并不要求用户安装庞大的.NET Framework。

  Silverlight运行时环境在API层面也可以看成是标准.NET Framework的功能子集,但它完全是重新写过的,独立于标准的.NET Framework,虽然为了方便应用程序开发,微软努力保持两者在API层面的一致性,但并不排除Silverlight运行时环境日后会拥有全新的为.NET标准环境所不具备的功能。

  Windows Forms/WPF/Silverlight这三者其实是独立发展的三个技术领域,只不过微软出于方便开发的目的,有意让Silverlight与WPF在应用层面开发体验(甚至包括大部分应用层代码)高度一致罢了。

  从开发角度来看,Windows Forms已有多年的历史,高度成熟,拥有大量的第三方控件等各种资源,如果开发“标准”与“通用”界面类型的Windows应用程序,使用它可以获得较高的开发效率和不错的运行性能。

  WPF的长处在于它可以开发非常“个性化”的Windows应用程序,你可以不受任何限制地实现你所能“梦想”到的各种用户界面,而且在动画等多媒体方面,WPF优于Windows Forms,另外,WPF的数据绑定机制也比Windows Forms要强大和灵活。

  WPF的短处在于它对计算机硬件的要求较高,对于硬件配置较低的计算机,其运行性能不如Windows Forms版本。就目前来看,WPF的最佳平台是Windows 7。

  Windows Forms和WPF主要用于开发桌面应用程序,Silverlight主要战场是互联网,通常用它来开发RIA的互联网应用程序,或者是跑在手机等智能移动设备上的应用程序。可以这样 说,会WPF,不费太多力气,就可以转去开发Silverlight应用程序,两者实在是太相似了,特别是界面层代码,由于都使用XAML,这使我们可以比较容易地为某一应用程序同时开发“桌面版”、“手机版”和“浏览器版”三种版本,而这三种版本其用户界面都可以拥有一致的外观和用户使用体验。

  以上介绍是引用bitfan博文(http://blog.csdn.net/bitfan/article/details/6128391

时间: 2024-08-05 19:31:14

浅析WCF与WebService、WPF与Silverlight 区别的相关文章

WCF、WPF、Silverlight和区别(转)

SilverLight可以看作是WPF的一个简化版本,或者一个轻量版本. SilverLight是基于浏览器插件的,在浏览器中运行,服务器端不需要部署任何环境,客户端只需要安装Runtime浏览器插件,无须安装.net Framework 3.0.所以,SilverLight的运行环境不受操作系统和浏览器的种类限制(更准确的说,是受到较少的限制). WPF可以编写Web程序或者桌面应用程序,可以直接编译为独立运行的.Exe文件.WPF运行时必须安装.net Framework 3.0.这就要求W

WCF与WebService的区别

1.WebService:严格来说是行业标准,不是技术,使用XML扩展标记语言来表示数据(这个是夸语言和平台的关键).微软的Web服务实现称为ASP.NET Web Service.它使用Soap简单对象访问协议来实现分布式环境里应用程序之间的数据交互.WSDL来实现服务接口相关的描述.此外Web services 可以注册到UDDI中心.供其客户查找使用.     后来微软做了ASP.NET Web Service的安全,性能,数据加密.解密,托管宿主等多方面的扩展,称为WSE系列,这个是过度

WCF与 WebService的区别

根据自己的理解总结一下wcf与webservice的区别吧其中也有其他的园友的一些观点,记录下来... WCF不依赖于IIS. WCF可以配置BasicHttpBinding来兼容WS. WCF可以基于TCP或MessageQueue来传输数据. WCF可以使有状态的并且支持事务. WCF 支持多种通信协议 Http/Https .TCP/UDP.MSMQ.命名管道.对等网.消息可达性.事务流等. WCF支持多种消息传输格式Text,JSON,Motom,Binary WCF 支持多种会话模式:

Wcf和WebService

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

企业级架构 MVVM 模式指南 (WPF 和 Silverlight 实现) 译(2)

本书包含的章节内容 第一章:表现模式,以一个例子呈献给读者表现模式的发展历程,我们会用包括MVC和MVP在内的各种方式实现一个收费项目的例子.沿此方向,我们会发现每一种模式的问题所在,这也是触发设计模式发展的原因.本章还会说明如果应用不当,MVC和MVP这些依赖.Net事件的表现模式是怎么导致内存泄漏的.本章会谈论各种表现模式的优缺点,并且留给读者自我思考的问题,如为什么用MVVM设计模式来代替MVP或是MVC.第二章:介绍MVVM,包括使MVVM魅力四射的WPF和Silverlight的各种特

WCF探索之旅(五)——WCF与WebService的异同

前几篇文章我们简单的介绍了WCF以及如何使用它,今天我们来讨论一下WCF和WebService的异同. 相信大多数同学跟我一样,对于WebService有所了解,而且应该说你是先听说WebService,后听说还有个WCF的,对不对?那好,我们今天来一起看看,这两者有何不同. WebService是标准,是一种规范.严格来说WebService是一种行业标准,不是一种特定的技术.而WCF是一种WebService的实现.在WCF之前,微软系列中有ASP.NET Web Service,后来微软做

WPF,Silverlight与XAML读书笔记第十五 - 页间导航 页间数据传递

?说明:本系列基本上是<WPF揭秘>的读书笔记.在结构安排与文章内容上参照<WPF揭秘>的编排,对内容进行了总结并加入一些个人理解. 导航 有关导航的话题在介绍NavigationWindow与Page等元素时有提及.这篇文章将详细分析导航相关话题.同其它话题,针对WPF,Silverlight与WP 7,导航特性大致相似又有着些许不同.在介绍此特性时相同的特性将合在一起,每个框架独有的特性也将独立介绍并有明显标识. 导航的功能及目的就是从一个页面转向另一个页面,可能是前进亦或是后

企业级架构 MVVM 模式指南 (WPF 和 Silverlight 实现) 译(3)

第一章 表现模式关注分离(soc)是企业及软件开发中非常有用的核心原则,也是许多表现模式背后的驱动力量.在WPF和Silverlight开发中,MVVM成为了实现关注分离最为有效的设计模式.然而,这种模式与其他表现模式(MVC,MVP)相比实现起来相对困难.本章会以贯穿全书的账票项目的例子作为开始.在回顾表现模式的过程中,用每一种模式来实现账票项目使你更加明确它们的优劣所在,这会帮助你明白为什么要使用MVVM模式.账票项目应用例子我们从账票项目的基本功能入手,账票项目应用的UI如下所示: 当pr

为WPF和Silverlight的Grid添加边框线(zz)

  Grid是WPF和Silverlight中的一个重要的布局元素,其他的布局元素还有StackPanel, Canvas, Border等等.从字面上说,Grid是一个表格的意思,它的使用也确实很方便,从视觉上很像一个表格的样式,有行,有列的概念,这种效果很适合于需要多多个子控件进行布局,并希望保持左边或者上对齐的效果. 我们来看一个最简单的例子(本文采用Silverlight做演示,在WPF中也是一样的) 使用Grid的时候,一般先定义Grid的行和列的设置,然后在其放置其他控件并且设置他们