互联网经历过Web 2.0的洗礼后,网络用户不仅仅局限于简单的交互功能,而对网络产品的体验性要求越来越高,对此RIA(Rich Internet Application)技术随之而来。目前RIA技术的焦点主要集中在微软的Silverlight技术和Adobe的Flash技术,相对来说,Silverlight比Flash晚推出数年,但是其发展势头和发展方向一直和Flash遥相呼应。近些日子,在CSDN论坛和银光中国网专注Silverlight的QQ群,经常会看到一些新人的提问,什么情况下使用Silverlight技术,而什么情况下使用Flash技术呢? 本文将对此进行简单的对比和描述,但是在正文开始前,我想提前说一下,文章中没有对某一门技术进行抨击或者贬低的言语,只是提出个人观点,供大家参考,如果您有不同的看法,欢迎留言讨论。

 

Flash 10.1 & AIR2

 

Flash的开发工具,Adobe的Flash开发平台提供开源的Flex SDK,另外提供免费Flex编译器,IDE开发工具是使用基于Eclipse IDE的Flash Builder。其运行环境是基于浏览器的Flash Player和Adobe的AIR,该运行环境支持Windows,Mac和Linux平台,并且支持RIA应用直接安装到桌面,其运行效果和功能与本地应用相同。 另外,Adobe利用其自身强大的设计开发工具背景,提供一系列Flash开发辅助工具,为开发人员或者美工设计人员提供强大的并且专业的交互设计支持,这里值得一提的是Flash Catalyst,该软件快速的设计出专业的Flash用户界面和行为脚本。

 

按照目前市场占有率分析,Flash仍旧具有较大的用户群,这不仅仅是归功于Flash Player的普及,Flash本身强大的Digital权限管理,流媒体功能,以及Flash Access 2.0数据下载等功能也是功不可没。在远程网络方面,Flash支持SOAP和REST Web Services,另外支持ASP.NET,J2EE,PHP,BlazeDS和ColdFusion等不同语言平台的数据服务。在开发语言上,ActionScript 3从早期的脚本语言发展到现在面向对象,事件驱动的强大的开发语言,也是一个强大的优势。新版的AIR 2发布后,Adobe将重心放在桌面应用开发上,其强大的调用本地代码类库的功能使其应用功能更为强大,AIR2的桌面应用可调用.Net或者Java的已有类库,同时该桌面应用支持UDP,IPv6等网络协议。作为Windows客户端,其强大的DRM控制可以提供流媒体数字版权控制。

 

Silverlight 4

 

微软的Silverlight开发平台同样为开发人员提供专用的运行环境和SDK,其IDE开发工具是Visual Studio系列,同样,微软也提供了免费开发工具Visual Web Developer Express版本,Silverlight应用也是基于浏览器Silverlight Runtime,该运行环境直接Windows,Mac和Linux平台,Silverlight 3版本以后,支持Out-of-Browser模式应用,可将Silverlight应用作为桌面应用方式安装到本地运行。不仅如此,微软将F#运行环境同时集成到Silverlight中,这样可以轻松开发出Silverlight和基于Ajax技术的应用。对于辅助设计软件,微软提供了Expression Studio系列产品,该产品包括Blend,Design,Encoder等系列辅助设计工具,用于Silverlight项目布局,素材,动画等设计功能,其中需要特别说明的是Expression Blend,该工具和Flash Catalyst很相似,辅助设计Silverlight项目交互界面,另外Blend和Visual Studio可以实现无缝结合,减轻了开发人员和设计人员的后期项目综合的负担。

 

对于Silverlight 4的新功能介绍和其优势,这里我不在赘述,大家可以参考这篇文章“Silverlight 4正式版”

在对比过Silverlight和Flash后,大家也许能发现,微软Silverlight中时常会发现许多Flash的影子,而在有了Flash的基础上,似乎更容易为Silverlight做出评估。这里我使用一个简单的表格进行对比:

 

 

Silverlight 4

Flash 10.1/AIR 2

客户端平台支持

Silverlight 4支持运行在Windows XP SP3Windows 7/VistaWindows Server 2003 SP2 Windows Server 2008 SP2 Windows Phone 7 Symbian系统平台,另外支持WindowsMacLinux下主流浏览器作为运行平台。

Flash支持运行在Windows XP SP3, Windows 7/Vista, Mac OS X, and Linux (Fedora Core 12, Ubuntu 9.10, OpenSuse 11.2); Flash Player 10.1 for Android. 当前仍旧没有支持64Windows系统的Flash Player

开发IDE工具

主要开发工具是Visual Studio 2010,需要安装Silverlight 4 developer tools 和相关SDK,以及WCF RIA Services 1.0安装包。可使用WCF RIA Services开发模板,创建n-Tier数据存储应用。具有优秀的Debug功能。同时具有强大的Silverlight Toolkit开发工具包支持。

主要开发工具Flash Builder可以绑定开发FlashAIR应用。但是代码转换过程需要另外的辅助工具BlazeDS或者LiveCycle支持。ActionScriptDebug功能相对弱于Visual Studio

UI设计

主要设计工具Expression Blend 4,该工具不仅提供UI控制,还可以进行动画设计以及行为代码设计。该工具同时包含Xaml代码设计界面和后台代码设计界面。该工具与Visual Studio2010无缝结合,使设计和代码后期综合变的轻松异常。另外Visual Studio 2010同时支持Silverlight UI设计。

Flash CatalystFlash主要设计工具,与CS5设计工具系列无缝结合,可以轻松导入项目。但是其他设计工具修改文件时,不能在Flash Catalyst中重新打开,作为设计工具,这点略逊与微软设计工具。

媒体编码

支持音频/视频格式:WMV/WMA, H.264, MP3, AAC

支持音频/视频格式:Sorenson Spark, ON2 VP6, H.264, F4V. ADPCM, MP3, AAC, Speex.

数字版权(DRM

支持Windows Media Digital Rights Management 10 (WMDRM 10)Microsoft PlayReady DRM加密流媒体。目前暂时不支持Linux客户端。

Flash Access 2通过Flash或者AIR客户端提供内容保护和设备存取安全控制。相对来说其验证机制和开发规则较为规范。支持HDCP标识。支持Flash Media服务平台和Http动态数据流。

 

 

这样看来应该更容易帮助大家理解和认识Silverlight和Flash这两个技术的不同和相同点。

 

那么具体到项目,该如何取舍两门技术呢?

首先我们需要客观的说,Flash在RIA技术中仍旧处于龙头地位,终归Flash Player具有全球浏览器93%的装机量作为支持,为Flash提供了非常广的应用范围。

但是,我们也不得不承认Silverlight发展速度的迅速,从Silverlight 1.0到4.0,我们目睹着Silverlight在一天天的进步,逐渐变的强大,而客户群也在稳定增长当中。终归微软仍旧占据浏览器市场的50%份量,作为浏览器插件Silverlight也是具有相当大的潜在力量。

 

个人观点,从微软和Adobe两个公司的发展历史来看,微软的产品更注重于开发人员,而Adobe的产品偏向于设计人员。这也就是说,在项目中,如果需要大量的程序编码和数据存取操作,特别是基于Windows平台的应用,Silverlight自然是首选。而如果项目中涉及少量的服务调用,需要展现大量的图形图像效果,或者是说在开发过程中,美工设计部分属于重点,则推荐使用Adobe的Flash,终归Adobe的设计工具在业界一直作为首选。

 

从目前来看未来Flash和Silverlight的竞争,也许是在移动平台上的表现。Flash刚被苹果解除封杀,目前有望第一步占领iPhone和iPad平台,而Silverlight已经被Windows Phone 7所支持,下周12号Windows Phone 7正式发布,市场占有率还有待观望。不过两者所需抢占的下一个移动平台主战场应该是Android平台,终归Android平台已经被不少手机平台所支持,作为开源平台,同时也被大部分应用开发厂商关注。

 

最后附上InfoWorld.Com对Flash10.1/AIR2和Silverlight 4各项测试评分表,供大家参考:

 

 

 

更多关于Silverlight和Flash对比文章:

 

网络战国——Flash, Silverlight与HTML5

 

Flash与Silverlight多领域实测对比

 

Silverlight 3与Flash横向比较

 

 

欢迎大家加入“专注Silverlight”QQ技术群,目前,1-6群都已经满员,新开500人七群,欢迎大家加入一起学习讨论Silverlight&WPF开发技术。 
22308706(一群) 超级群500人满 
37891947(二群) 超级群500人满 
100844510(三群) 高级群200人满 
32679922(四群) 超级群500人满 
23413513(五群) 高级群200人满 
32679955(六群) 超级群500人满 
61267622(七群 推荐) 超级群500人未满