对于两个事物的比较,我们通常会从两个方面出发,共同点和不同点,今天我也打算这么来比。
首先来看共同点:
1. 两者都是用于RIA(富英特网应用)开发的。
2. 两者都提供了基于矢量的图形/动画解决方案。
3. 两者的播放器都是用ActiveX写的。
4. 两者都有自己独立的图形和程序开发工具。
再来看不同点,那可就多了,下面一一列举:
文件格式
Flash/Flex | Silverlight | |
UI代码文件 | .fla, .mxml | .xaml |
后台代码文件 | .fla, .as | .cs, .vb, .js |
编译后文件 | .swf, .swc | .dll |
支持的浏览器、操作系统
Flash/Flex | Silverlight | Moonlight | |
浏览器 | Firefox, IE, Safari | Firefox, IE, Safari | Firefox, IE, Safari |
操作系统 | Windows, Mac, Linux | Windows, Mac | Linux |
编程语言
Flash/Flex | Silverlight | |
UI描述语言 | MXML | XAML |
主语言 | ActionScript | JavaScript,C#, VB.NET |
产品发布
Flash/Flex | Silverlight | |
1996 | Flash 1 (Macromedia) | |
1997 | Flash 2 (Macromedia) | |
1998 | Flash 3 (Macromedia) | |
1999 | Flash 4 (Macromedia) | |
2000 | Flash 5 (Macromedia) | |
2002 | Flash MX (Macromedia) | |
2004 | Flash MX 2004 (Macromedia), Flex 1 (Macromedia) | |
2005 | Flash 8 | |
2006 | Flex 2 (Adobe) | WPF/E |
2007 | Flash Player 9, Flash CS3 | Silverlight 1.0, Expression Studio 1.x, Visual Studio 2008 |
2008 | Flash Player 10, Flash CS4 , Flex 3 | Silverlight 2, Expression Studio 2, Visual Studio 2008 sp1 |
2009 | Flex 4, Flash Catalyst | Silverlight 3, Visual Studio 2010 |
2010 | ? | ? |
功能
Flash 8/9 | Flex 3/Flash 10 | Silverlight 2 | |
控件库 | 有 | 有 | 有 |
UI界面描述语言 | 没有 | MXML | XAML |
2D矢量图形/动画 | 支持 | 支持 | 支持 |
3D矢量图形/动画 | 不支持 | 支持 | 部分支持 |
脚本引擎 | ActionScript2/3 | ActionScript 3 | JavaScript |
图形硬件加速 | 不支持 | 支持 | 部分支持 |
流媒体 | 部分支持 | 支持 | 支持 |
视频、音频解码器 | 无 | 部分 | 有 |
高清视频(>720p) | 无 | 无 | 有 |
P2P(Socket通讯) | 支持 | 支持 | 支持 |
在线录音 | 支持 | 支持 | 不支持 |
在线摄像 | 支持 | 支持 | 不支持 |
跨域策略 | 支持 | 支持 | 支持 |
与JavaScript通讯 | 支持 | 支持 | 支持 |
本地存储 | 支持 | 支持 | 支持 |
与服务器进行数据交换(如Web服务) | 支持 | 支持 | 支持 |
与AJAX融合的能力 | 支持 | 支持 | 支持 |
内容保护功能 | 无 | FMRMS | DRM |
SEO优化 | 不支持 | 支持 | 支持 |
本地化 | 不支持 | 支持 | 支持 |
深度缩放(电子地图需要用到的技术) | 不支持 | 不支持 | 支持 |
跨平台 | 支持 | 支持 | 部分支持,不支持Linux |
图像文件 | 支持 | 支持 | 仅支持jpg和png |
媒体标记 | 不支持 | 不支持 | 支持 |
位图特效(bitmap effects) | 支持 | ||
远程调试 | 不支持 | 不支持 | 支持 |
文件上传 | 支持 | ||
XML | 支持 | 支持 | 支持 |
XSLT | 不支持 | 不明 | 支持 |
移动设备支持 | 有 | 有 | 有 |
部署
Adobe | Microsoft | |
用于服务器的操作系统 | Linux, Windows Server 2003/2008, Solaris 10 | Windows Server 2003/2008 |
专用服务器软件 | Flash Media Interactive Server / Flash Media Streaming Server、Apache/IIS、SVN Server | Windows Media Service、IIS/Apache、 Team Foundation Server |
用于开发的操作系统 | Linux, Windows,Mac | Windows、Mac |
开发工具 | Flex Builder, Adobe Creative Suite | Visual Studio 2008 (sp1), Expression Studio, Paint.NET(可选) |
播放器装机量
目前Silverlight装机量很低,不超过2%,这方面Flash占据了绝对优势,这也是为什么目前ISV不愿意选择Silverlight进行开发的原因。
总结
就目前(2008年底)而言,Silverlight从技术上讲已经基本成熟,并且可以与Adobe的Flash正面交锋,但由于装机量的原因,仍然有很多厂商不愿意基于Silverlight进行开发,因为不太可能说服自己的客户去安装一个全新的软件,特别是在大型企业,IT主管需要评估安装任何一个软件的风险,特别是安全方面的风险。当然随着时间的推移,越来越多的人会慢慢接纳Silverlight,就像当年.NET刚刚流行的时候,似乎也有很多人并不看好.NET,但如今事实证明了一切。微软是一家很擅长推标准和平台的公司,在这方面Adobe恐怕很难与之抗衡,当然现在就做预言显得太早了些,让我们拭目以待吧!
如果本文中有任何说的不对的地方,欢迎大家指正。