在Ajax,Flex和Silverlight之间进行选择

时间:2008-09-07 23:09:31

标签: ajax silverlight flex

AjaxFlexSilverlight是制作更多交互式网络应用程序的几种方法。在决定使用哪种新Web应用程序时,您会考虑哪些因素?

它们中的任何一个是否提供更好的跨平台兼容性,性能,开发人员工具或社区支持?

5 个答案:

答案 0 :(得分:13)

以下是每个区域的快速概述(包含大量有用的链接):

跨平台兼容性

Ajax适用于可以any modern browser运行的JavaScript。 Flex需要Flash或其他任何可以处理SWF的内容,但是一旦安装了它,就兼容性而言,它是total freeride。 Silverlight是tricky and misunderstood因此,在进入富Web应用程序军备竞赛之前,请仔细考虑您的userbase。另外请记住,Silverlight仍处于测试阶段,因此在未来开发时可能会得到更广泛的使用和安装。

效果

我担心会有太多关于性能的陈述,因为它实际上取决于您愿意优化多少以及应用程序的确切性质。此外,一些技术堆栈永远不会非常快。 Some people out there have been making comparisons,但同样是it depends on a great many factors(甚至是您正在测试的浏览器版本!)。最好根据其他因素进行选择,并在开始开发后进行优化。

开发人员工具

三者中都有“黄金标准”开发工具:

  • Ajax基本上拥有无限的选项,具体取决于您的其他技术和架构选择。你实际面临的重大问题是哪些图书馆需要依赖,而谷歌已经用Web Toolkit之类的话提出了很好的回答。当你接下来的时候,它只是XML和JavaScript,对吧?

  • Flex来自Adobe,就像使用Flash开发一样,你最好坚持their homegrown tools,因为 - 好吧 - 他们正在制定标准。

  • Microsoft已将Microsoft Expression Blend版本2.0和2.5分别用于设计Silverlight 1.0和2应用程序的UI。 Visual Studio 2008可用于开发和调试Silverlight应用程序(from Wikipedia)。

社区支持

所有三种选择都有正式和非官方的社区,企业和开源支持。无论你已经融入哪个并且让你感觉最贴心的是个人的事情,但我会提供这样的建议:坚持你所知道的。如果您是MS开发人员并将MSDN作为主页,您可能会认为Silverlight documentation和论坛确实非常有用。 Flex有一个非常相似的故事;论坛非常好,如果你已经是Flash人员,那么你将会在他们的documentationuser community上找到他们的正确位置。

另一方面,Ajax基本上到处都是因为你可以实现这么多不同的方法并使用如此多的各种各样的库。每个图书馆都可以拥有自己的论坛来访问和邮寄名单,以便潜伏在内。

这三家企业巨头再一次试图培养他们的社区,并为开发商提供最好的支持,以便在未来为他们提供更大的市场份额。

答案 1 :(得分:5)

在我看来,选择应该主要基于您将要构建的应用程序的性质(例如,如果您需要操作矢量图形,Ajax几乎已经完成),但这里有一些通用指南:< / p>

<强>无处不

  1. Ajax - 跨平台的所有现代浏览器支持
  2. Flex - 运行时(Flash Player)具有非常广泛的Windows,Mac OS,Linux安装基础。虽然
  3. ,我上次检查时Linux版本有点儿错误
  4. Silverlight - Runtime目前的安装基础非常低(并且没有Linux支持)
  5. 选择编程语言

    (由于主观性而无法解决,但请注意Silverlight提供了最多的选择。另请注意,应考虑团队中开发人员的现有语言体验。)

    • Silverlight:任何.NET语言(C#,Visual Basic,IronPython(?),IronRuby(?))(以及用于UI定义的XAML)
    • Ajax:JavaScript(和用于UI定义的XHTML)
    • Flex:ActionScript 3(以及用于UI定义的MXML)

    API稳定性和兼容性

    1. Flex - 运行时在平台和浏览器中是相同的,目前比Silverlight更成熟和稳定
    2. Silverlight - 运行时平台和浏览器相同,不如Flex / Flash成熟,v2.0仍处于测试阶段
    3. Ajax - 跨浏览器的兼容性问题(可通过Ajax库缓解)
    4. 网络/浏览器集成

      1. Ajax - 内容在浏览器中是原生的,基于标准:可由浏览器和搜索引擎抓取工具搜索,受浏览器和操作系统建立的任何标准UI实践的影响
      2. Flex和Silverlight - 内容不是浏览器的原生内容(即在其自己的“沙箱/矩形”中运行):不一定受制于给定平台的既定UI实践
      3. 开发人员工具

        1. Ajax - 您最喜欢的代码编辑器,浏览器和浏览器调试工具包
        2. Flex - Flex SDK可免费用于Windows,Mac OS和Linux,可与您喜欢的代码编辑器一起使用。包含命令行调试程序,但Adobe提供的分析程序仅在商业Flex Builder IDE中可用
        3. Silverlight - AFAIK ,SDK可免费用于Windows,可与您喜爱的.NET开发工具一起使用

答案 2 :(得分:2)

像Flex和Silverlight这样的网络运行时都提供了诱人的东西,但需要付出两大代价:

  • 它们只在页面上的矩形内运行,并且不与普通的Web小部件交互
  • 仅适用于安装了该插件的人

即使是几乎无处不在的Flash也没有安装在每个网络浏览器上,因此通过选择使用插件运行时,您将排除部分观众。

相比之下,JavaScript(或Ajax)几乎可以在每个浏览器上使用,并且可以与普通网页进行更好的交互,但却是一种更原始​​,更具限制性的语言。将它用于复杂动画可能会非常棘手,您需要在更多平台上测试更多版本的应用程序以确保其有效。

跨平台兼容性不再是以前的问题,因此问题是:您是否会获得插件库功能的更多功能,而不是您在排除的受众群体中失去的功能?

到目前为止,我自己的答案一直是JavaScript / Ajax,但我会在任何新项目中对其进行重新评估。

答案 3 :(得分:1)

您的受众群体是什么:公共网站或内联网业务应用程序?如果您的受控受众群体将安装运行您的应用所需的内容,则采用率无关紧要。但是,如果您需要尽可能多的受众群体来使您的网络创业成功,那么这可能是至关重要的。

你的目标是什么?以最低的成本建造东西?学习新技术?

你能利用现有的技能吗?如果你已经了解.NET,那么Silverlight会得到提升。学习Flex可能很有趣,也很有用,但是对于您来说,比使用.NET技术更有经验更有用吗?记得要考虑学习一些全新的东西的机会成本。

此时我没有看到明确的技术赢家,并且可能很长一段时间都没有,所以选择将归结为相当主观的因素。

答案 4 :(得分:0)

除了这里已经提到过的内容之外,另一个需要考虑的重要因素是你的UI将会是什么。

如果您要使用许多高级UI控件(如树,列表,选项卡控件等),请考虑以下事项:

  • JavaScript / HTML - 除了基本的下拉框,按钮和文本字段之外的任何东西都没有原生支持。如果你想要一个像树形控件或标签控件之类的东西,你就必须自己动手或找到第三方库。

  • Adob​​e ActionScript - 对各种高级UI控件的本机支持

  • Silverlight - 1.0的UI控件非常有限,但2.0会增加更多,我相信我们会继续看到未来版本中添加的控件。