掀起你的盖头来美丽的Avalon
技巧与实践
同普通用户热捧Windows Vista(以下简称Vista)稍有不同,程序员对Vista给我们带来的WinFX似乎更感兴趣,因为它为程序员开发功能够酷界面够炫的新型软件提供了所需的全部资源。
WinFX由Avalon(Windows Presentation Foundation)、Indigo(Windows Communication Foundation)和WinFS三部分组成。拨开缭绕的薄雾,我们已能大体看清WinFX的庐山真面。
Avalon横空出世
从Windows 3.0开始一直到目前的Windows XP,Windows的绘图环境都是简单而原始,图形设备接口(GDI)仅给开发者提供了有限的视觉选项。
随着3D硬件的不断发展,我们在传统的Windows程序下看到的简陋界面与在PC游戏中所能看到的华丽界面形成了强烈的反差。Avalon的设计初衷就是用来弥补它们之间的鸿沟,它主要提供了两个重要的细节:
1.它提供了一个全新的渲染及合成模式供开发者使用。这个新的模式将能够利用最新和最优的视频硬件优势,如3D。这并不意味着要使用它去建立“3D”,而是意味着许多让人印象深刻的视觉效果有了实现的可能。
微软在Vista的GUI设计上下了很大功夫,Avalon表现层扮演着核心角色——Vista将拥有Aero Glass、Aero以及“经典模式”三种不同的图形界面,其中最高等级的Aero Glass将具有半透明及3D阴影等美轮美奂的效果(图1)。

2.它提供了全新的设计模型,允许软件开发者去建立新的用户接口(例如采用XAML方式建立模型)。
对大多数用户而言,都不会直接使用到Avalon。事实上,它提高的是图形处理能力,让开发人员可以编写出界面绚丽的应用程序。到目前为止,微软希望可以把Avalon中尽可能多的功能引入到现有的操作系统之中。新旧系统最大的分别就是Vista里的新图形驱动可以达到更好的性能,同时也需要新的硬件来支持它。但在Window XP和Windows Server 2003中,如果使用Avalon引擎,会出现系统性能下降的情况,具体表现就是阴影,灰度级甚至3D动画的显示效果都会稍逊一筹。
Avalon掀起你的盖头来
现在微软终于推出了全新的图形界面Avalon,并提供SDK使程序员能畅游其间,程序员在开发程序时烦恼可谓一扫而光。基于.Net和DirectX技术的Avalon不仅带来了前所未有的3D界面,而且它的图形向量渲染引擎也大大改进了传统的2D界面,使界面元素更趋丰富和生动。Avalon还对多媒体及游戏提供了更好的支持,并大大降低了这类程序的开发难度,因为Avalon相当于在应用程序和DirectX之间提供了由强大图形界面类库构成的管道。
Avalon将为.Net架构新增加一组类集合,主要包括MSAvalon.Windows、MSAvalon.Windows.Controls、MSAvalon.Windows.Media等多个命名空间。有了它们,程序员就可以使用.Net下的开发工具如C#、VB.NET、VC++.NET以及其他支持.NET公共语言规范(CLS)开发工具编写的Avalon类型应用程序。为方便程序员使用Avalon,微软还特意提供了各类Avalon的程序模板。
Avalon是基于.Net框架和DirectX 9.0图形API接口的。为浏览程序、表单程序、图像、视频、音频、文档等提供了一个单独的Runtime,为开发者们提供了统一的图形开发接口。Avalon 具有五个元素系列(图2)——Control控件系列、Panel面板系列、Decorators系列、Shapes系列、Content Elements 系列。程序员可以使用它们来进行新一代的程序图形界面的开发。

值得注意的是:Avalon应用程序的图形输出与GDI不同,不是按照过程化指令顺序执行的,而是用不同层次的对象及其属性提供的。Avalon中所有图形场景都是由Avalon的类模型中不同层次的对象,即对象树构成的(图3)。

Avalon与DirectX的区别
既然我们有了DirectX,为什么还要Avalon?Avalon 3D编程模型具有Avalon的许多特性,例如对界面的3D处理比DirectX更为简单。这就意味着如须向Avalon应用程序中添加一些3D内容,将变得更加方便。
使用DirectX则可对图形硬件进行低级别的访问,并最大限度地控制该硬件的运行方式。DirectX使程序员能更全面地控制如何在内存中存取3D画面,这对于构建高度优化的3D画面表示形式的应用程序而言十分重要,但操作比较复杂。
Avalon联姻XAML
小知识
XAML也可以创建Avalon对象树,其代码不仅可以描述静态场景(如HTML、Postscript),也可以描述动态效果,如动画甚至事件处理代码。在XAML中创建UI与用HTML开发网页很类似。但是XAML的性能要强大得多,它增加了高级的2D和3D向量图形、动画、数据绑定、事件处理以及语音识别与合成。
Avalon另一个引人注目之处就是它与XAML(eXtensible Application Markup Language,可扩展应用程序标记语言)的紧密结合。XAML是一种基于XML的标记语言,可视为XML的扩展,利用它所包含的诸如文本、图像、控件等界面元素可以自由定制应用程序界面,而这些界面元素都是Avalon图形引擎驱动的。XAML的代码既可在插件的支持下在IE中执行,也可以编译成独立的可执行文件。绝大多数Avalon程序都包括实现功能的程序代码和定义界面的XAML,而且所有的.Net开发语言代码都可嵌入到XAML中。当然XAML并非不可或缺,它的功能完全可以通过程序代码来实现,不过这将大大增加开发的工作量和调试难度。不难看出,XAML具有同ASP.NET类似的特征——程序代码和界面描述代码可分别开发,非常适合团队协作。
Vista发展动态
Vista beta2惊现3D窗口
在上周的PDC 2005大会上,微软展示了作为Vista Beta2预览的版本号为5129的系统截图。从流传出来的图片中,出现了传说中的3D窗口。

Vista将加强视频防盗技术
在微软下一代操作系统Vista中,将加入前所未有的视频防盗版技术。这套全新的数字安全检测系统如果发现盗版影片的播放,操作系统将自动断开与显示器或者电视设备的连接。毫无疑问,好莱坞内容提供商对于这一特性将拍手称快。
Vista将不受系统重启困扰
Vista正式发布的拥有一种全新的漏洞补丁技术,可大大减少系统重启的次数并在关机前保存用户的所有数据。微软的一名官员在周五的声明中称,该技术代号为“冷藏”(Freeze Dry),在Vista中使用了新的重启管理器。安装新操作系统之后,用户不必在每次安装完应用程序或升级后重启系统,甚至可对某些运行状态下的应用程序打补丁。
后记:
按照微软的计划,Avalon将于2006年正式发布。对于Windows而言,Avalon 是一个一元化的子系统,由一个显示引擎和一个受管代码框架构成。目前,Avalon技术已更名为“Windows Presentation Foundation”,它统一了Windows的创建、显示、操作文档、媒体和用户界面的方法,使得开发人员和设计人员能创建视觉美观、个性化的用户体验,这些体验能提高与客户的应用程序连接。