Java桌面应用程序框架

我正在设计和构建桌面应用程序。 我正在考虑使用eclipse或netbeans作为此应用程序的基础。 但是,我从未在这些平台上构建过。 我个人倾向于使用netbeans,因为它像平台这样的接缝是一个更容易学习的曲线。 但是,我想问一下那些在这些平台上实际构建的人,之前哪个更容易使用?

我对缓动器的个人定义如下:

  • 易于上手

  • 一致且合理的API

  • 好文档

  • 易于构建和部署

非常感谢,

玩笑

我不能说Eclipse RCP平台。 我会推荐它用于任何Java桌面应用程序开发。

它是免费的,有很棒的教程,并允许使用本机OS窗口工具包的富桌面应用程序的跨平台开发,这意味着您的应用程序将在任何平台上看起来都是原生的。 它还有一个干净的API,可以让你不受限制,并且可以在任何平台上部署一块蛋糕。

如果您有兴趣查看这本书: http : //www.amazon.com/Eclipse-Rich-Client-Platform-Applications/dp/0321334612

  • 易于使用 :我有使用 Eclipse开发的经验,我不得不说理解它的开发模型并不容易。 当然,对于基本的东西,它有一些更容易的向导,但对于一些更复杂的东西,这很难。 我不知道Netbeans,但我听说它更容易。
  • 一致的API :我认为Eclipse在这方面获胜。 它运行在OSGI上(虽然带来了一些复杂性)并且几乎所有内容都有插件扩展。 它似乎是插件开发的首选平台,所以我可以认为它是可靠的。
  • 文档 :Eclipse目前为止胜出。 eclipse网站的帮助非常好,邮件列表中有很多用户提问。

我已经使用Eclipse作为框架基础,但它主要是使用SWT–我们并没有真正使用大部分RCP。

这实际上取决于你正在编写什么,但是从我从使用Eclipse学到的东西中,它实际上只适合编写一个涉及使用各种视图编辑数据的应用程序(就像编辑代码一样)。

任何更随机的东西都可能导致你开始按照它没有设计的方向推动框架并导致大规模失败。

您将使用Swing开发应用程序,因为任何其他窗口框架仅在您具有先前知识或适当背景时才有用。

您可以依靠http://www.javadocking.com/来简化您的应用程序。

如果您的应用程序要求高度关注用户界面,那么您可以查看Adobe Air等其他方向。

RCP具有更大的学习曲线,但是一旦学习了基础知识,Eclipse IDE本身就支持很好地构建RCP应用程序。 我只为NetBeans构建了一个插件(没有构建完整的应用程序),并且学习曲线比RCP应用程序要小。 Eclipse富客户端平台:设计,编码和打包Java(TM)应用程序一书提供了构建RCP应用程序的详细介绍。

在看到RCP仅用于构建文本编辑器之前,请参阅http://www.eclipse.org/community/rcp.php上的一些开源应用程序。 谢谢。

我有类似的任务,我也在考虑不同的框架。 我有一些Eclipse的经验(大约4个月开发RCP)和现在的Netbeans(玩了几天)。 恕我直言这些框架太复杂了。 您最终调试到特定于Eclipse的插件加载器,试图弄清楚为什么会得到ClassNotFoundException或NullPointer。 与NetBeans相同的故事:只要你按照教程,某种程度上有点读取xml配置文件并从中创建UI,很酷。 当然你不能使用其他IDE开发基于Eclipse的RCP,NB也非常嫉妒它的用法(除非你像我那样做一些黑客攻击)。 我缺少的是一种清晰的方法来调试我的线程从主要执行到动作。 相反,我总是被告知我必须做些什么来避免exception。 因此,每当我试图拉动新东西时,我都必须保持手指交叉。 它永远不会第一次运作。 现在我考虑了我需要的function,并且我寻找针对特定function的小型项目,例如插件管理。 还有很多。 只需编译所需function列表,然后通过将它们集成到项目中来开始添加更小的框架。 这也很有意义,因为您的项目最终应该消耗更少的RAM。

Eclipse RCP简介。

我对两者都做了一些工作,但仅限于相对简单的应用程序。 两者似乎都具有大致相同的能力。 我个人更喜欢Netbeans平台,因为它对我来说更有意义。

您还应该考虑使用Swing应用程序框架JSR-296。 它提供了构建Swing应用程序,管理应用程序资源,状态等的基本框架,但没有像Netbeans和Eclipse那样多的“包袱”。 Netbeans IDE有许多用于在SAF上构建应用程序的工具。 有关详细信息,请参阅https://appframework.dev.java.net/ 。

如果不了解您的应用程序,很难指出两个平台的适当优势/劣势。

如果你真的想避免跨平台维护,那么使用Swing。 这会为您购买所有平台。 RCP需要每个平台的本机库。

我们在Swing方面有过很好的经历。

当你真的需要一个平台建立在顶部时,我会使用eclipse RCP,而不仅仅是像摇摆或swt这样的“widgetery”。 RCP坚如磐石,一致,模块化,非常灵活。 掌握它之后,您将获得巨大的收益。 作为一个平台,它为您提供最常用的东西 – 偏好,配置,自动更新,布局管理,品牌推广等等。 您构建产品,而不是应用程序。 但是学习曲线在开始时非常陡峭。

另一方面,摆动不是一个平台,你将通过编写我自己上面提到的东西重新发明轮子。 但是,是的,学习和开始学习的速度更快。 我认为它适用于寿命较短的小型应用。

在打开RCP仅用于构建内容之前, 请查看http://www.eclipse.org/community/rcp.php上的一些开源应用程序。