正在将现有web应用程序转换为桌面应用程序



我在这里看到了一些关于这个主题的其他类似问题,但它们没有太大帮助,所以我提出了这个问题。

将一个大小合理、简单的网络应用程序转换为面向pc和mac的基于Java桌面的客户端的最快方法是什么?不幸的是,由于各种原因,我无法在这里分享有关该应用程序的大量细节。不过,该应用程序中最复杂的UI是一个包含多级线程讨论的页面(请参阅此处以获取我所说的示例。)当前的web应用程序基于python,因此我不能重复使用服务器端代码中的任何内容(不要认为这是个问题)

我从未做过任何swing、awt或任何其他基于Java的厚客户端GUI工作。我的想法或多或少是由基于web的应用程序定义的。我能够使用Java或python进行端到端的web应用程序开发(包括使用HTML、CSS和JS的后端和体面的UI)。对于您的答案,请仅关注Java解决方案。

以下是我的问题我应该使用的最佳框架或工具是什么?作为研究的一部分,我在网上找到了以下一些工具。

  1. 看起来这不是一个好的选择
  2. Swing,我相信它与常规Java SDK/JRE捆绑在一起。-这可能是我最好的打赌
  3. SWT似乎在某种程度上称赞了Swing
  4. 格里芬根据这里的一篇文章。这个框架使用Groovy(I对Groovy一无所知,顺便说一句)Adobe Air flex。任何开放源代码框架

我还需要记住哪些其他问题?我想让你评论的是:

  1. 它需要部署在客户端这一事实是如何使事情复杂化的?由于我们使用的是Java,我认为这不是一个问题。我知道基于网络的应用程序和桌面应用程序之间的常见权衡(例如易于部署和升级等)
  2. 创建一个一键安装程序并捆绑应用程序和所需的环境(例如JRE等)有多容易
  3. 该产品需要在Mac和Windows上运行。这会以任何方式使事情复杂化吗(同样,由于是Java,我假设没有gotchas,但如果有,我希望得到警告)
  4. 作为一种技能,简历上有什么框架或技术可能是好的

我的截止日期最长是2个月——考虑到我需要学习所有这些技术,这对于一个相当简单的网络应用程序来说足够了吗?我只是想了解一下——我知道很可能不可能给出准确的答案——只要假设我足够聪明,能够足够快地掌握任何不熟悉的技术。

谢谢!

GUI工具包

考虑到"Mac和Windows",我认为我的推荐是"Swing"(也许是SwingX1)。

  1. 我同意你对AWT的评价。它不支持任何现成组件中的格式化文本。它还缺少树、表(和其他组件)&最近使用过它的人。不过,请注意,它也和Swing一样"与常规Java SDK/JRE捆绑在一起",只是它比Swing更旧,而且通常启用的更少
  2. 如果说Swing有什么补充的话,那就是SwingX。SwingX构建在Swing之上,提供了J2SE中无法"开箱即用"的高级控件
  3. Swing和SWT是相互不兼容的——使用其中之一
  4. 我对格里芬没有任何经验

Swing是列出的选项中使用最多的,因此对于获得帮助(忽略决策中其他潜在的重要因素)来说,这将是一个不错的选择。

注意1)如果SwingX有任何可以轻松呈现线程对话的groovy组件,请添加SwingX,但我怀疑JTextPane就足够了。


部署

就部署而言,这比看起来要棘手一些。许多台式电脑并没有将Java作为标准配置。那些已经拥有它的人,可能有一个旧版本。

  1. 确保JRE具有运行应用程序所需的最低版本。如果可用,请使用deployJava.js(在下面的JWS页面中通过链接提到)
  2. 要为用户提供"一键"启动体验,请参阅Java Web Start

跨平台gotcha

不幸的是,尽管Java是x平台,但程序员可以做很多事情。例如

  • 不计入平台默认值:
    • 文件编码(file.encoding2
    • 断线(line.separator2
    • 文件分隔符(file.separator2
  • 编码固定大小("绝对布局")的应用程序。将显示为不同大小的应用程序。在其他操作系统上

注2。这显示了每个要使用的属性。


时间表

显然,我不能代表你说话,但我可以告诉你,我没有机会在两个月内从"哪种技术"变成"可部署的应用程序"。

希望你比我更有能力!)

您说过您想要一个Java解决方案,但要注意Python中有很多Gui选项,而且您已经用Python编写了web应用程序。

Groovy是一种不同于Java的编程语言,但Groovy运行在JVM上。您想要Java解决方案还是JVM解决方案?我问是因为你提到格里芬。

假设您想要Java,我认为您的主要选项是Swing、SWT、JavaFX2和ApachePivot。甲骨文表示,他们打算让JavaFX取代Swing成为首选的GUI平台。也就是说,JavaFX2还处于起步阶段,目前只有Mac版的预览版。JavaFX和ApachePivot的结果是,您可以为web应用程序使用与桌面应用程序相同的代码。

您可以尝试分几个小步骤进行操作:*作为第一步,您可以使用SWT创建应用程序,并将您的应用程序嵌入到浏览器控件中。*然后,您应该将网页和一些控件从web应用程序一个接一个地移动到桌面。

通过这种方式,您可以在数小时内获得最低限度的应用程序:)

附言:如果你想要一款采用这种方法的iOS应用程序,那么值得一看这个开源项目:http://en.wikipedia.org/wiki/PhoneGap

相关内容

  • 没有找到相关文章

最新更新