Silverlight、Flash和HTML5,我应该关心吗?

10

我已经阅读了一系列关于Microsoft Silverlight框架与Flash相比的优缺点的文章。

过去18个月中出现了两个版本的Silverlight,这让我感到担忧,另外,超过97%的浏览器已经预装了Flash。

作为一名.NET开发人员,我非常满意在该框架中所能实现的功能。目前,我感到自己必须把自己的偏好放到一边,决定是否需要将Flash与.NET集成,而不是使用WPF的Silverlight。

有人尝试过将Flash与.NET集成吗?你们遇到了哪些挑战?与使用Silverlight相比,它有多容易?

我也读到了微软和Adobe之间最近的谈话。无论我选择哪种方式,都感觉非常不稳定。HTML 5真的能与Flash和Silverlight所提供的竞争吗?

谢谢

6个回答

10
我已经将Flash和Silverlight集成到我的ASP.Net应用程序中。我必须说,使用Silverlight是更容易的选择。与服务器的通信更容易,初始设置更容易(可以与ASP.Net应用程序或简单的HTML页面一起使用)。将其集成到ASP.Net应用程序中是最容易的部分(正如您想象的那样)。如果您是.Net开发人员,则应该选择这种方法。
此外,我不会担心这些技术很快就会消失。HTML5不会取代它们,只会占据一部分市场份额,而不是全部。
编辑
以下是其他SO帖子的链接:
- Web开发的未来:HTML5还是Silverlight(或其他RIA框架)? - 我应该放弃Adobe Flash转向HTML5和...? - HTML5能否完成Flash今天所做的大部分工作?

我开始研究XBAP(ClickOnce)应用程序。你有没有使用过这种解决方案编写过任何东西?我喜欢这个想法,应用程序将获得对完整的.NET框架的访问权限,而不是Silverlight的.NET子集。但是,在客户端机器上安装整个.NET框架的想法确实让我感到困扰。这违背了我想要实现的整个目的。 - user338195
嗨,我只是在等待看看是否有其他人遇到了相同的决策问题。 - user338195
我在我的回答中添加了一些链接,这些链接指向StackOverflow.com上发布的其他问题。 - Gabriel McAdams
感谢您的回复。很抱歉回复晚了——我外出了。 - user338195

7
这基本上是我选择Web技术的方式:
  • 你需要支持现在、过去和未来所有可用的平台吗?HTML4(是的,4!)
  • 你需要制作HTML4不可能实现的东西,并且愿意牺牲一些用户群体吗?HTML5
  • 你可以限制自己只针对桌面用户(没有移动设备),并且需要一个非常交互式的应用程序(比“网站”更多)吗?Flash或Silverlight
  • 你需要与.NET集成吗?Silverlight
  • 你熟悉.NET(比Flash更多)吗?Silverlight
  • 你想要达到绝对最大的用户数量吗?Flash
  • 你了解Flash / ActionScript(比.NET更多)吗?Flash
  • 你需要比Silverlight提供的功能更多,而且可以将部署限制在Intranet上吗?WPF / XBAP
关于Silverlight死亡的整个辩论在我看来完全是错误的:那些认为Silverlight完全是多平台的人实际上与现实脱节:仅仅通过观察Flash就可以清楚地看到iOS等操作系统永远不会支持Silverlight。
HTML5可能会成为真正的“通用多平台”环境(现在的HTML4),但是我们都知道html的所有噩梦。如果你的目标是桌面,并且需要更多的交互性,更好的工具,单元测试等,则Flash和Silverlight仍然是首选。
Silverlight的用户群体正在迅速接近Flash,因此在这两者之间,它真正取决于您更熟悉哪一个以及与现有后端集成的易用性。
Silverlight每9个月就推出一个新的主要版本,这只是表明他们正在大力推动它的标志。现在它已经达到了成熟阶段,您可以期望看到更长的时间间隔。

4
坦白地说,如果你已经了解面向对象编程,学习AS3并不难。大约需要一周左右的时间。如果你不喜欢Flash中的所有帧动画,你可以创建一个单帧应用程序,然后从自定义的AS类中管理所有内容。
我也是.NET开发人员,学习AS3.0并没有遇到什么麻烦。当然,一周的时间不足以成为专家(任何领域都需要几年的时间才能成为专家)。但是,如果你只是需要创建视频或mp3播放器,创建拖放基本游戏/应用程序添加到ASP.NET页面,则值得花费20或30小时在AS3上。有很棒的视频培训资源。七或八个小时的培训应该就能满足我提到的20到30个小时。几年前,我选择了AS3.0而不是SL,只是因为每个人都安装了Flash插件。
AS3.0是类型化的(简单类型如Number、String等),但至少它是类型化的。有很多函数、类和方法可用于实现碰撞测试、拖放、事件监听(鼠标事件、键盘事件等)。真的是很酷很有趣的语言。
保重。

1
感谢您对学习AS3的鼓励,点赞+1 :) - Owais Qureshi

3
微软最近宣布了Silverlight的“转向”,更加强调移动端而非桌面端。

感谢这篇文章。这真的很令人沮丧。ClickOnce应用程序会发生同样的情况吗?我们该如何确保呢:S 这让我真的开始思考是否需要更详细地了解ActionScript。 - user338195
@vikp - 不,你需要更详细地了解HTML5、SVG和canvas。你表达的沮丧情绪与我六年前开始使用.NET进行Web开发时的感受相同。当时我离开了微软产品,从那以后就再也没有碰过它们,包括Windows。 - Rob
如果.NET和IE 9将支持HTML5,那么微软肯定会提供开发工具来处理HTML 5和SVG吧? - user338195
@vikp - SVG 工具已经存在很长时间了,HTML5 工具也已经有一段时间了。为什么你需要微软来提供它们?他们在这方面没有背景或经验。 - Rob
我在这些领域显然缺乏足够的知识。等我阅读一些资料后再回来看这篇帖子。谢谢 :) - user338195

3
HTML5拥有SVG和Canvas以及视频功能。很可能会有创意人士创建出一个非常好的动画包,用于生成SVG文件。当然,已经有SVG生成器存在,但显然它们还不够好,因为SVG和Flash从未在同一句话中提到过。
但是,这应该是可能的。SVG可以进行结构化矢量图形、嵌入式脚本等操作。在Flash中所看到的所有操作都应该可以在SVG中完成。Flash还有一个可怕的概念,即帧,这是从一开始就存在的一个主要设计缺陷。
他们应该让你决定你想要将一个对象从点A移动到点B,沿着由线条或曲线或手绘路径确定的路径,并且A和B的时间可以是任何时间,而不仅仅局限于特定的帧。
然后在播放时,您的计算机速度越快,帧率就会越好。计算机速度较慢,则帧率较慢。只要对象从A到B移动即可。
此外,还有Flash的错误和整体笨拙处理方式。
Flash可以做得更好。
因此,我认为某个人很快就会制作出一个惊人的SVG动画包,它将粉碎Flash。
我反对Silverlight,因为它是微软的。微软意味着专有。他们做任何他们想做的事情。您已经提到了不同的版本号。这意味着您的客户必须下载正确的版本。您可以指望您的客户需要下载主要升级版,然后在展示动画和应用程序之前,他们的整个.NET安装都需要更新。
Silverlight在Linux上也无法使用。虽然它应该可以通过Novell与Mono等的努力实现,但在实践中,它在您需要它的地方根本无法工作。
我不知道Silverlight在Mac上是否有效,但我不信任它。
最终,我认为未来的HTML5 / SVG(Canvas可能?)是正确的选择。它甚至可以使用OpenGL加速图形来进行3D操作...(但我不知道是否足够便携)。
同时,Flash是您的保险,几乎可以在任何地方运行。
我想知道是否有人创建了一个动画包,输出到swf文件,比Flash IDE更好。考虑到Flash IDE的笨拙,这不应该太难。

这是一些非常基础的东西。还有很长的路要走。网络上有很多这种玩具,但似乎没有一个能够真正发挥其潜力。 http://svg-edit.googlecode.com/svn/branches/2.5.1/editor/svg-editor.html - Mike
我同意你对频繁发布Silverlight的观点。HTML5被认为是一种标准,但我认为只有当所有浏览器开发者都完全遵守它时,它才会成为一种标准。关于不信任微软的问题,我认为每个公司都是为了赚钱而存在的,而不是为了人类的利益,就像谷歌或苹果一样。我需要丰富的拖放功能,但我不认为我可以用HTML实现它,这将非常笨拙。另外,你知道Silverlight应用程序是否容易反编译吗?我担心最终用户能看到多少内容。谢谢! - user338195
@vikp - 标准是基于实现的。标准机构很少发明任何东西。因此,浏览器将在规范最终确定之前实现HTML5功能。例如,CSS2.1仅在去年才最终确定,但我怀疑我们中的任何人都不是从那时开始使用这些属性的。 - Rob

2

Flex/Flash和SilverL.现在非常相似...使用webservice进行客户端/服务器通信,您可以在两者之间很好地工作。

当然,对于使用Visual Studio的.NET开发人员来说,使用SilverL.要快得多,而且只需要使用C#。

但是,Flash在PC上更加普及,对于移动设备也是如此...如果您需要可移植性,可以考虑Flash。


我不同意:唯一(部分)支持Flash的移动设备实际上是Symbian和Android。iOS:不行,Blackberry:不行,WP7:不行。如果您想要可移植性,则应选择HTML4。未来可以考虑HTML5。如果您使用Win和MacOS,则可以在Flash和Silverlight之间进行选择。 - Francesco De Vittori

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接