剖析微軟WPF展示層技術將帶給我們什麼?

2021-04-13 02:26:08 字數 3733 閱讀 2527

微軟在teched 2005時就已經發表.net framework 3.0,整體架構堆疊是在原有的.net framework 2.0上,附加4種新技術:革新使用者體驗的windows presentation foundation(wpf)、高安全性通訊的windows communication foundation(wcf)、塑造商業流程範圍的windows workflow foundation(wf)以及windows cardspace等。今年teched 2006上,微軟接連2場議程**wpf展示層技術(其它技術僅有單場議程)。

以往程式設計師並不重視展示層技術,況且,adobe比微軟更早提出所謂的使用者體驗。有趣的是,第一場次的講師曹祖聖於「windows presentation foundation建立新一代的windows與web應用程式」的議程中,提出外號「flash killer」的介面設計工具:eid(expression interactive designer)。第二場次的講師彭靖灝,雖然是從「以windows presentation foundation建立豐富的使用者操作經驗」為標題,卻在後半段議程中提到「使用者經驗模型」,彰顯出使用者經驗將決定應用程式操作介面,取代程式邏輯導向的時代,更強化wpf的訴求。

整體而言,wpf並非如字面上意義所陳述,僅在於視覺化展現而已,微軟藉由2場議程,強化wpf技術所要揭露的精神:融合windows-based與web-based應用程式設計,並將繫結資料顯示於應用程式的視覺化元件中。

wpf精神:宣告式程式設計

就使用者介面而言,wpf既然是為了使設計師可以採用相同邏輯設計windows-based與web-based應用程式,但以往程式常區分為操作介面(或稱為markup)以及邏輯(code),並分屬畫面設計人員與程式設計師兩種不同角色負責處理。此外,設計師還必須為程式介面撰寫大量的程式**,藉以控制視窗上的物件。wpf不僅為畫面簡潔易懂,更延用一貫的宣告式程式設計,讓設計師只要設定引數即可完成物件控制。曹祖聖風趣地說到:「我懷疑程式設計師是否還有存在的必要?」。

從微軟為wpf所提的架構堆疊上可知,wpf底層以windows vista作業系統為主,接下來是windows vista display driver model,並採用directx繪圖引擎,特別是composite engine,負責2d與3d繪圖處理,包括材質、光源等,除了達到宣告式程式設計的目標外,其餘3個目標在於整合作業系統、採用向量式的使用者介面(ui)組合引擎、統一使用者介面、檔案與**的程式設計方式、部署更簡單等。

外號「flash killer」的介面設計工具:eid

另乙個與使用者介面設計相關則是wpf技術中,用於實作介面設計工具:eid。雖然議程中曹祖聖簡短地展示此工具,在演示文稿檔案中,表明eid可以產生xaml程式**,同時也是visual studio 2005原生支援的使用者介面格式,使得介面設計師可與程式設計師溝通,但他語出驚人地說到,此工具外號「flash killer」。

此工具是否真如其名,尚未有定論,但在現場展示過程中,我們可發現此工具與早期的flash開發工具極相似,連時間軸(timeline)的位置也相同,當圖形依時間軸產生動態效果時,簡直與flash如出一轍。

2d繪圖利器:筆刷功能

雖然wpf在多樣化**處理上,無論是2d或3d繪圖,以及影片處理等,仍急起直追著flash技術,但至少在2d繪圖上已經為設計師提供許多更便利的新功能,例如visual brush等筆刷(brush)。

簡單地說,設計師可以將螢幕上某個畫面當成筆刷,刷到另乙個平面,或當成材質貼到另乙個3d平面上。對純粹繪圖工具而言,筆刷是很基本的功能,但在視窗設計上,能不必經由複雜的程式設計產生這樣的特效,實屬2d繪圖上的利器。議程中,講師打趣地說著,這並非他的專長,「通常外包給畫面設計人員,還是寫程式比較好賺。」學員或許可以聽出wpf在2d繪圖上將更為便利。

備受矚目的xps檔案技術

wpf另乙個引人注目的革命便是檔案技術。微軟在下一代檔案格式,都將透過packing技術封裝成zip檔,但使用者可採用其它副檔名。學員從這場議程中將了解到,微軟對xps檔案技術有著更大的野心,例如:除了直接訪問xps(xml ***** specification,xml檔案規格書)或office 2007檔案,企業使用者將可以建立自訂的檔案格式,甚至開發檔案管理解決方案。

雖然office在辦公室應用軟體上的市場占有率高達90%以上,使得某些應用環境中甚至採用doc檔作為檔案格式的交換標準,例如**公文,差別只是檔案內容而已。新一代的xps檔案技術可以藉由xps檔案檔案格式,由使用者自訂檔案格式。現場的學員從xps檔案技術堆疊演示文稿中,清楚地看到「open xml formats」,這是微軟為解決辦公室應用軟體市場中對專屬檔案格式的疑慮,而推出的技術,特別是長期儲存的檔案。或者說,這也是微軟為了在開放原始碼角力時的主力。

視覺化呈現動態資料

wpf同時更新資料繫結(data binding)功能,與asp.net相較絲毫不遜色。其繫結目標延伸到任何元素與屬性,**除了ado.net以外,更包括clr(common language runtime)物件、xml、wpf元素。此外,繫結模型則涵蓋一次(one time)繫結、單向(one way)繫結、雙向(two way)繫結等,使程式設計師在畫面上,產生多個欄位的連動效果。最後是動態繫結,表示當事件(event)發生後,才驅動資料繫結,並反應到畫面上。這場議程略為可惜之處,在於講師僅簡單地展示,卻沒有特別例項顯現出wpf在資料繫結的強大威力。但這只是冰山一角,有心的學員將會在接續的議程中體會wpf的願景。

wpf的願景:電子檔案

第二場議程一開始,講師彭靖灝就以演示文稿帶出wpf的願景:電子檔案。講師提到,微軟針對展示層技術所揭櫫的願景,讓使用者可以用計算機螢幕瀏覽各式電子檔案。過去,這方面的應用並不成熟,畫面設計在排版或邏輯上都困難,使用者也無法習慣以計算機螢幕**電子檔案。隨著展示層技術推陳出新,使用者對出版品與電子書等要求越來越高,相同的要求也反應在web page上。

就實作技術面,wpf分為4點願景逐步實現,除了第一場次已說明的宣告式程式設計,首先是整合、向量組合式圖形作業引擎,目的是善用個人計算機的威力和強大的3d繪圖卡上圖形處理效率。其次是wpf提供處理使用者介面、檔案及**一致的作業方式,讓使用操作的經驗可整合至開發作業;最後是部署便利,允許管理人員安全的部署及管理應用程式。

為了讓學員更了解wpf的願景,講師立即以其未來目的補充願景的意涵,也就是解析度無關的圖形、雙精準度浮點座標及轉換(transformation)架構、抽離硬體能力等。簡單地說,電子檔案關鍵在於瀏覽時的彈性,不因繪圖卡、螢幕解析度等而影響閱讀。

精緻的新字型與色彩顯示技術

講師提到電子檔案所面對的十大挑戰,有些必須仰賴第三方技術與wpf共同解決,但就wpf能力所及的革新,首先是電子內文的閱讀舒適性,微軟在cleartype字型上增加y軸反鋸齒功能(ydirection anti-aliasing),使字型在放大過程中不失真。此外,在色彩顯示技術上,除了傳統的rgb等3原色外,另新增色彩飽和度。

以操作者角度改善程式介面

講師在後半場的議程討論使用者體驗此議題,他也很誠實地說到,雖然與主題沒有密切相關,還是建議學員參考微軟所提出的介面規畫模型。wpf除了展示層技術外,微軟在windows-based與web-based整合設計的問題上,也從使用者角度重新思考操作介面的規畫。windows-based應用程式常因為程式設計師的習慣,而採用許多專業術語(例如log),造成使用者無所適從。另乙個問題則在於設計師過於遵循windows設計規範,制式地在工具列上套用file、edit、tools等功能,卻忽略使用者最需要的按鈕。相關的問題,均反應出傳統windows應用程式由設計師決定操作介面設計時,缺乏引導使用者操作的問題。相對地,web-based應用程式常借由超級鏈結功能,隱藏了按鈕的枯燥與制式化。wpf結合windows與web兩種設計後,可以讓視窗化設計也具備web化的指引模式。

深入剖析微軟Office Word主控文件利與弊

所謂主控文件,就是在乙個文件中可以對此文件以外的其他多個的文件進行各種控制編輯操作,就像這些外部文件是乙個文件一樣。那麼主控文件是如何控制這些不在其中的其他外部文件呢?其實是word在主控文件中加入了對外部每個文件的乙個超連結,當展開主控文件時,word會根據其中的超連結自動開啟這些外部文件,只不過...

getsockopt的TCP層實現剖析

name getsockopt get options on sockets synopsis include include int getsockopt int s,int level,int optname,void optval,socklen t optlen 函式的呼叫關係圖如下 核心版...

剖析微軟Hyper V的最佳部署方式

2014 04 24 10 53 布加迪編譯 51cto.com 字型大小 t t 許可模式 當然了,就因為某項技術免費,並不意味著使用它就沒有相關的成本。說到許可,魔鬼往往在細節中。就hyper v server 2012 r2而言,虛擬機器管理程式的許可證是免費的。即便如此,你仍需要為將來在虛擬...