Silverlight与Flex


71

我公司开发了几种类型的应用程序。我们的许多业务来自做多媒体类型的应用程序,通常在Flash中完成。但是,现在,公司的这一侧开始向进行Flex开发迁移。

我们大多数其他开发都是使用.NET完成的。我正在尝试推动Silverlight开发,因为它将更好地利用.NET开发人员。我很喜欢Silverlight平台而不是Flex平台,这是因为Silverlight都是.NET代码。与Flash / Flex开发人员相比,我们拥有更多的.NET开发人员,而且我们的大多数Flash / Flex开发人员都是图形艺术家(不是真正的程序员)。他们现在之所以选择Flex的唯一原因是,这似乎是Flash的逻辑步骤。

我已经使用这两者进行了开发,并且老实说,我相信Silverlight更易于使用。但是我试图说服那些只是Flash开发人员的人们。

所以这是我的问题:如果我要参加一次会议以表扬Silverlight,为什么一家公司希望使用Silverlight而不是Flex?除了明显的“不是每个人都有Silverlight”之外,每个优点和缺点是什么?


4
我也很奇怪,但是这个论坛对Microsoft来说太沉重了,所以我对任何专业人士的评论都持怀疑态度。

Answers:


52

我认为您应该将Silverlight视为一项长期工作,就像微软似乎正在做的那样。当您担心覆盖范围和安装基础时,何时使用Silverlight与Flash有着明显的平衡,但这是出于某些原因,Silverlight是一个良好的发展方向:

  1. 先发优势-就像Microsoft用.NET构建“更好的Java”一样,他们今天也可以看看您如何从头开始设计RIA插件。他们具有了解人们今天如何使用Web的优势,这是Flash的发明者永远无法准确猜到的。Flash可以添加功能,但是它们实际上不能取代平台并重新开始。

  2. 开发人员熟悉-虽然Silverlight是一种新模型,但开发人员并不完全不熟悉。他们将“了解” Silverlight的工作方式,比他们理解使用新的脚本语言和新的事件范例启动新的开发环境快得多。

  3. 摆脱Flash中的时间轴模型-Flash最初是为基于关键帧的动画而构建的,尽管有多种方法可以将其抽象化,但这是Flash工作方式的核心。Silverlight减少了以应用程序为中心的模型的成本。

  4. ScottGu-ScottGu对Silverlight着迷。纳夫说。

  5. 很棒的新功能-尽管Silverlight在某些明显的功能(例如网络摄像头/麦克风集成或3d /图形加速)上仍与Flash保持同步,但Silverlight内置了一些漂亮的新技术-深度缩放就是一个例子。我在Silverlight方面看到了更多的“革命性”技术,而Flash似乎此时处于维护模式。


18
如果您只是在Flex中工作,那么您也可能根本不知道有任何时间表。那不是问题。
analytik

11
1.一个更好的Java,但不是跨平台的(虽然不是单块岩石)Adobe确实放弃了播放器,并从AVM2和AS3重新开始。2.同意3.时间轴现在是可选的(使用sprite而不是movieclip)5.绝对Flash没有3D加速度,所以很平常。深度变焦很酷但毫无意义
Iain

44
实际上,乔恩,在所有应有的方面,您都在将Silverlight与Flash而不是Flex进行比较,这是Silverlight支持者普遍感到困惑的地方。我已经在Flex中编写了一个企业级应用程序(已编译为SWF),但什至不知道从哪里开始编写Flash应用程序。
SkunkSpinner

10
Flash与Flex截然不同(实际上也有一个帧速率,并且Flex中也有这些东西,但它们没有使用,这是一种不好的做法)Flex也比Flash快得多,我建议您看一下C ++解释器使用Flex构建。Silverlight播放器不可用时多少
马克

1
@ilk-我于2009年12月开始在Microsoft工作。我于2008年8月发布了这个答案。我之所以在Microsoft工作,是因为我喜欢他们的开发人员产品,而不是相反。纳夫说。
乔恩·加洛韦

30

这里有两个问题:作为平台的Silverlight与Flash和作为RIA框架的Silverlight与Flex。

第一个问题取决于您的时间范围。Flash Player的覆盖率超过95%,Silverlight则无法实现。但是,Silverlight可能会实现目标,毕竟它得到了Microsoft的支持。如果您打算下周推出一个网站并希望吸引大量的观众,那么Silverlight是不可行的。如果您打算发布一个每个人都想使用的非常酷的应用程序,则有些不同,如果您的应用程序足够好,则目标受众可以安装Silverlight只是为了能够运行它。

至于第二个问题,就是在Silverlight中开发应用程序有多容易。Flex不仅仅是一组小部件,它是一个非常大的框架,它可以做很多事情来简化开发人员的工作。您可以只使用核心Flash API编写相同的应用程序,但这将需要更多工作。根据Silverlight中可用的功能,这应该是决定时的重要因素。如果您可以缩短开发时间,那么拥有两个平台是否值得?


22

我认为Silverlight对于拥有.NET开发人员但没有设计经验的公司来说最有利。

就找到C#或VB开发人员而言,与找到ActionScript专家相比,技能集将更容易找到。但是,需要权衡取舍:

设计经验不仅是对具有艺术技能的设计师的投资,也是对Adobe提供的知识和工具的投资。您几乎可以保证专业设计师使用Mac并具有Adobe工具的使用经验。

现在,Silverlight设计器工具还没有成熟,可能令人头疼。例如,当尝试渲染任何包含IValueConverter的xaml时发生Blend错误,这是有问题的。我不知道Adobe开发人员的经验是什么,我敢肯定它像毛茸茸的一样。

因此,在游戏的这个阶段,它取决于人力资源:

如果您具有.NET经验,而对设计技能的投入很少,请使用Silverlight。编程技能/工具将可以转让。如果您具有设计经验和技能,请选择Flex。设计者的技能/工具将可以转让。

无论哪种方式,两个客户端平台都需要与服务进行通信才能获取数据,因此您将始终在后端利用现有的编程专业知识。

意译乔恩的从不同的观点意见:

我认为您应该将Flex视为长期的产品,就像Adobe似乎正在做的那样。当您担心触及范围和安装基础时,何时使用Silverlight和Flex有着明显的平衡,但是有更多原因使Flex成为​​一个不错的发展方向:

  1. 先发优势-正如Adobe用Flash构建“更好的Java Applet”一样,他们今天可以看看您如何从头开始设计运行时。他们具有了解人们今天如何使用Web的优势,这是现有客户端平台的发明者永远无法准确猜到的。.NET可以添加功能,但是它们实际上不能取代平台并重新开始。

  2. 对设计人员的熟悉程度-尽管Flex / AIR是一种新的编程模型,但对设计人员来说并不是完全不熟悉。他们将“了解” Flex的工作方式,这比他们了解使用功能贫乏的新工具和新的动画范例启动新的设计环境要快得多。

  3. 在Silverlight中摆脱RGB颜色模型-.NET最初是为Windows构建的,它是其工作方式的核心。Flex早就放弃了以设计为中心的模型。

  4. 您所有的工具都可以在Mac上运行。纳夫说。

  5. 炫酷功能-Silverlight在某些明显的功能(例如网络摄像头/麦克风集成或3d /图形加速)上仍与Flash保持同步。


去看一下QuakeLight的视频,告诉我Silverlight在图形处理方面有些不足。另外:“所有工具都在Mac上运行。Nuff说。” 显然,macs是完美的。
jcollum 2009年

5
以我的经验,开发人员选择新编程语言的速度比设计人员选择新设计软件的速度快。他们比我们更陷于困境!
伊恩

@jcollum:实际上,还使用Alchemy(labs.adobe.com/technologies/alchemy)将地震移植到了Flash(youtube.com/watch?v=6TKGNS1N1yo)。
赫隆迪克2009年

1
编写适当的flex应用程序与“设计技能”有什么关系?它具有强大的能力来制作看起来像开发人员“设计”它们的股票应用程序。
乔尔·胡克斯

2
“您几乎可以保证专业设计师使用Mac并具有Adobe工具方面的经验。” 如果您完全使用过Flex Builder,就会知道“以前使用Adobe工具的经验”是没有好处的。它建立在Eclipse之上,并且对任何以前对IDE都不熟悉的人都是陌生的。
jamisonLikeCode

15

我们正在做Silverlight和Flex,这是开发人员对于这两者的观点。

Silverlight的优点:

  1. C#的功能,代码段,重用现有的C#算法实现
  2. 其他语言的力量,泛型和Linq等
  3. 本机执行CLR而不是Flash的动作脚本解释器的功能
  4. 一个用于所有开发的集成Visual Studio
  5. Expression Blend真的很酷,并且是比Flex Builder更高级的编辑器
  6. XAML对搜索引擎友好
  7. 非常好的状态转换,易于定义
  8. 线程和异步任务
  9. 可访问性,没人知道Microsoft始终在其所有产品上都拥有最佳的可访问性功能,它们始终与残疾人协作良好,仅IE支持完全可访问性的浏览器与Safari / firefox等浏览器相提并论。

Silverlight的缺点:

  1. 严格地说,是Microsoft平台,我知道很多人都会争论,但是在当前情况下,一半的Mac电脑无法使用Silverlight 3.0,所有PPC Mac的电脑都不能使用Silverlight 2.0,而Linux上没有Silverlight。
  2. 有单声道,但微软没有正式支持它,它将始终落后于逆向工程.NET并将其移植到其他平台上,但还不是现成的。
  3. 大多数组件/控件都是“密封的”,因此很难对其进行扩展和覆盖以轻松制作新组件。
  4. CustomControl / UserControl体系结构不良。例如,您不能将XAML的根作为ComboBox或任何其他控件,而让它既具有设计又具有代码,则可以创建自定义控件,但是它们太复杂了
  5. 绑定需要组件命名,并且不像flex那样支持实例表达式,尽管在Silverlight中两种方式的绑定都不错,但是您必须为一个数学表达式的多个绑定编写长代码
e.g.
// this is possible in flex..
// but not in silverlight
<mx:TextBox id="firstName"/>
<mx:TextBox id="lastName"/>

// display full name..
<mx:Label text="{firstName.text} {lastName.text}"/>

Flex的优点:

  1. 真正独立于平台,在各种硬件和操作系统上受支持,并且真正在任何地方都能正常工作。
  2. 开源使得真正易于理解和扩展功能。
  3. 每个控件/组件都可以扩展,并且覆盖默认行为的限制更少。
  4. 创建新组件的最简单方法是,您可以让mxml从任何控件派生并通过广泛的绑定进行扩展
  5. Flex包含许多控件,您不需要任何第三方库

Flex的缺点:

  1. 迭代执行速度慢,没有线程!没有异步任务!
  2. 根据第1点,不可能制作出精美的动画或图形
  3. 没有泛型,没有其他语言,没有linq ..
  4. 数字类存在错误,无法存储完整的64位长值
  5. Eclipse不利于设计出色的UI

结论

  1. 我们将flex用于数据应用程序,这些是简单的表单处理应用程序
  2. Silverlight提供极其丰富的图形和动画

1
请注意:您可以通过www.actionlinq.org在Flex中使用Linq :)
Brian Genisio

13

Silverlight的问题在于,仍然有很多人没有安装它。另外,我不确定如果现有的.Net开发人员只熟悉更传统的服务器端.Net编码,他们将如何利用他们的现有技能。

您将Silverlight推向Flex的原因是什么?如果您由于某些原因不得不向SOFlow社区询问,那么您如此愿意推动它似乎很奇怪。


2
只需等待MS将其推送到自动更新上,即可实现99%的渗透率。
AndreiRînea,

7
当然是。与99%的IE用户使用IE7完全相同,没有人使用IE6,因为IE7是通过自动更新推送的。是。
analytik

没有安装Silverlight的用户非常容易。
克雷格

4
您忘记了Flash已经与大多数浏览器捆绑在一起。
Slapout

3
我最近安装的FF3需要我单独安装Flash。而且Silverlight的安装更加容易。
jcollum 2009年

11

Flex开发的另一个优点是,您可以切换到使用相同的源代码(和相同的IDE)开发桌面应用程序(Adobe AIR),然后从Web分发它们。您可以查看此内容 以了解Flash平台的未来。
2011年第三季度更新:Flash 11支持底层3D加速,并且已经有很多框架和主要引擎(虚幻引擎3,Unity)支持它。但是,未来的卖点是AIR应用程序将可以在Windows,Mac,Android,Playbook和iOS平台上运行(已不再支持Linux)。两者之间的移植绝对避免了麻烦(至少当您使用Adobe CS5.5 +时)。

2015年第二季度更新:Silverlight正式死亡。Adobe AIR仍然存在,但并不兴旺-根据您的技能和工具链,它可能会很有用。Microsoft和Adobe都承认HTML5是必经之路(无论是AIR还是Apache Cordova或Visual Studio)。

2017年第三季度更新:哇,他什至不再使用Flash。


2
此外,Flash Player 10包括具有硬件加速功能的3D-绝对不是!
伊恩

2
同意AIR(可能非常重要),但尚无3d支持。
Hrundik 2009年

我们还最注意的是,Air于2008年初发布,当时还很年轻,当然随着时间的流逝它会变得更好。我不能给出“无偏见”,因为我只是不喜欢Microsoft Business / Marketing方法。但是,如果不是那样,那么我们就不会处于当前的技术状态。
法比奥·安特尼斯(FábioAntunes)2009年

Flex有Air,Silverlight有WPF。我认为,以一种方式或另一种方式进行争论没有足够的区别。
基思

Silverlight 3带有“浏览器外”功能,您可以像将AIR应用程序一样将Silverlight应用程序安装到桌面上。有一些API可以检测应用程序是否在浏览器中运行,是否存在互联网连接,甚至可以自动检测应用程序。
2009年

7

不要忘记:

Flex非常跨平台,因为它使用Java编译器进行编译,这意味着开发Flex应用程序时可以轻松使用Mac或Linux。我具有当前的CruiseControl设置(使用Linux),我构建了Flex应用程序,但是开发人员同时使用Mac,Linux和Windows。

以我的经验,由于Java开发人员基于Eclipse,因此对Flex Builder感到很自在。


3
我不得不说C#开发人员也对Flex感到满意,因为Flex的首席设计师最初是在.Net团队中
Mark

1
而且,您还可以将Eclipse与Flex Development插件一起使用,该插件的功能与Adobe Flex相同。
法比奥·安图内斯

7

由于有如此众多的Microsoft开发人员,因此您永远不会对SO上的这个问题有公正的投票。

同样,人们可能会否决这个答案,这确实说明了一切。

我说让您的开发人员尝试这两种平台,然后看看他们喜欢哪种平台。

为了回答以下评论,我只是注意到,尽管有很多建议推荐Flash / Flex的答案,但Silverlight的答案却更多。这不是说谎的问题,它只是支持您熟悉的内容,不一定是最好的平台。


1
我看到有更多的人喜欢Flex,而不是Silverlight,因此.Net可能更受.Net的人们支配,但肯定没有偏见
Mark

2
因此,微软开发人员会自动不诚实吗?是否每个不同意您的骗子?
乔尔·穆勒

6

当涉及到Flex时,Silverlight程序员不知道他们错过了什么。Silverlight缺少Flex具有的组件模型和事件触发功能。我的一个朋友使用XNA和C#,必须克服各种困难才能使他的Silverlight应用程序正常工作。然后,必须将其交给设计师,以使其看起来像样。

在Silverlight上收听deepfriedbytes.com播客,您将听到甚至真正推动Silverlight的几个人也承认其中一些问题。(我,如果我没记错的话,其中一个人在Microsoft工作,但我可能错了-我上周听了它)。他们一致认为,Silverlight在当前状态下还没有为任何大型应用程序做好准备。

我会使用Flex,这是一种非常干净,直接的方法-尤其是如果您已经熟悉Flash和ActionScript 3.0。我认为Flex更有意义-Silverlight仍然必须成熟。


1
-1。XNA与Silverlight有什么关系?它们并不像您暗示的那样直接连接。而且99%的程序员确实应该在将其内容发布给公众之前就将其工作交给设计师了:)
jcollum

6

归根结底,您的开发人员不应该决定您的技术。这绝对是应该根据您的用户做出的产品决定。

如果要部署到消费者Internet,则要使用Flash Player或AJAX。如果要为.net企业部署到专用LAN,则可以选择。


5

作为一名图形设计师,在过去的几年中,我一直使用Flash(打开和关闭),而在过去的1.5年中,我一直使用Silverlight(及其老兄WPF)。根据我从我的团队(所有人都是开发人员或以前的开发人员,如果您的.Net开发人员将执行所有编程工作)的经验,请使用Silverlight。我喜欢Flash,但即使对OOP进行了大修, Flash 9及更高版本,它仍然是一种古怪的语言,在AS3和C#之间来回切换可能会使您的开发人员感到困惑:-)。

对于您的设计师,请执行以下操作:

  • 为他们提供一份Expression Blend的副本,Expression Blend是Silverlight / WPF的GUI开发工具。

  • Blend的初始学习曲线有些陡峭,并且界面会向您抛出大量的变量/选项,因此您需要投入一些培训,并为您的设计师提供时间以加快使用UI的速度。

  • 说到培训,请订阅Lynda.com视频库,尤其是。Lee Brimelow Expression Blend培训课程。

  • 需要注意的是:Blend和WPF的变化很快,因此有时您会遇到Blend的错误,该错误已在Blend的下一个beta / CTP中修复。例如,Blend 2中有一个错误,阻止我的情节提要(动画)在最近的项目中工作。我升级到Blend 2.5CTP,它可以正常工作。

  • Silverlight内容似乎并不总是能与Silverlight插件的最新Beta版一起使用,如果要测试某些仅在最新Silverlight插件中可用的新功能,则要记住一点。

  • 投资于功能强大的系统(Quad Core,4Gigs RAM等),Blend会消耗大量资源,尤其是。当您有大量的图层时。例如,我正在开发一个在基础应用程序中具有100多个图层(!)(在某些用户控件中还有100+)的应用程序,以及大约40-50个故事板。每隔几分钟,我必须重新启动Blend,因为UI会停止响应(但不会冻结)。要么,要么将所有内容移到用户控件中。


3
“基本应用程序中有100层(!)(某些用户控件中还有100层以上),还有约40-50个故事板”:听起来,您需要将内容分解为更多的用户控件。您确定不是要在几分钟之内完成所有这些工作吗?
jcollum 2009年

5

我的团队曾经在Flex中编写丰富的Web功能,现在在Silverlight中编写它们。

我们进行此切换的原因:

  • FlexBuilder基于Eclipse构建。Eclipse太糟糕了!自由,但bug缠身,毛刺弥漫且缓慢。
  • FlexBuilder的价格是Expression Blend的两倍,无论如何我们都可以通过MSDN免费获得。
  • Flex是源代码控制的一个痛苦,它不喜欢被制作成将文件放在一个地方,并且不能与解决方案的其他部分很好地配合使用(我们尝试使用SourceGear Vault和SVN)。
  • Flex的ActionScript版本与大多数SOAP实现不同,特别是.Net WebMethod存在各种问题。
  • 尽管我们会定期使用获得许可的Flex组件,但它仍决定我们没有该版本,并在其中添加了仅演示水印。删除此水印的唯一方法是将项目带到位,重新安装Flex,重新安装许可证并重建它。
  • FlexBuilder根本不喜欢Vista。
  • 一旦达到了我们可以将其添加为交换的相关功能的要求的级别,Silverlight的接受度就会越来越高。如果我们为网络(而不是企业)受众服务,我不确定是否可以。

我们项目的其余部分是.Net和C#,您可能会发现在Java商店中所有这些问题都不那么重要。


我们使用Subversion在Eclipse中进行Flex开发,并发现它稳定且高效。说Flex对源代码管理很痛苦,这对我来说毫无意义。
HDave 2010年

@HDave-我们发现,新用户首次签出(最初是使用Vault,然后是SVN)签出后,Flex项目通常需要重建。如果他们在签入时重建了原始用户,则会得到一个损坏的项目。我们还定期丢失Flex Charts许可证,因此集成的版本最终会在图表上演示水印并禁用了功能。也许Eclipse现在会更好,但是当我们在2008年使用它时,它往往崩溃或一直失败。
基思2010年

我的猜测是,时间已经成为Flex / Eclipse / Subversion的朋友。在过去的15个月中,我只使用过它,但是没有这些经验。我一直在使用Flash Builder 4,但我不喜欢它,但至少可以结帐/提交工作。我也使用Maven / Flexmojos-但这花了一些严肃的时间才能弄清楚。
HDave 2010年

3

正如Kibbee在上文中所暗示的那样,利用现有.Net开发人员的观点并不多。不可能成为.Net开发各个方面的专家。该平台太大。Java也是如此。从技能的角度来看,Silverlight唯一要做的就是可以使用自己喜欢的.Net语言进行编码。如果您已经在进行任何利用JavaScript的重要Web开发,则该优势就非常小,因为Action脚本是一种变体。因此,要将程序员转换为Flex或Silverlight的真正目的就是学习平台的API。


3

我们经历了同样的问题,Flex赢得了成功。我们的.NET开发人员起初很担心,但是在Ajax和JavaScript的痛苦下工作了这么长时间后,他们现在很喜欢并且非常喜欢在Flex中工作。

这是一个简单的测试。。。尝试至少找到3个真实世界中的Silverlight应用程序示例(不是游戏,视频播放器或小工具)。然后对Flex执行相同的操作。


“ Ajax和JavaScript的痛苦” <-与Silverlight的当前实现无关,它不使用JS
jcollum 2009年

您的开发人员已经可以使用JavaScript编程的事实可能与他们快速掌握Flex息息相关。
伊恩·林格罗斯

2

我认为Silverlight和XAML比ActionScript更可取,尽管我对ActionScript IDE并不熟悉,但我对VS2008和Expression Web / Blend都很熟悉,它们是非常好的开发环境,并且一直在不断发展。我会使用Silverlight,我认为让用户安装插件的关键是拥有一个良好的插件检测页面,该页面说明SL是什么以及他们为什么需要它。有关此示例,请访问http://memorabilia.hardrock.com/并在禁用SL插件的情况下进行尝试。


2

尽管我已经与Silverlight合作,并且对将应用程序置于浏览器之外的功能感到非常兴奋,但是AIR的一大优势是可以访问本机拖放功能。这使您可以构建非常用户友好的图像或文档上传功能(例如Flickr上传器)。据我所知,MS尚未专注于这种支持(即未宣布任何计划)。


1

我的经验法则是:如果您的公司正在开发基于Internet的多媒体软件,并且拥有各种平台的客户,并且您没有在进行数据库密集型应用程序,那么如果您的公司同时开发基于Internet和DVD的产品,那么Flex是绝对的答案。 ,交互性较低,但占用更多资源(CPU,内存),并且使用可笑的数据库事务量Silverlight更有意义


1

有人说:“找到3个真实世界的Silverlight应用程序”。好吧,我知道我的头顶上有一些东西,但无论如何我还是用谷歌搜索的。列表:

  • 2008年北京奥运会(此处的统计数据,传递了250TB的数据!)
  • Netflix点播播放器
  • AOL电子邮件客户端(可能尚未发布)

哦,不是视频播放器吗?剩下的就是UFC应用程序(它是混合视频/聊天/其他内容)和AOL电子邮件客户端。Silverlight在视频方面表现出色,而这正是它立足之本,但这并不意味着它不能做其他事情。我认为没有理由仅仅因为它的视频效果好就将其关闭。

Infoworld [link]表示:“ Silverlight具有实质的技术优点和相对良好的性能。它是一种非常强大的RIA技术,对于具有.Net经验的程序员和具有XAML经验的设计师特别有用。” 这是一篇有关您的问题的好文章。

我的回答:如果您有一个熟悉.NET的开发人员团队,则Silverlight应该在您的清单上排名第一。如果没有,那真是一个折腾。我看过一些文章说,与您使用Flex相比,Visual Studio是一个出色的开发平台。但是Flash几乎无处不在。

还请记住,Silverlight 2几乎不使用Javascript(我认为没有Javascript,但我不是很肯定)。因此,避免因JS而避免Silverlight是没有根据的。

如果性能很重要,Silverlight会赢得胜利。我已经看到我的浏览器的CPU使用率多次达到100%,并且杀死运行Flash的任何窗口总是会摆脱它。在Chrome中尤其明显,您可以在其中看到正在消耗CPU的进程。如果您对Silverlight的游戏潜力感兴趣,请寻找Quake的Silverlight端口QuakeLight。它的状态非常好。

我真的认为这取决于您的开发人员的才能所在,以及您将交付的应用程序类型。简单的游戏?闪。业务线应用程序?Silverlight。在中间?遵循开发人员的建议。


1

如果您知道.NET,Silverlight 3.0是必经之路。我正在使用它,我喜欢它。我不必弄混AJAX或JS BTW(我不知道那个人指的是什么,也许是SL 1.0)。对于数据,大多数数据是异步WCF调用(在WCF之后是LINQ to SQL)或XML文件或RIA服务。它使您可以使用大多数着色器FX,它具有样式,控件模板和本机访问Windows / Mac剪贴板。我可以运行高清视频,即使在CPU速度较慢的情况下,大多数进程也可以很好地运行。我也喜欢数据绑定,控件绑定,并且可观察的集合为我节省了很多时间。加上我可以使用LINQ(主要的时间节省工具),更不用说使用Visual Studio进行调试了。

我正在开发企业.NET应用程序,因此我知道我的安装基础,他们将安装外接程序(通常30秒)。对于前端网站,您可能会失去一些不想安装silverlight或不运行Mac或Windows的用户。您可以在带有3.0的浏览器之外安装带有SL的应用程序。

我可能是一个有偏见的.NET专家,但我的开发速度如此之快,我不得不推荐它。


0

您不应该使用这些ActiveX2.0技术中的任何一种。Silverlight和Flex都没有...

首先,它们都不过是“支持在浏览器中运行的分布式Winforms框架”,其次,它们不能很好地移植到其他设备上(对于Silverlight尤其如此),其三,它们不能正常工作与页面的其他部分配合得很好。它们不适用于残疾人等等等。列表持续不断...

Adobe和Microsoft都试图掩盖这个事实,但最终,Silverlight和Flex都不过是ActiveX的新包装了……

确保它们在沙盒中运行,是托管语言等等。但这仍然是要下载的BLOB很大一部分,可以在您的浏览器AKA ActiveX中本地运行。


1
我经常听到这个理论,因此我不得不接受它。您是否建议我使用Javascript和CSS开发第一人称射击游戏,以便所有运行Plan 9的青少年都可以玩它?企业LOB应用程序可以特别受益于RIA提供的部署和维护优势。使用HTML / CSS / JS开发丰富的内容(例如3d引擎)非常困难,并且存在方钉/圆孔综合症。RIA占有一席之地,我期待在这个领域中展开更多竞争。
Alex

对于第一人称射击游戏,JS和HTML可能不是当今使用的正确技术。尽管您说的有关企业LOB的部署和维护的内容需要评论。维护和部署Silverlight事情要更加高级,困难和麻烦,然后部署“ JS和HTML事情”……(显然!)与部署和维护Silverlight相比,Silverlight的麻烦程度要小得多桌面上的东西……
Thomas Hansen,2009年

1
关于企业应用程序,HMTL不是我从事的领域(资源)的选项。所需的内容和功能太动态了。对于使用Microsoft SOE的操作,Winforms是最佳选择。WPF只需单击一下即可轻松进行部署,但是您仍然必须面对无休止的官僚主义,即让桌面应用程序获得SOE批准。在.NET代码下在浏览器中运行不需要正常与IT人群讨价还价的东西是一件乐事。
Alex

@Alex-有趣的是,为什么您认为您的域问题太复杂而无法使用W3C平台(HTML,JS,CSS等)解决-Google确实通过W3C平台进行了地图绘制。当然,某些极端的应用程序(我怀疑主要是游戏)需要更多的功率才能达到W3C平台所能提供的能力,但是对于这类事情,我怀疑Qt或NativeClient这样的东西更适合,如果不是为了其他目的,那么它们就可以了。是开源的。但是我可能错了,也许Silverlight对您来说是正确的选择,但那时您将属于非常小的开发者群体的...
托马斯汉森

1
可视化引擎就是一个明显的例子。是的,Google Apps和Google文档的外观和感觉都很棒。不幸的是,在W3C中找到这样的人才并不容易。为什么您认为Flash一开始如此受欢迎?恕我直言,它使开发人员可以快速制作高度动态的内容,而无需成为W3C忍者。我也很想在Javascript中编写复杂的应用程序的想法……这并不是真正的目的。如果像NativeClient这样的开放式替代方案能够很好地抓住这一机遇,但是今天,我在公司SOE中获得批准的机会为零。
亚历克斯

0

这是一个老问题,历史已经讲了!

Silverlight一直像被Microsoft抛弃一样出色,它从未获得有用的安装基础。由于Microsoft不提供100%的承诺。

Flash(因此Flex)仍在运行。但是,越来越多的浏览器不支持任何插件,因此flush成为Silverlight的方式仅是时间(年)的问题

也许有一天,Flex将被重新定位为无插件的HTML5…。

说出了iPhone,它说唯一的选择是Apples Way或HTML5。


甚至Flex现在仅受社区支持,HTML5标准目前正在所有设备上接管Web平台。
塔伦(Tarun)

-1

Flash Player在几乎所有台式机平台(Windows,Linux,Mac)中均已正式提供并受支持,而Silverlight将主要在Windows中得到支持。

下面的文章提供了两种平台的比较。


1
不正确,Silverlight还通过Moonlight支持Mac和Linux
vijiboy 2012年

您好vijiboy,Moonlight是一个开源项目(仅由社区支持)。借助Moonlight,Silverlight可能会在Mac和Linux上部分运行。
塔伦

MS间接支持Moonlight,因为Wikipedia表示en.wikipedia.org/wiki/Moonlight_(runtime)#Microsoft_support。无论如何,双方现在都已停止了路线图。
vijiboy

下面是支持的浏览器和操作系统的Silverlight名单microsoft.com/getsilverlight/locale/en-us/html/...。月光
塔伦(Tarun)

有关Moonlight项目的信息(目前尚未在积极开发中)位于mono-project.com/docs/web/moonlight
Tarun,
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.