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