ChatGPT解决这个技术问题 Extra ChatGPT

Silverlight 与 Flex

我的公司开发了几种类型的应用程序。我们的很多业务都来自于制作多媒体类型的应用程序,通常是在 Flash 中完成的。然而,现在房子的那一侧开始转向进行 Flex 开发。

我们的大部分其他开发都是使用 .NET 完成的。我正试图推动进行 Silverlight 开发,因为它会更好地利用员工中的 .NET 开发人员。我更喜欢 Silverlight 平台而不是 Flex 平台,因为 Silverlight 都是 .NET 代码这一简单事实。我们的 .NET 开发人员比 Flash/Flex 开发人员多,而且我们的大多数 Flash/Flex 开发人员都是图形艺术家(不是真正的程序员)。他们现在推向 Flex 的唯一原因是因为这似乎是 Flash 的合乎逻辑的一步。

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

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

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

J
Jon Galloway

我认为您应该将 Silverlight 视为一项长期计划,就像微软似乎正在做的那样。当您担心覆盖范围和安装基础时,何时使用 Silverlight 与 Flash 有一个明显的平衡,但以下是 Silverlight 是一个很好的前进方向的一些原因:

后发优势——正如微软使用 .NET 构建了“更好的 Java”一样,他们今天能够了解您如何从头开始设计 RIA 插件。他们的优势在于了解当今人们如何使用网络,这是 Flash 的发明者永远无法准确猜到的。 Flash 可以添加功能,但它们不能真正放弃平台并重新开始。开发人员熟悉度 - 虽然 Silverlight 是一种新模型,但开发人员并不完全陌生。他们将“获得” Silverlight 的工作方式,比他们理解使用新脚本语言和新事件范例启动新开发环境的速度要快得多。摆脱 Flash 中的时间线模型 - Flash 最初是为基于关键帧的动画而构建的,虽然有一些方法可以将其抽象出来,但它是 Flash 工作方式的核心。 Silverlight 放弃了以应用程序为中心的模型。 ScottGu - ScottGu 对 Silverlight 很感兴趣。纳夫说。很酷的新功能 - 虽然 Silverlight 在一些明显的功能(如网络摄像头/麦克风集成,或 3d/图形加速)上仍有一些赶超 Flash 的能力,但 Silverlight 中内置了一些巧妙的新技术 - Deep Zoom 就是一个例子。我在 Silverlight 方面看到了更多“革命性”技术,而 Flash 目前似乎处于维护模式。


如果您只在 Flex 中工作,您可能根本不知道有任何时间线。那不是问题。
1. 一个更好的 Java,只是不是一个跨平台的(虽然单声道) Adobe 确实把播放器扔掉了,然后用 AVM2 和 AS3 重新开始 2. 同意 3. 时间线现在是可选的(使用 sprite 而不是movieclip) 5. 绝对是 Flash没有 3D 加速,所以这是平局。深度变焦很酷但毫无意义
实际上,Jon,恕我直言,您是在将 Silverlight 与 Flash 进行比较,而不是 Flex,这是 Silverlight 支持者的典型混淆点。我在 Flex 中编写了一个企业级应用程序(编译为 SWF),但我什至不知道从哪里开始编写 Flash 应用程序。
Flash 与 Flex 非常不同,(实际上也有帧率和那些在 Flex 中的东西,但它们没有被使用,这是一个不好的做法) Flex 也比 Flash 快得多,我建议你看看 C++ 解释器用 Flex 构建。 Silverlight 播放器不可用
@ilk - 我于 2009 年 12 月开始在 Microsoft 工作。我在 2008 年 8 月发布了这个答案。我在 Microsoft 工作是因为我喜欢他们的开发人员产品,而不是相反。纳夫说。
T
Theo

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

第一个问题取决于您的时间范围。 Flash Player 有超过 95% 的覆盖率,Silverlight 没有办法接近。不过,Silverlight 可能会成功,毕竟它有微软的支持。如果您打算在下周推出一个网站并希望拥有大量受众,Silverlight 不是一个选择。如果您的目标是启动一个每个人都想使用的非常酷的应用程序,那就有点不同了,如果您的应用程序足够好,您的目标受众可能会安装 Silverlight 以便能够运行它。

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


C
Community

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

就寻找 C# 或 VB 开发人员与寻找 ActionScript 大师而言,技能组合将更容易找到。但是有一个权衡:

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

现在,Silverlight 设计器工具还没有完成,可能会让人头疼。例如,尝试呈现包含 IValueConverter 的任何 xaml 时出现混合错误,这是有问题的。我不知道 Adobe 开发人员的体验是什么,我敢肯定它很棘手。

所以在游戏的这个阶段,它归结为人力资源:

如果您有 .NET 经验并且对设计技能投入很少,请选择 Silverlight。编程技能/工具将是可转让的。如果您有设计经验和技能,请选择 Flex。设计师的技能/工具将是可转移的。

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

从不同的角度转述Jon's意见:

我认为您应该将 Flex 视为一项长期游戏,就像 Adobe 似乎正在做的那样。当您担心覆盖面和安装基础时,何时使用 Silverlight 与 Flex 有一个明显的平衡,但这里有更多原因 Flex 是一个很好的方向:

后发优势 - 正如 Adobe 使用 Flash 构建了一个“更好的 Java Applet”一样,他们今天能够了解您如何从头开始设计运行时。他们的优势在于了解当今人们如何使用网络,这是现有客户端平台的发明者永远无法准确猜到的。 .NET 可以添加功能,但它们不能真正放弃平台并重新开始。设计师熟悉度——虽然 Flex/AIR 是一种新的编程模型,但设计师并不完全陌生。他们将“了解”Flex 的工作方式,比他们理解的使用新的功能较差的工具和新的动画范例启动新的设计环境要快得多。摆脱 Silverlight 中的 RGB 颜色模型 - .NET 最初是为 Windows 构建的,它是其工作方式的核心。 Flex 很久以前就放弃了以设计为中心的模型。您的所有工具都在您的 Mac 上运行。纳夫说。很酷的功能——Silverlight 在一些明显的功能(如网络摄像头/麦克风集成,或 3d/图形加速)上仍有一些赶超 Flash 的能力。


去观看 QuakeLight 的视频,告诉我 Silverlight 在图形方面还有一些工作要做。另外:“你所有的工具都在你的 mac 上运行。Nuff 说。”显然mac是完美的。
根据我的经验,开发人员掌握新编程语言的速度比设计师掌握新设计软件的速度要快。他们比我们更固执己见!
@jcollum:实际上,quake 也使用 Alchemy (labs.adobe.com/technologies/alchemy) 移植到 flash (youtube.com/watch?v=6TKGNS1N1yo)。
“设计技能”与编写适当的 flex 应用程序有什么关系?它不仅能够制作看起来像开发人员“设计”它们的股票应用程序。
“您几乎可以保证专业设计师使用 Mac 并具有使用 Adobe 工具的经验。”如果您曾经使用过 Flex Builder,您就会知道“以前使用 Adobe 工具的经验”并没有什么好处。它建立在 Eclipse 之上,对于之前没有熟悉编程 IDE 的任何人来说都是陌生的。
A
Akash Kava

我们同时在做 silverlight 和 flex,这里是开发者对两者的观点。

Silverlight 的优点:

C# 的强大功能、代码片段、重用现有 C# 算法实现以及其他语言的强大功能、泛型和 Linq 等 CLR 的本机执行功能而不是 Flash 的动作脚本解释器一个集成的 Visual Studio for All Development Expression Blend 真的很酷和更高级的编辑器然后 Flex Builder XAML 对搜索引擎友好 非常好的状态转换并且易于定义 线程和异步任务 可访问性,没有人知道微软总是在其所有产品上提供最好的可访问性功能,他们总是与残疾人合作得很好,比较仅浏览器 IE 支持完全可访问性,而 Safari/firefox 等则更接近。

Silverlight 的缺点:

严格来说是微软平台,我知道很多人会争论,但在目前的情况下,一半的英特尔 Mac 用户无法使用 silverlight 3.0,所有 PPC Mac 用户都无法使用 Silverlight 2.0 及更高版本,并且没有适用于 Linux 的 silverlight。有mono,但微软没有官方支持,它总是落后于逆向工程.NET和移植到其他平台上,它还不是开箱即用的。大多数组件/控件都是“密封的”,因此很难扩展它们并覆盖以轻松制作新组件。错误的 CustomControl/UserControl 架构。例如,您不能将 XAML 的根作为 ComboBox 或任何其他控件并让它同时具有设计和代码,您可以创建自定义控件但它们太复杂了绑定需要组件命名并且不支持像 flex 那样的实例表达式,尽管有两个绑定方式在silverlight中很好,但是您必须为一个数学表达式的多个绑定编写长代码

例如 // 这在 flex 中是可能的.. // 但在 silverlight 中不行 // 显示全名..

Flex的优点:

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

Flex的缺点:

迭代执行速度慢,没有线程!没有异步任务!!基于第 1 点,不可能有出色的动画或图形 没有泛型,没有其他语言,没有 linq .. Number 类有一个错误,不能存储完整的 64 位长值 Eclipse 不能设计一些很棒的 UI

结论

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


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

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

您将 Silverlight 推向 Flex 的原因是什么?如果您必须向 SOFlow 社区询问原因,您会如此愿意推动它,这似乎很奇怪。


等微软把它推送到自动更新上,就可以达到99%的渗透率。
是的当然。 99% 的 IE 用户使用 IE7 的方式完全一样,没有人使用 IE6,因为 IE7 是通过自动更新推送的。是的。
对于没有它的用户来说,silverlight 安装非常容易。
您忘记了 Flash 已经与大多数浏览器捆绑在一起。
我最近安装的 FF3 要求我单独安装 Flash。 Silverlight 的安装更容易。
a
analytik

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

2015 年第 2 季度更新:Silverlight 正式死亡。 Adobe AIR 还活着,但并不繁荣——根据您的技能和工具链,它可能很有用。 Microsoft 和 Adobe 都承认 HTML5 是要走的路(无论是使用 AIR、Apache Cordova 还是 Visual Studio)。

2017 年第 3 季度更新:哈哈哇,谁甚至不再使用 Flash。


此外,Flash Player 10 包括带有硬件加速的 3D - 遗憾的是没有!
同意 AIR(可能非常重要),但还没有 3d 支持。
我们也注意到 Air 是在 2008 年初发布的,它非常年轻,当然随着时间的推移它会变得更好。我不能给出“没有意见”,因为我只是不喜欢微软的商业/营销方法。但如果不是这样,我们就不会像现在这样处于当前的技术状态。
Flex 有 Air,Silverlight 有 WPF。我认为这没有足够的差异来成为一种或另一种争论。
Silverlight 3 带有“浏览器外”功能,您的 silverlight 应用程序可以像 AIR 应用程序一样安装到桌面。有用于检测应用程序何时在浏览器中运行、何时存在互联网连接的 API,甚至还有用于自动更新应用程序的 API。
M
Martin Wickman

不要忘记:

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

根据我的经验,Java 开发人员在 Flex Builder 中感觉很自在,因为它基于 Eclipse。


我不得不说 C# 开发人员也对 Flex 感觉很好,因为 Flex 的首席设计师最初是在 .Net 团队中的
您还可以将 Eclipse 与与 Adobe Flex 一样的 Flex Development 插件一起使用。
I
Iain

你永远不会在 SO 上对这个问题进行公平投票,因为它有这么多 Microsoft 开发人员。

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

我说让你的开发人员尝试这两个平台,看看他们更喜欢哪个。

为了回答下面的评论,我注意到虽然有很多推荐 Flash / Flex 的答案,但 Silverlight 有更多的赞成票。这不是说谎的问题,只是偏爱自己熟悉的东西,不一定是最好的平台。


我看到比 Silverlight 更喜欢 Flex 的人,所以可能更多地由 .Net 人主导,但它肯定没有偏见
所以微软开发人员自然不诚实?每个不同意你的人都是骗子吗?
J
JasonMichael

当谈到 Flex 时,Silverlight 程序员不知道他们错过了什么。 Silverlight 缺少 Flex 所具有的组件模型和事件触发功能。使用 XNA 和 C#,我的一个朋友必须跳过各种障碍才能让他的 Silverlight 应用程序正常工作。然后,它必须交给设计师才能让它看起来不错。

收听 Silverlight 上的 deepfriedbytes.com 播客,您会听到即使是真正推动 Silverlight 的几个人如何承认其中的一些问题。 (我想,如果我没记错的话,其中一个人在微软工作,但我可能是错的——我上周听过)。他们同意 Silverlight 在当前状态下还没有为任何大型应用程序做好准备。

我会选择 Flex,因为它是一种简洁明了的方法——特别是如果您已经熟悉 Flash 和 ActionScript 3.0。在我看来,Flex 更有意义 - Silverlight 仍然需要成熟。


-1。 XNA 与 Silverlight 有什么关系?它们并不像您暗示的那样直接连接。并且 99% 的程序员真的应该在向公众发布之前就将他们的东西交给设计师 :)
L
Luke Bayes

归根结底,您的开发人员不应该支配您的技术。这绝对是一个应该基于您的用户的产品决策。

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


T
The Loud Ninja

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

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

给他们一份 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 插件中可用的新功能,请记住这一点。

投资一个强大的系统(四核、4G 内存等)Blend 会消耗大量资源,尤其是。当你有很多层时。例如,我正在开发一个应用程序,其基础应用程序中有超过 100 层(!)(在某些用户控件中还有 100 层以上),以及大约 40-50 个故事板。每隔几分钟,我必须重新启动 Blend,因为 UI 停止响应(但不会冻结)。要么,要么将所有可能的东西移到用户控件中。


“基础应用程序中的 100 层(!)(以及一些用户控件中的另外 100 层以上),以及大约 40-50 个故事板”:听起来你需要努力将事情分解成更多的用户控件。您肯定不会在同样的几分钟内处理所有这些事情吗?
K
Keith

我的团队过去使用 Flex 编写丰富的 Web 功能,现在使用 Silverlight 编写它们。

我们进行此切换的原因:

FlexBuilder 基于 Eclipse 构建。日食太可怕了!免费,但漏洞百出,漏洞百出且速度缓慢。

FlexBuilder 的价格是 Expression Blend 的两倍,无论如何我们都可以通过 MSDN 免费获得。

Flex 对源代码管理来说很痛苦,它不喜欢将文件放在一个地方,并且它与您解决方案的其他部分不兼容(我们尝试使用 SourceGear Vault 和 SVN)。

Flex 的 ActionScript 版本不喜欢大多数 SOAP 实现,特别是它与 .Net WebMethod 的实现有各种问题。

尽管我们定期使用许可的 Flex 组件,但它决定我们没有该版本并添加了仅演示水印。删除它的唯一方法是将项目分解,重新安装 Flex,重新安装许可证并重建它。

FlexBuilder 根本不喜欢 Vista。

Silverlight 的接受度正在增长,一旦达到我们可以将其添加为我们切换的相关功能的要求的水平。如果我们为网络(而不是企业)受众工作,我不确定我们是否可以拥有。

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


我们在 Eclipse 中使用 Subversion 进行 Flex 开发,发现它稳定且高效。说 Flex 对源代码控制很痛苦,这对我来说毫无意义。
@HDave - 我们发现 Flex 项目在新用户第一次签出(最初使用 Vault,但后来也使用 SVN)后经常需要重建。如果他们在签入原始用户时确实重建了它,则会得到一个损坏的项目。我们还经常丢失 Flex Charts 许可证,因此集成构建最终会在图表中出现演示水印并禁用功能。也许 Eclipse 现在更好了,但是当我们在 2008 年使用它时,它总是会崩溃或以其他方式失败。
我的猜测是,时间一直是 Flex/Eclipse/Subversion 的朋友。我在过去的 15 个月里才使用它,但还没有这些经验。我一直在使用 Flash Builder 4,我不喜欢它,但至少结帐/提交工作。我也使用 Maven/Flexmojos——但这需要很长时间才能弄清楚。
S
Sam Corder

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


S
SkunkSpinner

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

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


“Ajax 和 JavaScript 的痛苦” <-- 与 Silverlight 的当前实现无关,它不使用 JS
您的开发人员已经可以使用 JavaScript 进行编程这一事实可能与他们快速熟悉 Flex 有很大关系。
P
Philippe Monnet

尽管我已经使用 Silverlight 完成了工作,并且对能够让应用程序存在于浏览器之外的能力感到非常兴奋,但 AIR 的一个巨大好处是提供了对本机拖放功能的访问。这允许您构建非常用户友好的图像或文档上传功能(例如 Flickr 上传器)。据我所知,MS 还没有专注于那种支持(即没有宣布计划)。


t
theog

我认为 Silverlight 和 XAML 比 ActionScript 更可取,虽然我不熟悉 ActionScript IDE,但我熟悉 VS2008 和 Expression Web/Blend,它们是非常好的开发环境,并且一直在变得更好。我会选择 Silverlight,我认为让用户安装插件的关键是要有一个好的插件检测页面来解释什么是 SL 以及他们为什么需要它。有关这方面的示例,请转到 http://memorabilia.hardrock.com/ 并在禁用 SL 插件的情况下尝试。


M
Mark

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


j
jcollum

有人说:“找到 3 个真实世界的 silverlight 应用程序”。好的,我知道一些在我的头顶上,但我还是用谷歌搜索了它。名单:

2008 年北京奥运会(此处为统计数据,已交付 250TB 数据!)

Netflix点播播放器

AOL 电子邮件客户端(可能尚未发布)

哦,不是视频播放器?那么剩下的就是 UFC 应用程序(它是一个混合视频/聊天/其他东西)和 AOL 电子邮件客户端。 Silverlight 擅长视频,这就是它获得立足点的地方,但这并不意味着它不能做其他事情。我认为没有理由仅仅因为它的视频效果很好而忽略它。

Infoworld [link] 表示,“Silverlight 具有巨大的技术优势和相对较好的性能。它是一种非常强大的 RIA 技术,对于具有 .Net 经验的程序员和具有 XAML 经验的设计师来说尤其有用。”这是一篇关于您的问题的好文章。

我的回答:如果你有一个熟悉 .NET 的开发团队,那么 Silverlight 应该是你的首选。如果不是,那么这就是一个真正的折腾。我看过一些文章说,与使用 Flex 的开发平台相比,Visual Studio 是一个更出色的开发平台。但 Flash 几乎无处不在。

还要记住,Silverlight 2 几乎不使用 Javascript(我认为没有,但我并不肯定)。因此,任何因为 JS 而避免使用 Silverlight 的做法都是没有根据的。

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

我真的认为这取决于你的开发人才在哪里以及你将交付什么样的应用程序。简单的游戏?闪光。业务线应用程序?银光。中间?遵循您的开发人员推荐的内容。


P
Paully

如果您了解 .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.0 浏览器之外拥有带有 SL 的应用程序。

我可能是一个有偏见的 .NET 人,但我发展得如此之快,我不得不推荐它。


T
Thomas Hansen

您真的不应该使用任何这些 ActiveX2.0 技术。 Silverlight 和 Flex 都不是...

首先,它们都只不过是“支持在浏览器中运行的分布式winforms框架”,其次它们不能很好地移植到其他设备(尤其是Silverlight),第三它们不起作用与您页面的其他部分相得益彰。它们不适用于残疾人等,等等,等等。列表无穷无尽......

Adobe 和 Microsoft 都非常努力地试图隐藏这一事实,但归根结底,Silverlight 和 Flex 都不过是新包装中的 ActiveX……

当然,它们在沙盒中运行,是托管语言等等。但它仍然是一大块 BLOB 被下载以在您的浏览器(AKA ActiveX)中本地运行......


我经常听到这个理论,我不得不接受它。您是否建议我使用 Javascript 和 CSS 开发我的第一人称射击游戏,以便所有运行 Plan 9 的青少年都可以玩它?企业 LOB 应用程序可以特别受益于 RIA 提供的部署和维护优势。使用 HTML/CSS/JS 开发丰富的内容(例如 3d 引擎)非常困难,并且患有方钉/圆孔综合症。 RIA 有自己的位置,我期待在这个领域有更多的竞争。
对于您的第一人称射击游戏来说,JS 和 HTML 可能不是今天使用的正确技术。尽管您所说的有关企业 LOB 的部署和维护需要评论。与部署“JS 和 HTML 的东西”相比,维护和部署 silverlight 的东西要先进得多、困难得多、麻烦得多……(显然!)而且 Silverlight 的部署(和维护)可能比部署(和维护)的麻烦要少得多桌面的东西...
关于企业应用程序,HMTL 不是我工作的领域(资源)的选项。所需的内容和功能太动态了。对于 Microsoft SOE 的运营,Winforms 是最佳选择。 WPF 通过单击一次进行部署使事情变得更容易,但您仍然必须处理让桌面应用程序批准用于 SOE 的无休止的官僚主义。在 .NET 代码下在浏览器中运行不需要与 IT 人群进行正常讨价还价的东西是一种乐趣。
@Alex - 看看你为什么认为你的域问题太复杂而无法用 W3C 平台(HTML、JS、CSS 等)解决会很有趣——谷歌通过 W3C 平台进行映射。当然,一些极端的应用程序(我怀疑主要是游戏)需要比 W3C 平台提供的更多的功能,但是对于那些我怀疑像 Qt 或 NativeClient 这样的东西会更合适,如果不是为了其他任何东西,那么他们的事实'是开源的。但我可能是错的,也许 Silverlight 对你来说是正确的,但是你会属于一个非常小的开发团队......
可视化引擎就是一个明显的例子。是的,Google Apps 和 Google Docs 的外观和感觉都很棒。不幸的是,在 W3C 中找到这样的人才并不容易。您认为 Flash 最初为何如此受欢迎?恕我直言,它允许开发人员快速制作高度动态的内容,而无需成为 W3C 忍者。想到用 Javascript 编写复杂的应用程序,我也感到畏缩……这并不是它的设计初衷。如果像 NativeClient 这样的开放式替代方案能够流行起来会很棒,但是今天我在公司 SOE 中获得批准的机会为零。
I
Ian Ringrose

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

Silverlight 已经被微软抛弃了,它从来没有获得有用的安装基础。由于 Microsoft 未 100% 承诺而导致的一方。

Flash(因此 Flex)仍在继续。然而越来越多的浏览器不支持任何插件,所以flush走上Silverlight的道路只是时间问题(几年)。

也许有一天 Flex 会重新定位到没有插件的 HTML5 ......

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


甚至 Flex 现在也仅由社区支持,HTML5 标准目前正在跨所有设备接管 Web 平台。
C
Community

Flash Player 在几乎所有桌面平台(Windows、Linux、Mac)中都可用并得到正式支持,而 Silverlight 将主要在 Windows 中得到支持。

以下 article 提供了两种平台的比较。


不正确,Silverlight 还通过 Moonlight 支持 Mac 和 Linux
您好 vijiboy,Moonlight 是一个开源项目(仅由社区支持)。借助 Moonlight,Silverlight 可以部分在 Mac 和 Linux 上运行。
正如 Wikipedia 所说,Moonlight 得到了 MS 的间接支持en.wikipedia.org/wiki/Moonlight_(runtime)#Microsoft_support。无论如何,现在两者都停止了路线图。
以下是支持的浏览器列表和Silverlight microsoft.com/getsilverlight/locale/en-us/html/… 的操作系统。月光
关于 Moonlight 项目的信息(目前未在积极开发中)mono-project.com/docs/web/moonlight

关注公众号,不定期副业成功案例分享
关注公众号

不定期副业成功案例分享

领先一步获取最新的外包任务吗?

立即订阅

相似问题