WPF路線圖白皮書: 2015及未來


介紹

當2006年微軟首次推出Windows Presentation Foundation(WPF)時,它代表了應用程序的設計和開發又向前跨出了巨大的一步。它簡化了GUI應用程序的開發,有助於UI和業務邏輯的分離,並且提供了統一的編程模型、語言和框架。真正做到了將界面設計人員與開發人員的工作分離;同時WPF提供了全新的多媒體交互用戶圖形界面。

自從2006年WPF作為.NET Framework 3.0的一部分發布以來,有四個主要的修訂版本。第一個是2007年發布的.NET 3.5,2008年發布的.NET 3.5 SP1,接着是2010年的.NET 4.0,最后一個修訂是2012年的.NET 4.5。

image

 

許多企業使用WPF創建處理日常業務流程的應用程序和工具。任何開發流程的中斷或者工具中存在的風險都會引起開發的不確定性,因此,利益相關者使用似乎要被微軟束之高閣的技術而感到不安。主要的擔心集中在:

  1. WPF基礎技術不再改進,不在增加新的功能。隨着時間的推移,將很難維護使用WPF編寫的應用程序,以使其符合新的UI標准。

    2.  WPF 對開發框架的支持將逐漸減少。盡管微軟為他們的工具和服務提供軟件支持協議,但他們不可能涉及到所有發生的問題。技術支持主要是解決軟件缺陷問題,所以像性能低下,這些不緊迫、不明確的缺陷是不會被軟件支持協議所涵蓋,因此是不會被支持的。

使用WPF建立關鍵業務應用程序,似乎從長遠來看是不明智的。然而,最近的事態發展給WPF社區帶來了希望。

此白皮書總結了WPF的歷史,強調了平台的優勢,最重要的是,將分析它的前途。

clip_image002[7]

WPF簡史

技術綜述

Windows Presentation Foundation(WPF)是微軟.NET Framework的一個重要組成部分,於2006年作為.NET 3.0的一部分首次發布。WPF是一套使用DirectX繪制用戶界面的子系統,圖形將使用Windows Graphics Device Interface(GDI)來繪制。WPF在設計時充分利用了當時出現的圖形硬件技術和高級別的線程,提高用戶體驗。

WPF使開發人員將應用程序UI設計從基礎代碼中分離開來,同時也提供了一套包含綜合的應用程序開發功能的統一編程模型。簡而言之,WPF有助於開發更好的可視化應用程序。

WPF被廣泛認為是對WinForms(一個用於快速應用程序開發的舊平台)的一次重大變革,也因它的藍灰色UI變得眾所周知。雖然WinForms仍然是開發以事件驅動的Windows桌面應用程序最流行的平台,但在個性化定制和靈活性有很多不足。WPF是一個更現代的技術,並且非常靈活。

例如,在WinForm程序中創建對話框,通常按照傳統的Windows對話框的形狀和樣式來設計的。如果需要創建更復雜的對話框是很困難的。然而WPF就非常靈活,在選擇顏色、樣式及對話框的交互功能時會有更多的控制權。WPF不僅能夠輕松創建標准的交互功能,更支持個性化的交互和設計元素。

clip_image002[9]

 

 

常用功能和工具

開發人員選擇WPF開發應用程序有很多優勢:

• 允許開發人員通過數據綁定可將界面顯示和業務邏輯分離。這將更易於開發、維護、測試和擴展應用程序。該架構允許在開發中應用一些設計模式,比如Model View Controller (MVC)或者 Model View ViewModel(MVVM)。

• WPF應用程序使用C#和Visual Basic語言開發。這意味着它們在網上具有大量的學習資源,包括大量的示例、論壇和活躍社區。

• UI使用XAML定義,一個強大的對象描述語言,能表示動畫、圖形、數據綁定和多媒體。開發人員在應用程序中采用這些技術后,使用XAML能顯著減少編碼工作量。

• WPF允許用戶非常簡單的創建能適應不同屏幕形狀、尺寸和分辨率的界面。

• WPF本身有一個龐大的在線社區和第三方支持。

微軟表面上疏遠WPF

從2011年到2014年底,微軟沒有在它們的WPF博客和其它任何專門的開發者資源中發表新內容。在同一時期也沒有重要更新或者新的WPF版本發布。這種溝通的缺乏讓許多開發人員懷疑這個平台正在被微軟拋棄的過程當中。由於諸如Windows Universal Apps 和Xamarin這些新技術應運而生,社區擔心WPF將不再受到微軟的重視。

雖然WPF將一定繼續被支持,但真正擔心的是它將成為一個傳統技術。開發人員擔心他們使用的是一個沒有前途的平台。

然而,2014年12月12日微軟WPF組發表的一篇博客打破了沉默,確認他們實際上從沒停止這個平台的工作。此公告承諾受到各個開發者論壇請求的激勵,將有一些新的發布和更新。從那以后,WPF組在其博客中發表了若干關於他們持續工作的文章,同時也制作了一些Channel9視頻,展示的內容是他們討論正在開發的主要新功能,比如“WPF Local”。

.NET、開源和WPF

作為一家公司,微軟目前在戰略和方向上正經歷着相當大的變化。作為此方向的一大動作,在2014年底已經在開源社區開源其.NET的一大部分內容。通過公開其先前內部的源碼,微軟向開源社區敞開了巨大的擁抱。然而,雖然WPF是.NET框架的一部分,但沒有跡象表明要對其開源的計划。

據微軟開發平台事業部全球副總裁Soma Somasegar介紹,他們花了整整三年的時間進行開放.NET代碼的准備工作。自從2014年底,每隔幾個星期就有新版本發布,並且托管在GitHub上。

到目前為止主要的發布有:

• .NET compiler platform (‘Roslyn’)

• .NET Core 5

• ASP.NET 5

• .NET Base Class libraries

• .NET Web, Data and API frameworks

經歷了十多年的Mono項目致力於創建兼容.NET的工具,支持開發人員所期望的創建跨平台的.NET應用程序。雖然Mono允許開發人員在Mac iOS、Android或Linux上使用.NET組件創建應用程序,但是缺乏微軟提供的源代碼使項目遇到了很大的阻力。微軟如今堅定的支持.NET跨平台。Mono項目得以繼續,將會努力為.NET做出貢獻並且促使Mono更好的發展。

Soma Somasegar 解釋了走向開源背后的真實想法我們必須滿足開發人員的需求,而不是說‘嘿,來我們這里吧’。

image

 

微軟需要長期的過程使其對開發人員更加開放和透明。盡管如此,有一系列的戰略決策驗證了這個選擇。當2014年11月的一篇博客宣布.NET走向開源時,Immo Landwerth(微軟BCL團隊的高級程序經理)清楚的知道這種新做法背后的原因:

• 開發人員的工作方式變了:他們不再工作在一個平台上;相反他們通常會嘗試跨平台 - Mac、iOS、Andriod和Linux。

• 消費者和企業從比以前更加廣泛的媒體終端上訪問IT服務。使用智能手機、平板電腦和其他操作系統運行用.NET代碼編寫的專業應用程序將擴展微軟的業務。

• 向開源社區開源.NET對微軟自己的項目也有潛在的好處。微軟現在也采用非常多的開發人員的貢獻。

開放.NET Core標志着微軟在戰略上前進了一大步。它源於一種共識,跨平台開發正變得越來越普遍,它使應用程序能運行在不同類型的設備和操作系統上變得更有意義。它也承認應用程序商店提供了一個更加開放的競爭環境,在世界各地的開發人員都可以貢獻和建立自己的應用程序。允許訪問微軟的源代碼將有助於這些個人更容易做出貢獻。

盡管有這些變化,雖然世界是瞬息萬變的,桌面應用仍然擁有未來。桌面應用仍然在企業IT中是非常重要的(例如,目前在平板或手機屏幕上書寫甚至閱讀冗長的報告是不可行的)。

引用Jay Schmelzer(微軟的項目管理總監)的話:“作為一個公司,我們曾經說過,我們相信在Windows設備客戶端開發的發展方向就是WinRT、應用程序商店和現代的應用程序。但是我們承認現在有一個缺口,你無法完成你想要的一切。作為一個桌面應用程序,它是鍵盤和鼠標導向的,WPF是很好的選擇。”通過這個聲明,Schmelzer確認除非桌面系統完全消失,總歸有應用程序同硬件交互的需求。雖然微軟鼓勵開發Universal App,開發者創建的這種企業桌面工具通常不需要在智能手機和平板上使用。因此,WPF有很長的未來。

WPF路線圖

經過三年的沉默,一個新的WPF路線圖公告給了企業和開發者們真正的保證。對於那些懷疑他們的應用程序是建立在“傳統的”技術上的人們,WPF對未來的保證給了他們真正平和的心態和繼續推進他們產品的信心。

一系列的改進

當WPF路線圖發布后,微軟解釋說,他們一直在聽取來自社區請求和評論以及對開發者進行的采訪。

博客發布了未來的計划,以及向平台發布一些補丁,包括:

• 在System.Windows.Input.Cursor中支持多圖像光標文件。

• 支持透明子窗口。

• 通過注冊表中的通用閾值距離改進雙擊手勢識別。

• 通過雙擊WPF文本框控件改進文本選擇。

• 改進WPF組合框控件中觸控筆輸入的可靠性。

主要里程碑

展望未來,微軟計划在如下四大主要領域中改善WPF。

1. 性能

關於WPF用戶反復投訴的就是慢的令人沮喪。因此,微軟已經宣布他們的計划,在如下領域中提高性能:

• 啟動

• 滾動

• ItemsControl的虛擬化性能

這些改進措施將允許開發人員編寫的應用程序更高效的運行,更敏銳的響應用戶的交互。這將使開發WPF應用程序有更多的吸引力,並導致使用該平台的開發人員數量的增加。

2. DirectX的互操作性

路線圖還包括了更新和改進WPF與各種DirectX APIs的互操作性。盡管是一個用於創建豐富用戶界面的平台,調用DirectX APIs往往是驚人的復雜。此外,DirectX在近幾年有很大的發展,而WPF沒有跟上步伐。微軟將在其未來的更新中解決這個問題。

作為桌面應用程序變得越來越復雜,需要能夠處理現代的視頻、流媒體和3D圖形,WPF將需要更有效的操作DirectX。路線圖承諾這些都將實現。

3. 支持現代硬件

自2006年正式推出WPF以來,用戶與IT的交互方式發生了巨大的變化;企業和個人在工作中與更加廣泛的硬件互動。雖然智能手機和平板的銷量確實在增長,台式機和筆記本電腦仍然是實施重量級和密集任務的主要手段,如涉及在多個屏幕上分析Excel數據。

桌面技術的不斷提高,微軟意識到保證WPF平台為硬件的進步做最充分准備的重要性。路線圖為開發者提供了信心,他們將能夠利用新技術設計應用程序,如觸摸屏和高密度(4k)顯示設備。

4. 工具

當WPF團隊與開發人員開始研究找出改進平台的方法時,新工具的需求始終作為一個最高的要求。其結果是,團隊改善和推出如下工具:

• 可視化診斷工具 - 以實時可視化樹形式協助調試程序

• 時間軸工具 – 幫助開發人員解決項目中的問題,提高性能

• 增強的Blend – Blend for Visual Studio 2015將幫助開發人員做出更時尚更流暢的用戶界面。

有信心的投入WPF

近三年來,微軟對WPF及其未來保持沉默。結果社區、企業和開發商都擔心該平台沒有未來。然而,我們現在知道微軟正在經歷一段相當大的內部變革。它不僅試圖用Windows8和現代UI來改變計算,也正在尋求Universal Apps和開源其.NET框架。

在這些大主題上開始出現一個清晰的畫面,微軟終於再次確認了他們改善和發展WPF平台的承諾。從他們現在經常更新的博客,路線圖公告和增長的開源來看,馬上能為組織提供其所需的能安心和安全使用的WPF。

微軟已經致力於創建應用程序的新方法 - Universal Apps。這一戰略已經作為對最近幾年新設備激增的一種回應,以及對Windows角色的重新定位。雖然Universal Apps是微軟長期目標的重心,WPF的路線圖表露公司認識到世界這時還沒有從傳統桌面離開。

WPF路線圖證實了微軟在短期和長期提高該平台的貢獻,並且他們致力於改善:

• 性能

• DirectX互操作性

• 支持現代硬件

• 工具

WPF路線圖為組織提供了信心,他們的WPF應用程序將在未來的數月和數年得到支持。雖然對許多人來說桌面不在是與IT交互的主要手段,但它仍然是一個主要的參與者,並且會繼續以目前的形式存在於可預見的未來。在這種情況下,在未來的數年內WPF將繼續是一個重要的開發工具。目前已有很多產品支持WPF平台,ComponentOne Studio for WPF 也是其中之一。它是專為桌面應用程序開發所准備的一整套控件包,崇尚優雅和創新,以“觸控優先”為設計理念,內含輕量級高性能表格控件,和大量類型豐富的2D和3D圖表控件,能使開發出的應用程序更富創意。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM