什么是WPF,经常看博客堂以及博客园的朋友,我相信眼睛都快磨出茧子来了。WPF嘛,就是现在称之为Windows Presentation Foundation,小名叫Avalon的那个东东,为了更好的实现Windows Vista体验的基础层架构,是.NET 3.0的一部分。如果一句话以蔽之,就是一个更有生产力的、更统一的用来管理用户界面、文档及多媒体等的模型。再仔细说说,更有生产力就是指开发丰富实用外观不费劲,易于快速开发,而更统一则是指开发B/S以及C/S可以统一知识域,不需要分而化之。
讲到WPF,就要提到XAML,XAML是WPF的声明性语言,提供对界面、文档以及多媒体等界面层逻辑的渲染。而且XAML可以直接在IE中打开(如右图)。同时,还有一种XBAP方式(如左图),也可以在IE中打开。两者会有一些异同,这在下面会做表述。
那么WPF/E呢,可能知道者就比较少了。这里面的E是指的Everywhere,也就是可以让WPF到处可以运行。我们知道,WPF本身是WinFX也就是现在的.NET 3.0的一部分,所以想要运行WPF,客户端必须安装.NET 3.0,而.NET 3.0的安装条件是Windows XP、Windows Vista、Windows Server 2003、Windows Longhorn Server之四大金钢。那么你如果想让WPF到处可以运行,就必须首先做到.NET可以到处安装。虽然说有专家预计在Windows Vista推出24月之内,全球会有2亿用户会使用上已经内置.NET 3.0的OS。但还有很多兄弟们仍然战斗在其它操作系统、其它浏览器、其它设备上,如何让这些兄弟们可以共享WPF之乐呢?这就是WPF/E。
而WPF/E,小名Jolt,目前正在紧锣密鼓的开发当中,一些细节尚未披露,目前可以知道的是它是使用Javascript来实 现,用来使其可以跨平台、跨浏览器、跨设备来使用。它也同样采用有些异构化的XAML来编写(主要添加了一些特殊的Javascript标记)。
对于开发人员来说,喜欢究根问底。这些方式,.EXE, .XAML,.XBAP还有WPF/E到底有何异同?在各种场合下面应该如何使用呢?我相信很多人会非常好奇。虽然看了很多DEMO,相信也有一些朋友在一些细节上还是有很多模糊。在青岛的时候,我做了下面这个表(当时展波兄也通过越洋电话提供免费支持),希望对大家有帮助。
.EXE | XAML | XBAP | WPF/E | |
IE宿主运行 | No | Yes | Yes | Yes |
支持其它浏览器 | No | No | No | Yes |
支持其它操作系统 | No | No | No | Yes |
跨设备 | No | No | No | Yes |
支持业务逻辑 | Yes | No | Yes | Yes |
需要.NET 3.0 | Yes | Yes | Yes | No |
希望对大家理解这些概念有所帮助。
补记:关于.NET 3.0的命名,我个人总觉得是一个败笔,因为.NET 3.0必须依赖于.NET 2.0的存在,没有.NET 2.0,则无法使用.NET 3.0,所以可以说.NET 3.0=.NET 2.0+WPF+WCF+WWF+WCS+…。同时原计划中的3.0有可能会被命名为3.5,而3.5倒不必依赖于3.0了,不然就没完没了了。据说当初之所以改名字是怕别人混淆,怎么刚推完.NET,又开始推WinFX了?归纳到同一品牌下我没有异议,但突然直接升级为3.0,倒使得此事有些让人混淆了,甚至有些同事至今都分不清WinFX与.NET 3.0的区别。
打赏作者
谢谢关心,终于搞清楚是怎么回事了
哦,写错了,应该是开心,呵呵
wpf/e用Javascript实现?
那么还用安装2m的东西干什么?
好久没看到你的WEBCAST了.
有没有WPF/E更详细的资料呢?
比如:
1.什么时候会发布?
2.wpf写的东西需不需要修改才能运行在wpf/e里面?
就是说 WPF/E 是最棒的了?毕竟Everywhere是相当有吸引 力的。
下载 3.0 rc+sdk就知道怎么回事了.
有点不爽的是,没有datagridview这类控件.
XBAP客户端需要xp sp2以上,不支持2000.
性能据说也不好.
huobazi:很显然,WPF/E只能是WPF的有限子集,如同Applet和flash一样的东西,不可能满足所有需求。
我想问一下,像WPF,WWF,WCF这些有没有相应的C API啊?还是只能用.NET来开发?
目前为止,如要使用XAML和后代代码的混合编码形式,WPF只支持C#和VB.NET,但是在C++/CLI里面你可以通过XamlWriter来导入XAML,然后显示到界面上。WPF,WWF.WCF都没有提供非托管的API,所以要使用这些技术,你得在.NET的环境下开发。
Sheva
我认为.NET Framework 3.0应该叫.NET Super Framework 2.0
王老师,您在Tech Ed China广州课堂上曾经引用过一张 yahoo财务报表的立体图片,能告诉我出处吗?我经常关注博客堂 ,您直接回复在后面的评论就行。谢谢
To 广州听众:
非常抱歉,那不是图片,是用WPF做的一个Demo,目前还没有发布:(
混乱好啊,混水才能摸鱼。。。