淺析WCF與WebService、WPF與Silverlight 區別

因爲在《Windows服務調用Quartz.net 實現消息調度》中,涉及到ASP.NET Web Servicehtml

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

效果始終不是太好,故查之,此文作爲平時積累。 瀏覽器

1、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時代。編程語言

2、WCF


 WCF:是一個分佈式應用的開發框架,屬於特定的技術,或者平臺。既不是標準也不是規範。分佈式

  WCF其實必定程度上就是ASP.NET Web Service,由於它支持Web Service的行業標準和核心協議,所以ASP.NET Web Service和WSE能作的事情,它幾乎都能勝任,跨平臺和語言更不是問題(數據也支持XML格式化,並且提供了本身的格式化器)。 可是WCF做爲微軟主推一個通信組件或者平臺,它的目標不只僅是在支持和集成Web Service,由於它還兼容和具有了微軟早期不少技術的特性。 post

      根據微軟官方的解釋,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與其餘分佈式技術對比表

  

3、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
相關文章
相關標籤/搜索