微软才推出.NET 3.0不久,相关工具尚未到位,WPF(Windows Presentation Foundation)还是个新鲜而陌生的技术名词,没想到这一会儿又冒出了一个WPF/E(Windows Presentation Foundation/Everywhere)。到底WPF和WPF/E有什么差别?和Flash又是什么关系呢?微软最有价值专家兼.NET畅销书作者奚江华,给了我们第一手的信息。
奚江华
NET书籍作家、微软专属讲师及顾问,热爱微软.NET 技术,创立「DotNet开发圣殿」BLOG,以发布.NET相关信息为宗旨,圣殿祭司则是他在网络上的代号。
问:WPF/E和WPF是什么关系?
答:WPF/E是WPF的子集,嵌入在浏览器中提供2D绘图、向量动画与影音的效果。
问:WPF/E是否可不依附在HTML或浏览器中,独立在桌面环境执行?
答:桌面应用由WPF这个巨人撑着,并不需要WPF/E从浏览器跳出,要是拿WPF/E来应付桌面应用,那么WPF/E站在WPF这个巨人面前,只会显得像侏儒般瘦小,不但突兀,而且也不符合逻辑。
WPF/E的Runtime Component下载档也只有1.1MB,相对于.NET Framework 3.0安装档约50MB以上,显得精简许多,但这并不表示WPF/E的功能很阳春,反倒有许多功能是超越HTML能力,所以虽然WPF/E本身具有独当一面的潜力,但微软目前没有让WPF/E独立的计划,反倒希望WPF/E能够与现有的网页技术互相整合,在Web上扮演好应有的角色。
问:既然WPF/E是嵌入在网页之中,不就是和Flash的定位相同?开发者该如何选择?
答:虽然WPF/E与Flash在功能与行为模式上非常神似,WPF/E也确实常被业界号称为「Flash Killer」,但撇开功能与营销上的胜负争执,其实两者本质上有很大的差异。
简单来讲,未来广大的.NET程序设计师会想拥抱的是WPF/E,因为WPF/E不是孤岛,WPF/E可以和ASP.NET AJAX、C#、VB、XAML、WF、WCF与WPF等.NET平台的技术结合,成为好开发又好维护的统合技术,而非东拼西凑的解决方案,在开发、维护与扩展方面具有很大的优势。
问:通常以向量技术所设计的网站,不能直接被搜寻引擎解析,WPF/E有这样的问题吗?如果希望提高网站的能见度,是不是就应该选择ASP.NET AJAX?
答:Flash这方面的问题,据专家表示可以在MetaData中嵌入文字,以便让搜寻引擎解析,不过若是动态的产生数据,则无法自动更新MetaData中的数据。
而WPF/E本身是以DOM型式公开它的元素树(Element Tree),所以透过最原始、最单纯的JavaScript,就能够读取WPF/E内容。搜寻引擎可以轻易对WPF/E所设计的网站进行爬文检索,完全不需要使用任何的特殊桥接器或算法。
问:WPF/E是与IE捆绑,还是可以跨浏览器?
答:目前所发行的WPF/E CTP版本安装套件,只支持Windows及Mac两种操作系统上的浏览器,实际支持规格如下:
● Windows XP SP2:IE 6、IE7/Firefox 1.5、Firefox2.0。
● Windows Vista:IE7/Firefox 1.5、Firefox2.0。
● Mac OSX
问:那么,未来WPF/E会发行Linux平台的 Runtime Component吗?
答:就我的观察,微软对Linux平台的一贯政策与作法,似乎是不会主动支持。所以这也是为什么有Mac版的WPF/E安装档,却没有Linux版本的缘故。就种种利害关系的考虑,未来不会有Linux版本的WPF/E安装档的机率似乎较大。
问:ASP.NET AJAX与WPF/E,是二择一的方案?还是未来其中一个会被对方取代?
答:基本上ASP.NET AJAX与WPF/E两者并不是相互替代,而是彼此互补的技术,两者各有其强项,所以微软的策略是整合两者的能力。ASP.NET AJAX与WPF/E结合,会比目前Web只融入单纯的Ajax技术更具吸引力。整理⊙李延华