【问题标题】:Migrating Delphi App to Java or to Web App将 Delphi 应用程序迁移到 Java 或 Web 应用程序
【发布时间】:2009-05-06 17:53:22
【问题描述】:

我们希望将 UI 丰富的应用程序从 delphi 迁移到 java 或 Web 应用程序。

原因是我们希望应用程序在所有操作系统上都是可移植的。

当前在 Delphi 中的应用组件和模块:

  • 在 Delphi 中,我们使用 TWebBrowser 组件来显示 HTML 内容
  • 我们正在播放从 FileStream 中提取的 mp3,该文件是在 HTML 中单击时提取的。
  • HTML 的所有资源均从嵌入式数据库 Firebird/Ms Access 中检索。
  • 为了同步一些内容,我们将 HTTP 发布到 PHP 脚本,以集中网络服务器上的数据。

部署: - 应用程序必须部署在 CD 上并安装在 Mac OS、Linux、Windows 的台式计算机上。

我需要您帮助我如何处理此迁移。最好使用将与 WAMP/XAMP 以及 Linux 和 Mac 上的适当发行版一起部署的 Java UI 或 Web 应用程序。

编辑: 我对音频功能有一些特定要求。音频文件是分布在 CD 或 USB 上的单独文件。音频文件是从 mp3 内部编译的一个实体文件。应用程序必须能够根据存储在索引文件中的 mp3 的偏移量和大小来提取 mp3 并实时播放......这如何影响使用这种方法的 Web App 的想法。

【问题讨论】:

    标签: java ajax delphi swing


    【解决方案1】:

    为什么不试试 FreePascal?它使用与 Delphi 相同的语言,并且可以编译为 Windows / Linux / Mac 上的原生应用程序。由于您已经在 Delphi 中拥有了您的应用,因此转换它应该不会太困难。

    看看freepascal website

    【讨论】:

      【解决方案2】:

      如果我必须在 CD 上进行部署,我可能会选择 Adob​​e 的 AIR。它确实以合理的方式履行了 Java 10 年前做出的承诺。它并不完美,但它做得很好。

      【讨论】:

      • +1 如果它只是必须部署在本地,那么 AIR 确实是要走的路。
      • 不完美是什么意思?看看我关于从流中播放音频文件的最新编辑?如何在 Air 中做到这一点?
      • 本地部署的原因是500MB左右的海量音频数据?如果你想在本地从 HTTP 服务器加载仍然有意义,但我仍然不确定这种情况下的未来架构......
      • 我不熟悉 Air 如何处理音乐流。 Flex 确实支持从流数据加载类型,但我不知道您是否可以提供偏移量等。或许了解为什么需要将所有文件连接到一个大文件中将有助于构建解决方案。
      【解决方案3】:

      我听说这个互联网的东西真的很火。

      由于过去 10 年应用程序上线的所有原因,确实没有太多讨论。

      虽然 Java 是可靠的,但为这些应用程序分发和推出后续更新既繁重又耗时。

      我从事 Delphi 开发工作超过 9 年。很长一段时间以来,我一直反对通过网络分发真实应用程序的想法。今天,我不敢相信有人会选择以这种方式继续下去。

      一件好事,如果您有创意,您可能可以在后端重用您的一些 Delphi 逻辑。 (我只会在短期内推荐这个)

      但是,这个答案并没有真正解决您的问题,因为您说您必须通过 CD 分发它。

      【讨论】:

      • 从 Delphi 迁移到 Java 会有多无缝。我的印象是大多数 Delphi 迁移是在 .Net 的方向上 - 这将解决海报的跨平台要求,但它是否更适合原始源库?
      • 是的,如果您希望保留原始源代码,.NET 会更合适。我喜欢使用 AIR 的想法,仅仅是因为它迫使您思考有一天您只是在线运行应用程序。
      • .NET 可能是最简单的方法,但由于 Linux 和 MAC OS 而不是一个选项。
      【解决方案4】:

      Java 6u10 版本允许在媒体上而不是从 Web 服务器分发 Java WebStart 应用程序,这可能正是您正在寻找的。如果需要,您也可以将适用于 Windows 的 JRE 安装程序放在 CD 上。

      您的跨平台需求到底是什么?

      【讨论】:

      • 我不明白这个问题,我想通过将应用程序从 Delphi 迁移到 Java 来解决平台约束。 Delphi 只能在 Windows 上运行。
      • 您需要运行 GUI 客户端(困难)还是全部通过浏览器交付(更简单)?对于嵌入式数据库,请查看 Apache Derby。对于嵌入式网络服务器,请查看 Jetty。
      【解决方案5】:

      如果大多数应用程序都是基于 HTML 的,为什么不使用 Ajax 和 Java 将其制作成一个完整的 Web 应用程序?

      我推荐 NetBeans 和 ICEFaces,这是一种支持 Ajax 的 Java Server Faces 实现,包括并发更新 - 如果一个用户编辑记录,所有其他用户都会在他们的网页中看到更新。

      可以将整个应用程序打包在一个 jar 文件中,包括 servlet 容器(例如 Jetty),因此一个简单的 java -jar myapp.jar 将运行该应用程序。

      NetBeans 允许对 ICEFaces 网页进行可视化编辑,甚至可以对页面关系进行可视化编辑。 NetBeans.org 上的教程非常好,加上 Maven、Hudson 等工具,代码质量和开发过程都可以达到很高的水平。

      【讨论】:

      • 我喜欢这种方法。我对音频部分有一些具体要求。音频文件是分布在 CD 或 USB 或其他任何东西上的单独文件。音频文件是从 mp3 内部编译的一个实体文件。应用程序必须能够根据存储在索引文件中的 mp3 的偏移量和大小提取 mp3 并实时播放......这如何影响使用这种方法的 Web 应用程序的想法。谢谢。
      • 如果是多媒体应用程序,Suns 新的 JavaFX 客户端技术可能是用户界面的一个选项:en.wikipedia.org/wiki/JavaFX
      【解决方案6】:

      如果您有一些使用 Datasnap 的 Delphi 应用程序:您也可以通过 Delphi Prism 中的 Datasnap 重新使用 Delphi 制作的服务器并制作 Silverlight 应用程序。

      DataAbstract 也是如此

      【讨论】:

      • 这是个好主意,但我们不想再依赖 Delphi 平台了。
      猜你喜欢
      • 1970-01-01
      • 2014-09-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-10-08
      • 2018-12-26
      相关资源
      最近更新 更多