【问题标题】:AIR (Flex) vs JavaAIR (Flex) 与 Java
【发布时间】:2009-10-15 15:05:27
【问题描述】:

我正在编写一个桌面应用程序,并试图在使用 AIR (FLex) 还是 Java 之间做出决定。申请的一些要求是:

  • 需要安全连接到网络 服务和 JMS
  • 有一个非常互动的用户界面(很多 小功能和大功能)
  • 显示视频
  • 与 C++ 应用程序通信

为了为 Flex 实现 Web 服务和 JMS,我们考虑使用 Merapi 与 Java 应用程序进行通信。这是否意味着我们可能应该使用 Java 或者 Flex 更好的图形功能仍然使它成为更好的选择?

你会选择哪种语言?

【问题讨论】:

    标签: java apache-flex air


    【解决方案1】:

    我将尝试在下面解决您的每一个问题:

    需要安全连接到 Web 服务和 JMS

    Flex/AIR 支持 SOAP,尽管它不支持大多数(任何?) WS 标准,例如 WS-Security。 Flex/AIR 不能直接与 JMS 通信,但是您可以将 Blaze DS Java 组件添加到后端,该组件可以调整 JMS 端点以与 Flex/AIR 的消费者/生产者消息传递架构一起使用。

    有一个非常互动的用户界面(许多大大小小的功能)

    我认为整体 Flex/AIR 在这里获胜。并不是说您不能在 Java/JavaFX 中制作很酷的 UI,而是 Flex/AIR 可以让您以更少的代码/工作量构建一个很酷的 UI。

    显示视频

    我在 Java 中处理视频的工作不多,但在任何 Flash 环境中制作视频都很容易。您可能需要考虑需要支持哪些格式来帮助您做出决定。

    与 C++ 应用程序通信

    AIR 2.0 将允许与本机进程直接通信,因此根据您的时间线,您可能能够使用本机 AIR 功能而不是 Merapi。 Java 显然已经具备这种能力。

    【讨论】:

      【解决方案2】:

      我是 AIR 的部分粉丝,我在一堆基于 XML 的 REST 服务之上做了一个相当 large "flashy" UI。 Flex 有很多问题,但它已经走过了漫长的道路。从 1.5.x 开始,它的性能很好,它的垃圾收集器终于变得更好了。

      AIR 积分:

      • 很好但不是很好的文档
      • 相当数量的图书馆
      • 出色的视频支持
      • 非常适合时髦的布局
      • 不错但奇怪的 CSS 支持
      • 良好的社区
      • 不断发展的基础框架(Adobe 正在推动它)
      • AIR 框架不必由 Adob​​e 的安装程序安装
      • 基于伪一键浏览器的“徽章”安装程序

      Java 点数:

      • 很好但不是很好的文档
      • 大量的图书馆
      • 不错的视频支持
      • 好的布局(非常老派 - 甚至 SWT)
      • 稳固的社区
      • 框架相对停滞不前(我个人认为 Java 并没有受到推动。一旦公司锁定了 Sun,就停止了该语言的发展,直到 .NET 和其他动态语言开始追逐他们的市场空间。)
      • Java 应用程序几乎总是需要特定的 JRE 版本
      • Java 与 AIR 非常相似,需要 JRE,但您无法自行安装(静默)。

      当您做出这样的选择时,永远不会有“正确”的答案,只有对您和您的团队有意义的答案。每个人都有不同的意见,所有的语言都有缺点。而且无论您选择什么,当您自己猜测时,总会有一个点(如果不是很多)。

      祝你好运!

      【讨论】:

        【解决方案3】:

        我认为这两种技术都能很好地满足您的大部分需求,但在我看来,Flash/Flex 是处理视频的最简单方法。 AIR 应用程序有点烦人,因为它们是 AIR 应用程序,您不能在没有 AIR 运行时的情况下安装它们。也就是说,AIR 提供了很多不错的功能,例如安装、自动更新等。

        我不确定将 JMS 与 Flex 结合使用会有多容易,但如果还没有 AS3 库来处理它,我认为编写一个库不会太难。这将是我在使用 Flex 时最关心的问题。否则,它的 UI 和视频效果都很好。

        【讨论】:

        • java也一样,需要安装JRE
        【解决方案4】:

        如果您打算使用 Merapi 与 Java 进行通信,则必须记住 AIR 的局限性。 AIR 无法自行启动任何系统进程,因此如果您想通过 Merapi 与 Java 通信,则需要在启动 AIR 应用程序之前启动 Java 进程。目前还没有其他方法可以解决这个问题。

        AIR 2.0 将能够启动进程,但在它发布之前,我们一直在等待。

        【讨论】:

        • Air 2 现在处于公开测试阶段,应该会在 2010 年上半年发布
        【解决方案5】:

        就我个人而言,我喜欢 Flex 中的 UI 设计方式。我不确定Java是否有等价的东西。

        我知道 Flex/Air 可以连接到普通的 Web 服务(而且我相信你可以包装一些东西来支持 JMS,因为它通过 HTTP 工作?)。

        不确定视频兼容性,如果这对您来说是个问题。

        我认为性能不是主要问题。

        【讨论】:

        • @bLee 抱歉,我没有具体说明,但我认为这个应用程序显然是用于桌面而不是互联网浏览器。我以为 GWT 是用于浏览器应用程序的?
        • ...不管怎样,在 GWT 中创建 UI 不是基于 XML 描述,就像 Flex 和 WPF 那样。
        猜你喜欢
        • 1970-01-01
        • 2011-03-04
        • 1970-01-01
        • 1970-01-01
        • 2014-10-05
        • 2010-10-14
        • 1970-01-01
        • 1970-01-01
        • 2011-05-03
        相关资源
        最近更新 更多