WPF——微軟的UI革命
[2] WPF產業鏈
上次我寫了一篇《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相抗衡少數幾家公司之一。
留言列表