2.WPF何以令人佩服
一直以来,完美的用户体验是桌面应用程序和Web应用程序中的一大障碍。许多开发人员绞尽脑汁将界面设计得美观炫丽些、互动感强些,但费了九牛二虎之力,还是差强人意。由于技术上的限制,Web 应用程序无法提供与桌面应用程序同样丰富的用户体验。而随着电脑与每个人的生活、工作变得密不可分,人们对桌面应用程序的要求也不断提高。永不满足的人们要求桌面应用程序能够播放视频、运行动画、采用二维或三维图形,以及调用不同的文档。
想实现这些吗?那就用WPF!来句流行的广告词:用了都说好!
使用 WPF,你可以创建丰富、美妙的连接应用程序,以充分利用 Windows 平台,其中包括 UI、媒体、脱机通信和文档支持。
先来说说WPF程序的设计制作过程。
一般地,大多数WPF程序都将同时包含XAML代码和程序代码。我们首先使用XAML定义程序界面(如前所述,可以手工编写,也可以采用Experssion Blend等可视化工具编写),然后再用.NET语言(C#, VB.Net等)编写相应的逻辑代码。和ASP.NET类似,逻辑代码既可以直接嵌入XAML文件中,也可保存为独立的代码文件。
尽管XAML并非设计WPF程序所必须,我们依然可以按照传统方式使用程序代码来实现界面设计制作。但是,如果使用XAML,界面设计和逻辑设计就可以完全分离。这样,不但使程序的开发和维护更加方便,而且当进行团队开发时,可真正实现“专业的人做专业的事”,把界面设计交给专业的美术设计师们去完成,而让我们精力和时间都宝贵的程序员们专心致志于业务逻辑的实现。真正做到“各尽其能,各施其职”,最终得到一个功能强大、界面一流的WPF程序。这时,就只等用户“满意一笑,开心买单”了。
听说现在的人都讲求实在,讲求效益。那么,WPF给我们的桌面应用程序和Web应用程序带来了哪些实实在在好处呢?
首先,一套编码,桌面应用程序与Web应用程序均可运用,这当然就节省成本啦。当然,某些时间,改改适当代码是必需的。但改动量如此之小,让你很惊异伟大的Microsoft,让你不得不服(WPF的“我佩服”传说就此而来?)。
其次,WPF不仅使美化、多样化了桌面应用程序,也是使Web变得异彩纷呈。WPF使得3D进入Web成为可能。比如,你可以使用矢量图形设计软件(Illustrator, CorelDraw等, 微软也有了!叫“Expression Designer”)设计好图片,然后将图形输出或导出成为XAML格式。然后,你可以在Blend中打开XAML文件,制作成动画,最后生成的也是XAML。通过.Net语言(如C#)进行编程,还可以控制这些XAML。加上有VS2005/2008优秀的开发环境,可谓之“牛B无敌”。XAML+C#是大趋势,必将吸引大批追捧者(从微软.Net的成功,已从一个侧面印证了这一点)。
更多的技术细节。
实际上,WPF 的支持范围远不止基本用户界面应用那么简单,还包括:
(1)文档的变革。之所以称其为“变革”,是因为它不仅可以使用传统的屏幕显示/打印文档(XPS),而且还可以使用 FlowDocument 标记来显示流文档。文档中不仅可以有文字、图片、链接,还可以有三维动画、视频等。试想一下,在某个重要的日子,当你将所有与他/她在一起时浪漫的照片、温馨的视频、甜蜜的话语,加上潇洒的签名,发挥你丰富的想象力,做成一个动感十足的动画,或是丰富趣味的互动游戏,将之保存为一份多媒体文档,在恰当的时间,利用恰当的机会,把它送给他/她的时候,