WPF简介
WPF的全称是Windows Presentation Foundation,是微软新发布的
Vista操作系统的三大核心开发库之一,其主要负责的是
图形显示,所以叫Presentation(呈现)。
作为
新的图形引擎,WPF是基于DirectX的,当然增加了很多新的功能。其2D和3D引擎的强大看看Vista的界面就明白了,再加上其对Aero图形引擎的支持,更加让你刚到神奇。顺便提一下,Aero是专门为3D桌面开发的引擎,可以让桌面实现神奇的3D翻转,这绝对是操作系统有史以来的一次神奇尝试,虽然对硬件配置的要求也是惊人的,此前已有相关报道称,Vista对显卡十分挑剔就是出于运行Aero的考虑。
WPF前景分析
WPF其实不仅仅是图形引擎而已,它将给Windows应用程序的开发带来一次革命,因为新的架构提供了一种全新的开发模式。当然对于普通用户而言,最直观的就是界面越来越漂亮,看起来越来越舒服了;但对于开发人员而言,界面显示和代码将更好的得到分离,这与从前的桌面应用程序开发有很多不同(界面设置和代码是融合在一起的),这是比较具有革命性的改变之一。还有就是桌面应用程序和浏览器应用程序的融合,根据ms的承诺,正在开发中的WPF/E,即WPF Everywhere版本,将为基于WPF的应用程序提供全面的浏览器支持,这意味着未来开发出的应用程序将可以基于浏览器在不同的操作系统上运行,当然由于目前还在开发中,我们并不确定会不会有一定的限制,根据WPF/E开发组的定义,WPF/E仍然是WPF的子集,而不是后继版本。总体而言,WPF的前景应该是一片光明。
WPF使用一种基于XML的语言完成工作。这种语言被称为XAML,XML应用程序标记语言。
其次,WPF使用一种
基于向量而不是基于光栅的绘制引擎,这和曹其的Windows的绘制引擎是截然不同的。光栅绘制引擎通过在屏幕上
绘制象素点来绘制表面。象素只是点;这样的话,如果屏幕分辨率(DPI,每英寸点)增加了,它的效果就会变差。随着现在屏幕都采用超高DPI的分辨率,字体必须使用成百上千个DPI来达到一定的浏览效果。比如微软Word里缺省的英文字体12号的Times New Roman,在现在的普通分辨率情况下效果还可以但是到了超高分辨率的显示器上效果就不行了。管理这些基于光栅的图像的点将会消耗大量的处理能力,同时也是很浪费的。
而采用基于向量的方式来替代象素,在一个可扩展的坐标系里绘制字体和其他线型,使得它们可以独立于DPI。想想Windows Metafile(WMF)和位图文件(BMP)之间的差距你就明白了。同时,向量图也使得一些变换如3D,旋转和动画变得更加方便和易于操作。
SliverLight这段时间已经闹得沸沸扬扬了,也许大家对他还是一知半解,这篇文章是出自微软WPF/E产品组的主管的解答,我认为是比较准确的,没有把SliverLight说得像外面传说的那么夸张。其实在目前SliverLight 1.0 Beta阶段它还只能是与HTML互补,代替以前的一些VML,SVG,FLASH功能。SliverLight 1.1 改进了许多,但目前还是Alpha版,相关的资料和示例也比较少,也没下载试试。Silverlight 1.1 Alpha是基于Silverlight 1.0 Beta的,但添加了托管代码的编程功能和托管代码对象模型。 除了包括Silverlight 1.0 Beta的功能外,Silverlight 1.1 Alpha还包括了一堆旨在改进开发人员的效率和威力的新的特性,包括:
托管代码的支持
对包括托管Microsoft JScript 和Python的动态语言的支持
基于WPF的丰富UI控件模型
改进的网络层,对REST, RSS, JSON, 和 POX 的支持
增强的,双向的HTML/AJAX架桥
全面一致的基础类库
对LINQ的支持(LINQ to Objects, LINQ to XML)
以下是微软WPF/E产品组的主管对Silverlight 1.0(那时还是叫WPF/E) 的定义回答:
摘自http://blog.joycode.com/saucer/archive/2006/12/08/88707.aspx
原文:http://blogs.msdn.com/mharsh/archive/2006/12/06/what-is-wpf-e-really.aspx
Mike Harsh 是微软WPF/E产品组的主管(Program Manager),针对论坛上的疑问,他在博客里澄清“WPF/E到底是什么东西(What is WPF/E really)?”,该文的大意是:
...
WPF/E从技术上来说,是WPF的一个子集,但这个子集是认真挑选出来允许那些仅用HTML是难以实现的web应用场景。
从浏览器的角度来说,WPF/E 是个插件,它增强了目前由HTML提供的功能,提供多媒体,动画效果和矢量图形等功能,提供了跟HTML DOM 一样的编程模型。当前的WPF/E CTP版本不代替HTML的技术,而是增强了目前浏览器的UI功能。
就象你可以通过网页上的javascript脚本来创建,访问和修改HTML元素一样,你也可以通过网页上的javascript脚本来创建,访问和修改WPF/E元素。HTML是文本文件,同样的,WPF/E中的XAML也是文本文件。
HTML提供了文字布局,输入,表格以及一些简单的UI控件,而 WPF/E 则提供了多媒体播放,矢量图形绘制,和动画支持。它们各有所长,互为补充,相得益彰。
但这并不表明WPF 的其他特性不会在WPF/E的将来版本中出现,因为确实有计划扩展WPF/E的功能,这些功能会与HTML提供的功能相重合。象文字输入,布局,资源,数据绑定,CLR集成等都在将来扩展的范围之内。
...