|
上次我寫了一篇《WPF簡介》,當時我僅僅是對WPF有初步認識,但通過近期的學習之后,我開始逐步領會WPF的真正意義,它不僅僅是一項技術而已,它給我們帶來的將是一場UI革命。
回顧過去
在過去幾十年里,Windows的用戶界面在不斷的改進,特別是Windows XP的推出,給人眼前一亮的感覺。在過去的日子里,有許多程序員和公司為了實現類似于、甚至優于Windows XP的用戶界面,大量制作了基于Windows Forms的自定義控件,通過重寫OnPaint來對控件做徹頭徹尾的美容。隨著Web 2.0的不斷流行,Web界面也逐步開始仿造Windows Forms的路線,開始制作類似于Windows Forms的界面,這些控件它們可以像Windows Forms一樣拖動、有相當漂亮的外觀,再加上AJAX,一切都似乎和Windows Forms沒什么差別了。但這只是用戶的看法,對于程序員來說,如今要完成一個類似于Windows Forms的Web界面談何容易,你必須精通JavaScript, AJAX, XML, XSLT等,這些技術每一樣都需要太多的磨練,特別是JavaScript,還要考慮瀏覽器兼容性,工作量會更加顯著。
在以上的Windows Forms和Web Forms開發中有一個很明顯的特點,程序員永遠要承擔一部分美工的工作,即使美工幫你把一些圖片都設計好了,你還是不得不用GDI或者HTML Table來幫這些圖片拼湊起來,這是很尋常的事,相信每一個有過UI開發經歷的程序員都體會過。
在這里我不得不提一下Adobe Flash。在Adobe收購Macromedia之后,Flash開始走專業化開發路線,相繼出現了可以用于開發商業級Flash應用程序的軟件包,這個如今幾乎可以運行在任何一臺計算機上的矢量圖形軟件的確做的很不錯,它很好地解決了速度和漂亮的關系,使得在InterNET上運行及其漂亮的界面成為可能。但到目前為止,使用Flash的人大部分是美工,這就決定了即使開發應用程序,很多也是半路出家的美工們在做開發,我并不是看不起這些美工,但術業有專攻,美工能力強,不等于編程能力強。這就導致目前市面上大部分的Flash應用程序停留在一個初級階段,無論是OO還是架構設計,都無法達到成熟商業應用的等級。
WPF帶給我們什么
最讓人熟悉的肯定是WPF的XAML語言,這一語言自從Avalon階段就被炒得沸沸揚揚,很多人都說這是一種全新的語言,它可以如何如何如何。。。但有多少人知道它的真正意義。XAML在WPF中的真正用途是界面描述,當然它也可以用來寫代碼。XAML將有效地把界面從代碼中分離出來,使得程序員和設計師可以更好地合作,創造出更加優秀、漂亮的應用程序,這是以前人們無法想象的。雖然使用xml作為界面載體并不是什么新技術,但微軟把它作為一個戰略來推廣自然將大大增加它的使用范圍,通過微軟的一系列開發工具,可以讓初級程序員也可以基于這一架構開發出優秀的軟件產品來,這就是微軟開發工具的魅力
正因為XAML可以做界面描述,而且微軟正在打造一個全新的基于XAML的開發架構,在未來的某一天我們將看到大量的調用XAML的WPF程序,在1-2年內,我們的瀏覽器中將大量安裝WPF瀏覽器插件,我們將看到許多不可思議的漂亮應用程序,這些都是WPF帶給我們的。
XAML本身的靈活性是很好的,從理論上講它可以描述任何想要描述的東西,這里面自然也包括矢量圖形。
目前微軟正在加緊開發一整套基于XAML和WPF的矢量圖形解決方案,并將包括在一個叫做Microsoft Expression Studio軟件套裝中,在這個軟件套裝中有Expression Web, Expression Blend, Expression Design, Expression Media。詳細的信息,大家可以去看看http://www.microsoft.com/products/expression/en/default.mspx。在這里我先對這四款軟件做一下簡介:
Expression Web
類似于原來的Microsoft FrontPage,增加了不少.NET的元素在里面,但總體界面看起來還是像FrontPage的升級版
Expression Blend
專門用來設計界面級XAML的軟件,這款軟件是專門供界面設計人員使用的,而WPF編碼可以在Visual Studio中完成。
Expression Design
專門用來設計矢量圖形的軟件,也是基于XAML的,因此設計出來的東西都是可以嵌入WPF界面中的
Expression Media
專門用于做媒體編輯、管理、播放的工具,估計會與Microsoft Media Foundation捆綁起來。
其中的Microsoft Expression Blend和Microsoft Expression Design就是專門為WPF和XAML設計的。從軟件功能上看,Microsoft Expression Design是專門為了與Flash的矢量圖形編輯軟件競爭而開發的,至于Microsoft Expression Blend+Visual Studio Orcas則更像Flash的Apollo。從這些跡象來看,微軟已整裝待發,準備進入矢量圖形領域,如果不出意外地話,在未來2-4年里,WPF將占據至少30%的市場份額,成為矢量圖形領域可以與Adobo相抗衡少數幾家公司之一。
WPF產業鏈將在2-3年內形成
隨著WPF的大面積推廣,基于XAML的矢量圖形設計產業將很快形成,當然在最初的1-2年里可能無法吸引高端的專業設計人才加入,因此設計出來的界面也會稍顯生硬,就像當初Flash剛開始流行的那幾年,但在之后,將會逐漸走入正軌,大量的專業設計人才將開始學習XAML,并將原來的Flash作品逐步移植到XAML中。
這其中將重要包括兩個產業:
矢量圖形/動畫設計產業
這是一個圍繞Expression Design展開的產業,該產業將十分類似于目前的Flash產業鏈,會有大量的矢量圖形設計公司涌現出來。還有一些公司則會做一些動畫品牌,就像當年showgood這樣的品牌。另外大家要注意一點,WPF不單單支持2D矢量圖形設計,也支持3D矢量圖形,因此這一產業要比Flash目前的產業發展的更加壯大,雖然一些第三方公司提供了一些支持3D的Flash設計軟件,如Swift,但這始終無法彌補Flash的“先天不足”。
界面設計產業
這是一個圍繞Expression Blend展開的產業,主要負責為軟件公司提供界面設計外包服務。該產業有一部分會與矢量圖形設計產業重疊,因為在界面設計中要大量嵌入矢量圖形。但要注意,這一產業與傳統的Flash界面設計產業是不同的,它所吸引的將是更多的專業軟件UI美工,而不是動畫設計師。Flash之所以無法形成這一產業是因為Flash的應用程序設計始終停留在初級階段,到目前為止Flash仍然無法將界面和代碼徹底分離,這就直接導致了后期維護成本太高,以至于很多架構師或系統分析師即使有很高的界面需求也不會考慮采用Flash來設計完整的應用程序,而只是插入一些Flash動畫來做補充,最典型的例子就是QQ和MSN的動畫表情。
當然這兩個產業還會帶動一些周邊的產業,如圖形設計培訓產業、包裝設計產業、媒體等,在這里就不一一介紹了。
總結
從2007年3月份開始,微軟將正式開始宣傳其下一代開發架構——.NET framework 3.0,WPF自然是其中的一個重頭戲。在此之后各種推廣工作也將陸續展開,UI的革命即將開始,正如Adam在《WPF Unleashed》中所說的:用WPF創造科幻片中的奇幻般的應用程序并非難事。
在看完本文之后,大家可能會有這樣的疑問:是不是以后Flash的東西會越來越少呢?當然不是,基于XAML的矢量圖形的確會風靡,但不會完全占領Flash市場,Flash在動畫設計方面的優勢仍然存在,因此充其量只是共同發展的局面?,F在還有一個不確定因素就是:微軟高度對于這一產業的重視程度,究竟會扶持到什么程度沒有人知道,中國市場自然將成為這一產業發展的重頭,但從微軟總部目前對于微軟中國的投入來看,似乎有些懸,至于接下來會發生什么,大家還是拭目以待吧。
以上言論純屬個人觀點,有說得不對的地方還大家指正。
NET技術:WPF——微軟的UI革命,轉載需保留來源!
鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。