none
Silverlight 是否有必要与 Flash 进行竞争 RRS feed

  • 常规讨论

  • 随着 Silverlight 3 的发布,到处都是关于 Silverlight 抢占 Flash 市场的报道,以及 Adobe 如何应对等等。但我个人始终觉得这两者之间其实有很大的区别。

    首先这两个软件的开发初衷就不一样。Flash 一开始就是以动画为目标的,而 Silverlight 则是以程序为目标的,是 WPF 的一个简化版。换句话说 Silverlight 就是个“产品+包装盒”,而 Flash 则是“功能性工艺品”,二者侧重点完全不同。

    用 Flash 开发一个软件极为麻烦,而 Silverlight 则简单得多。Silverlight 的开发平台是 VS 平台,这个软件一般程序员都已经很习惯了,用起来很顺手。Silverlight 还有很多现成的控件,比如改变按钮的颜色,只需要选择一下颜色就行了,用不着整个自定义一个按钮。而且 Silverlight 支持多种语言,特别是 VB 会用的人很多。专业点儿的,可以用 C#。而 Flash 要用 ActionScript,不得不多学这么一个新语言,无疑增加了很大负担。比如,中小企业做个简单的网页宣传,或是学校老师做个课件,用 Silverlight 显然节省不少精力和成本。既是使初学者,学 VB 也显然要比学 ActionScript 合算,毕竟 WPF、Ofiice 这些都能用 VB,打算当专职程序员的可以直接学 C#。可学 ActionScript 就只能用 Flash 这么一个软件,精力投资不合算呀。所以要是以开发应用软件,或是以功能为主的网站,比如电子商务,用 Silverlight 就要更合算,省时省力。

    反之,要是搞动画,Flash 要比 Silverlight 强大得多。比如在 Flash 里可以使用层和时间轴,对于动画导演来说,这是很熟悉的概念。制作起来很容易。Silverlight 做单纯的动画完全不切实际。因为 Silverlight 里是以对象为单位的。即使是一个对象,比如一个椭圆,只用到一秒,那也要在 xaml 里进行描述,并始终留在那里。如果一个60分钟动画,用到几万个图形呢?要知道对于一个动画短片来说,几万个图形一点都不夸张的。显然层要比对象容易操纵的多,几万个对象可能也就是十几层,甚至更少。另外,Flash 可以直接导出 avi 或 mov 影片,Silverlight 好像目前没这功能。

    所以说 Silverlight 和 Flash 的用户根本不同,搞应用的肯定会喜欢 Silverlight 的简单易用,而搞动画的绝对不会舍弃 Flash。我个人觉得 Silverlight 到更像是用来取代 ASP.Net 的,而不是取代 Flash。比较一下 Silverlight 和 ASP 的功能,显然二者之间几乎一样。要是 Silverlight 增加一下对数据库的简单操作和对打印的更好支持,那 ASP 基本上没什么用了,至少对绝大多数小型网站来说没什么用了。依我看,Silverlight 对于 ASP,就相当于 WPF 对于 WinForm。所以,我就搞不明白微软干吗非要跟 Flash 较劲,难道就不能和 Flash 共存么?比如在 Silverlight 里加一个 Flash 控件,允许把 Flash 嵌入到 Silverlight 里面。这样让 Silverlight 侧重于功能开发,把动画依然留给 Flash 去完成,不是更好么。

    顺便说一下,很遗憾,Silverlight 3 还是不能直接使用 SQL,没有 XPS 阅读器,打印也很成问题,虽然这些功能可以间接实现,但不能像 WPF 那样直接使用。

    2009年7月12日 10:17

全部回复

  • Silverlight在和Adobe的Flex竞争,Silverlight更强大。。。
    2009年7月12日 15:16
  • 比较同意您对SL/Flash各自的分析.

    Silverlight的初衷确实不是取代Flash,而是要在RIA上占有一席之地. 给网络程序开发者多一个选择. 以前开发RIA程序,非Flash则Ajax, 当然,还有几个其他选择,但用者寥寥.
    Silverlight更注重的是企业用户LOB程序的开发和应用,以及开发者/用户的体验. 并且以此开发方便程序员快速开发的各种工具和控件.

    我很少看见网站全部用Flash的,那样开发和维护都很困难. 在实际中,而是更多的做为某个插件来丰富页面,提供用户更友好的交互界面. 这样看来 Flash/Silverlight当然是可以共存的,各发挥所长. 同时Silverlight也不会取代ASP.Net,而是建立在ASP.Net之上,给用户在Client端一个更多的交互选择.

    当然,既然大家都在做RIA,竞争也是存在的,包括和Ajax.  比如在多媒体的应用上.

    Flash已经发布超过10年了.很多Feature都已经处于依然成熟状态.而Silverlight从1.0到现在3.0也才2年. 所以Silverlight还处于上升和完善的过程,包括各种工具的支持,以及更丰富的控件和更多常用功能的支持, 比如打印.

    另外WPF是运行在客户桌面的软件,而Silverlight是浏览器中运行的软件,所以二者必然有很多区别, 安全性就是其中最重要的一条. 所有的互联网用户都可以访问Silverlight的程序,而WPF则不用考虑这些. 所以诸如直接使用sql,这样的feature似乎所有在浏览器中运行在客户端的插件都不能支持的.就是安全性在限制.目前都是要通过Server端的支持来访问,而Silverlight要做的则是提供更好的工具和开发平台,以便让用户能更方便快捷的开发出Web 应用.
    2009年7月12日 18:50
  • 有几个观点得说明一下,SL竞争的对象是Flex,是RIA程序。学习来说,其实SL门槛更高一些,因为你必须要会编码,但是Flash不用,拖拖放放就可以了。但是针对RIA市场,SL的优势就明显很多了。
    2009年7月13日 1:57
  • SL是不用直接使用sql语句的,因为SL位于三层应用架构的顶层(表示层)
    2009年7月14日 3:35