上次我写了一篇《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相抗衡少数几家公司之一。
继续>>下一页[第1页][第2页]