【问题标题】:Advantages/Disadvantages of AIR vs Flex/WebAIR 与 Flex/Web 的优缺点
【发布时间】:2011-03-04 00:11:28
【问题描述】:

我的任务是编写一个用于放置和连接对象的应用程序(有点像可以放置家具的房间规划器)。我使用 Flash Builder 4 制作了一个演示,并将其构建为 AIR 作为桌面应用程序。现在客户想要完整的应用程序,但他们和我不确定是继续将其构建为 AIR 应用程序还是使用 Flex 将其转换为 Web 应用程序。我尝试将 AIR 应用程序简单地转换为 Web 应用程序,大多数事情都有效,但不是全部。但是,不起作用的东西似乎只是简单的错误,而不是完全缺乏能力。

我需要的能力(建模除外)是:

  • 打印完成的图像+已放置的家具清单
  • 一种保存和检索已完成计划的方法
  • 一种将家具列表导出为 Excel 格式的方法
  • 处理有关不同对象的大量数据

到目前为止,只实现了打印,并且似乎也可以在网络应用程序中使用。

这两种方法有什么优点/缺点?在这两种方法中,我需要更糟糕(甚至不可能)实现的任何功能吗?

编辑:感谢大家的回答。根据他们以及我自己的研究,我得出以下结论:

网络应用

优点
  • 可访问,无需安装软件
  • 易于保持最新状态
缺点
  • 需要 Flash 10(用于保存文件)
  • 需要网络服务器来提供内容
  • 开发时间稍长(从我现在的情况来看)
  • 需要互联网连接才能工作
  • 大量数据传输,在慢速网络上可能会很慢

桌面 AIR 应用程序

优点
  • 开发时间稍快(从我现在的情况来看)
  • 无需网络服务器
  • 可以在未连接到互联网时使用
  • 所有数据都是本地数据,加载速度更快
缺点
  • 需要 Adob​​e AIR 运行时 + 单独安装程序
  • 需要将更新分发给所有用户,并且需要管理员安装它们

【问题讨论】:

    标签: apache-flex air


    【解决方案1】:

    对于这个问题没有一个直接的答案。需要考虑的几点:

    1. 如果您想使用特定的 AIR 功能,例如离线使用、与用户的操作系统集成等,您应该使用 AIR(当然)
    2. Flex 应用程序更易于分发和升级,因为每个人都使用来自服务器的相同 swf 实例。将服务器后端与 AIR 结合使用时,您应该注意升级应用程序时可能出现的向后兼容性问题。

    【讨论】:

    • 感谢您的回复!如果我走 AIR 路线,我将使用本地 SQLite 数据库进行数据存储,但您说得对,应用程序本身更容易在 Web 上分发。
    【解决方案2】:

    有很多细微的差别,但总的来说,您需要考虑的唯一因素是:

    1. 是否需要在网络上?
    2. 是否需要文件系统访问权限。

    如果 (1) 则使用常规 Flash。如果 (2) 则使用 AIR。

    【讨论】:

    • 感谢您的回复!它不需要在网络上,因为我也可以通过应用程序分发数据。至于(2),我需要能够保存和打开保存的文件/配置,但如果我走网络路线,我希望能够将它们在线保存在数据库中。任何其他考虑因素,因为这些都不是决定性的?
    • @Lizzan:其他考虑? AIR 应用程序更酷,没有浏览器开销! :)
    【解决方案3】:

    最大的缺点与更新模型有关——您需要成为超级用户才能更新air应用程序——尤其是在企业中,AIR应用程序的用户无权更新它。如果您的应用程序在浏览器中运行,则不会出现此问题。

    除此之外,我没有看到任何缺点。

    【讨论】:

      【解决方案4】:

      查看flash 10 FileReference,您可以让用户轻松地将结果保存到他们的本地文件系统。我用它来创建 PDF 并让用户保存以供打印。

      对于 PDF 方面,我使用了Alive PDF

      protected function PrintCard(event:MouseEvent):void
      {
          //ShowHideBorders();
          var printPDF:PDF = new  PDF( Orientation.LANDSCAPE, Unit.MM, Size.LETTER );
          printPDF.setDisplayMode( Display.FULL_WIDTH, Layout.SINGLE_PAGE );
          printPDF.addPage();
          printPDF.addImage(CardPanel);
          var fileRef:FileReference = new FileReference();
          fileRef.save(printPDF.save(Method.LOCAL), "card.pdf");  // Sends the file to the USER
      
          //ShowHideBorders();    
      }
      

      【讨论】:

      • 谢谢,如果我走网络路线会有所帮助。顺便问一下,你用什么来创建 PDF 的?我可能也需要这种能力。
      猜你喜欢
      • 2011-03-12
      • 2010-09-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-12-05
      • 1970-01-01
      • 2011-01-26
      相关资源
      最近更新 更多