October 13, 2007

RIA兄弟俩:Silverlight和Flash RIA(上)

ActionScript3天地会公测中...

题外话:
国庆父母来杭,没空更新。国庆后,又碰上台风,kingda.org服务器挂了一天。没来的及赶上更新Flex 3 Beta 2和AIR Beta2相关更新。大家可以去Danger兄博客上看一看相关新闻。这次是回ion的帖子,说说我对Silverlight和Flash RIA的看法

(转载请注明来自www.kingda.org,谢谢)
这两天周末都要忙AS3天地会的门户和相关设置,忙过之后博客更新频率就会恢复正常,说说我对Flex 3的一些小发现,呵呵。平时我经常在AS3天地会上发帖回帖的,有空的兄弟去逛逛。


Flash与Silverlight的区别

简略讲述一下Silvrlight和Flash,XAML和MXML之间的区别。我对Silverlight用的不多,更不要谈深入的开发了。因此,本文只是一个Flash RIA开发者对于Silverlight和XAML的一些印象。如有错漏,回帖指出,好帖则奖励积分。

首先,要明确两点:Silverlight的前身就是WPF/E; WPF/E不是WPF,而是WPF的一个子集。WPF主要开发桌面应用程序,Silverlight主要用于开发Web客户端应用程序,是一个浏览器插件。

Silverlight主要使用XAML语言进行开发,但SilverLight 1.1开始支持JavaScript,C#,VB,Ruby以及Python等多种开发语言。相比Adobe AIR,显然它讨好的开发者群体更加多。但是我个人觉得AIR支持JavaScript, AS3等符合ECMAScript4的语言就可以了,没有必要再去趟更多的混水。虽然有中间语言(IL)的支持,但像微软这样一口气支持这么多的语言还是要花费大量人力的,我除了佩服之外,有着更多的怀疑和关注,看看日后的反映怎样。要知道,Adobe才支持Javascript, AS3,html开发AIR,已经被开发人员戏称为精神分裂症式的开发方式了,呵呵。

XAML和MXML

Silverlight中的XAML是WPF的XAML的一个简化了的子集,功能也要弱很多。 即使如此,也必须说,XAML比MXML要强大很多,它的理念也贯彻的更加彻底。

XAML可以描述画面结构。似乎MXML也是类似的描述界面的标记语言,但实际上XAML走的更远。XAML有点类似Adobe以前的SVG,但又包含着更深层次的含义。XAML是界面设计师和开发人员的共同语言,这是最爽的地方。也就是说,美工人员使用微软的Expression作出的美工设计图也是XAML语言的,那么开发者可以直接从这个代码开始继续开发,省去了大量的转换时间。显然,Adobe也注意到了这一点,这就是为什么最近推出"Thermo"来。Thermo是用于整合设计师和开发者,我们也可以把它理解成MXML版的Expression。这就是推出Thermo深层次原因,真正了解业界动态的人都会特别注意一个产品推出的动因和时机。



实际上,Silverlight和Flash RIA像是两个相互竞争的兄弟,不仅长得像,连实质都很类似。两个人你追我赶,互相取长补短。往往这个人,出了一点什么,另一个人很快赶上。这很好,这才是技术的良性竞争。我对Silverlight技术不抱有任何的恶感,我只是对微软的市场策略有些不爽。

哪个强一些?

Silverlight比Flash强?或者Flash 比Silverlight强?

这个问题没有必要。因为所有的回答都是针对当下的情况,而两个产品都是在不断发展。

前段时间Silverlight正式版刚出,轰轰烈烈宣传自己比Flash有多少多少优点,结果3,4个月不到,基本上这些比较优势都不存在了。



  • Silverlight支持高清视频?

    不错,是支持,但是只是微软自家的WMV9。众所周知,Flash Player 9 update(MovieStar)已经支持了行业标准的H.264 video和HE-AAC ,一下子将微软抛在后面。

  • Silverlight支持GPU?

    真正的谣言。Silverlight只是说支持硬件加速辅助系统,从未说支持GPU。WPF支持对GPU的调用,但这并不说明Silverlight(WPF/E)支持啊。估计谣言从这儿来的。相反,黑羽从某些小道消息知道,Flash Player 10(AStro)将会和GPU发生某种暧昧的关系。

  • Silverlight是XML DOM型嵌入网页的,而不是二进制文件!

    我都不知道这到底是优点呢,还是缺点。优点说,就是以XML形式描述了DOM结构,容易被外部Javascript调用,容易被搜索引擎搜录。那么我来分析分析:将应用程序的内部结构暴露给外部的脚本是否总是好的呢?符合封装的要求吗?被搜索引擎搜录,那也只是嵌在XAML里面的静态内容。RIA程序读取的动态内容还是搜不到啊。嵌在XAML里的静态内容又有多少价值呢?Google现在一样可以搜索到普通Flash swf里面的静态文本内容啊。

    最后,二进制swf文件的执行效率从理论上来说肯定要比这样的XAML语言再通过Silverlight执行要快很多。不知现实如何,希望有人测测。

  • Silverlight只是windows平台的,比不上AIR?

    那是暂时的,目前Silverlight支持windows, 苹果。通过Mono项目,不久之后也会支持Linux平台。AIR的这方面优势只是暂时的。

(未完,将于一天内更新完毕)

广告:哈哈,现在刚好是阿里妈妈推广期哦,你是站长吗?推荐注册阿里妈妈赚广告费

TrackBack

TrackBack URL for this entry:
http://www.kingda.org/mt/mt-tb.cgi/213

Comments (10)

风不惑:

这个评价很客观,谢谢黑羽。呵呵

风不惑:

对了,顺便问一下黑羽,我学as的话,需要as2和as3兼学么,我在flash这边是菜鸟级的

86:

微软的某些令人反感的宣传性文章是他的竞争对手写的

清水:

这个问题黑羽在天地会里回答过的,我把地址贴给你吧
http://actionscript3.cn/bbs/thread-25-1-1.html

Cotton:

Microsoft Active Accessibility 是版权保护?

to Cotton:
弄错了,已经改正.谢谢.^^

silverlight和AIR比不太合适,和AIR差不多的微软平台应该是WPF,当然现在还不是一个重量级的,Adobe还没有一个类似.net Framework的Framework

to ai829:
是的,准确的来说应该是silverlight与flash player是一对。AIR和WPF是一对。呵呵,所以将标题取为了Flash RIA,既包括swf,也包括AIR。^^

WPF/E其实不是Silverlight的“前身”,只是过去的代号,就如同Apollo之于AIR一样。

“Silverlight是XML DOM型嵌入网页的,而不是二进制文件!”——Microsoft官方强调的好处是Search Engine Friendly,但我确实觉得这很搞笑。用过Silverlight的人都知道其引入方式,不是好像Flash那样一个然后指定地址,而是通过JavaScript动态加载到某个的,搜索引擎要识别JavaScript暂时而言是不可能的,因此也就不可能获得Silverlight的xaml文件URL,当然更不可能索引里面的问题内容。

至于执行效率,很早就有人做了测试,一个泡泡的碰撞模型,就是一个box里面很多bubble不想碰撞。JavaScript/Flash/Flex/Silverlight1.0/Silverlight1.1都有了,你搜索一下就能找到。Silverlight的xaml性能其实不会比Flash已经编译好的swf差多少,因为Silverlight完全可以好像.NET应用程序使用JIT一样,在运行前一刻才编译为本地代码,编译的版本存储在内存中然后执行,唯一的时间差就在于一开头编译这一刻。

“Silverlight只是windows平台的,比不上AIR?”——还是WPF/E的时候,就说明了Win和OSX都有,只是死对头Linux没有。后来Mono去做了Moonlight,还说21一天就做出了能够运行的原型,当然前提是这次他们得到了Microsoft的官方帮助。

faint...原来留言中的HTML标签不能自动编码并原样(纯文本)显示出来的啊?

上文更正一下:
不是好像Flash那样一个然后指定地址 => 不是好像Flash那样一object个然后指定地址

而是通过JavaScript动态加载到某个的 => 而是通过JavaScript动态加载到某个div的

留下高见,发表评论

个人信息不会外泄,请放心填写。

姓名和Email必填。

发表评论后,请耐心等待,不要频繁刷新。提交完成后,刷新一下本页即可看到您的评论。^_^

请输入验证字符"a" :
文字广告:你是站长吗?注册阿里妈妈赚广告费

最近发表

归档

全部
Creative Commons License
此 Blog 中的日记
遵循以下授权:
Creative Commons
(创作共用) 授权
.
Google PageRank
本站被Adobe官方MXNA新闻聚合器收录
本站被蓝色理想BXNA收录