对于两个事物的比较,我们通常会从两个方面出发,共同点和不同点,今天我也打算这么来比。
首先来看共同点:
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恐怕很难与之抗衡,当然现在就做预言显得太早了些,让我们拭目以待吧!
如果本文中有任何说的不对的地方,欢迎大家指正。