WPF與winform與silverlight的區別

收到了一封學生的郵件:

  ===========================編程

  金老師您好:瀏覽器

  最近在學C#.NET,基本語法學習的差很少了,接下來準備學習圖形界面設計部分。可是我目前對於.NET的WinForm、wpf、silverlight這三者的關係弄的不是很清楚,通常書中不多介紹wpf和silverlight,網上搜了一下關於WinForm和wpf的區別,有的說WinForm是wpf的子集,有的說WinForm和wpf是共存關係,弄的很亂。想請教一下您這三者之間到底有什麼樣的關係呢?編程語言

  您的學生性能

  ===========================學習

  如下是我對這三者間關係的理解,若是不對,請業界朋友指正。動畫

  在Windows中,諸如窗體繪製等功能由GDI實現,放在操做系統內核中。Windows Forms在底層使用的是GDI+。GDI+是GDI的「面向對象包裝」,使用C++實現。.NET Windows Forms應用程序中使用的GDI+實際上是在C++實現的非託管代碼之上又包了一層,從而讓咱們能使用C#這樣的託管編程語言調用GDI+功能繪圖。spa

  WPF底層使用的是DirectX,就是一般用來開發遊戲的那個DirectX。WPF與Windows Forms這二者並無什麼關係。按照微軟的意圖,WPF是用來取代Windows Form的,因此最新的Visual Studio就使用了WPF開發界面,這是一個很明確的信號。操作系統

  固然,出於兼容目的,Windows Forms與WPF將長期並存,能夠把它們當作是兩套獨立的界面技術。.net

  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/archive/2011/01/11/6128391.aspx

相關文章
相關標籤/搜索