15

我们最近开始开发 Java 桌面应用程序,管理层要求我们使用富客户端平台。我知道Java有四个:

  1. Eclipse RCP - www 链接到 ecipse rcp
  2. Netbean RCP - Netbeans RCP 网站
  3. Spring RCP -春天富客户端
  4. Valkyrie RCP - Valkyrie 富客户端

有没有人在这些方面有任何经验,如果有,每个方面的优势和劣势是什么?

谢谢

4

11 回答 11

10

INTRO - 如果您只对结果感兴趣,请跳过;)
我正在为与 JSP 非常相似的自定义编程语言开发一个编辑器。首先,我使用NetBeans 平台将编辑器实现为我的论文。完成学业后,我找到了一份工作,他们希望我在Eclipse RCP中实现相同的东西,所以现在我至少可以比较这两个平台,至少在我在这个项目中遇到的问题上。

结果 -如果我可以在 Netbeans 平台和 Eclipse RCP 之间进行选择,我肯定会选择 NetBeans 平台。为什么?
很棒的截屏视频,很好的教程,非常活跃的友好和乐于助人的社区,有很好的文档记录,源代码写得很好,并且具有良好的代码约定。还有一些有趣的小工具(cookies、查找)。它很适合我。

为什么 Eclipse RCP 不适合我?
文档较弱,约定和 API 有时..ehm..对我来说太奇怪了 :-) 看到以下方法很常见:

/**
* Returns a description of the cursor position.
*
* @return a description of the cursor position
* @since 2.0
*/
protected String getCursorPosition() {
..
}

好吧,我认为他们一定是在开玩笑 :-D 我应该如何使用这种方法?或者像这样:

/**
* Returns the range of the current selection in coordinates of this viewer's document.
*
* @return a <code>Point</code> with x as the offset and y as the length of the current selection
*/
Point getSelectedRange();

尽管属性的数量和类型很合适,但我找不到 Point 对象存储范围的理想数据结构;-)

Eclipse RCP 中有很多这样的惊喜

于 2009-05-27T13:33:26.713 回答
7

回答太晚了,但有些人可能会点击此页面。

我会选择 Netbeans RCP,1)Netbeans 平台。它相当成熟并且已经发展成为一个用于开发应用程序的“易于使用”的平台。

2)它很容易上手,而eclipse RCP的学习曲线相当陡峭。去吧,http://netbeans.org/kb/trails/platform.html,那里有教程、视频(一定要看前 10 个 api 的视频,并在阅读书籍之前尝试教程,这样你就会掌握事前)。

3)有关 netbeans RCP 的书籍(我猜有 2 个有关 netbeans RCP 的书籍)是最新的(只有小改动,您不会有太多问题)。而关于 RCP 的主要书籍很长一段时间都没有(最近。也就是 2010 年 5 月,新版本已经发布,所以这对 eclipse RCP 开发人员来说是一件非常好的事情。当我尝试时它不存在学习它。我对不发布新版本的作者感到沮丧,几乎让新开发人员陷入困境。不是每个人都喜欢阅读文档。不发布更新的书籍几乎等于扼杀技术)。我很想看到一本适用于这两个平台的食谱类型的书。

4)Netbeans 有完全集成的GUI builder,这是一大优势。Eclipse RCP,要么您必须手动编写代码,要么购买一些第三方 GUI 构建器。

5)Netbeans 平台有这个非常酷的 Lookup api 用于模块间通信。我猜 Eclipse 家伙为此目的使用扩展点。但是一旦你掌握了它,lookup api 就很容易了。

6)无论如何,这是一个重大的设计决定,关于选择哪个平台。Netbeans 平台适合我。它可能不适合你。这两个平台都需要努力,都提供了出色的“开箱即用”功能。两者都试驾再决定。

于 2010-08-04T10:48:40.763 回答
6

我建议您看一下 JSR 296 - 它还没有完全完成,但我认为它提供了您在每个 Java GUI 应用程序中真正需要的某些核心功能,而不会强迫您生活在其中一个过于复杂的框架。

我已经成功地使用 JSR 296 创建了一个中型应用程序。对于此应用程序中的窗口布局,我们使用MyDoggy(强烈推荐)。对于布局管理,我们使用 MiGLayout(强烈推荐)。对于数据绑定,我们使用 JSR 295 的修改形式(我们在用于 GUI 绑定的 JSR 295 之上实现了类似于PresentationModel的东西)。我正在将 Guice 作为 DI 机制合并,但还没有完成这项工作(到目前为止,我认为它会与 JSR 296 一起“玩得很好”,并在此处和那里进行调整)。让我们看看......持久性是这里缺失的重要环节——我目前正在评估Simple的 XML 持久性,但在让它与 Guice 等 DI 容器一起工作时遇到了问题。我有Betwixt工作,但对 Betwixt 的依赖很大,所以我们正在寻找更精简的东西。

关于 Java 的其他 RCP 选项的意见:

NetBeans:我对 NetBeans 使用的方法有一些基本的哲学反对意见(太多的设计反模式不符合我的口味)。最后,该框架迫使您做出糟糕的设计决策——如果您不使用 NetBeans 作为您的 IDE(我尝试过,但我无法从 Eclipse 切换到 NB),它几乎是不可能使用的。可能只有我一个人,但似乎应该可以为 RCP 框架编写代码,而无需使用大型复杂的向导和大量自动生成的代码和 XML 文件。我花了很多时间对 Visual Studio 生成的旧 Visual C++ 代码进行故障排除,以至于我对任何无法手动编码的框架都非常谨慎。

Spring RCP:Spring 的人有一个很好的可靠设计,但是文档真的非常薄弱。加快速度是相当困难的(但是一旦你做到了,你就可以很快地完成工作)。

Eclipse RCP:仅仅因为部署开销而没有使用 Eclipse(取决于您的目标受众 - 对我们来说,部署额外的 50 MB 运行时是行不通的)。毫无疑问,如果您的应用程序需要重要的插件功能(当然,您也可以使用 JSR 296 运行 Equinox,或者使用类似于 OSGi 推广的白板模式的设计模式),那么 Equinox 是一件好事。

于 2009-02-24T05:08:35.147 回答
4

我有 Eclipse RCP 的经验并会推荐它。

优点:

  • 组件 - 组件/插件模型允许重用。
  • 使用SWT和 JFace,这允许具有原生外观的 UI
  • 可插入视图、编辑器和透视图使布局变得简单且可配置。
  • Eclipse 扩展点使与 3rd 方 API 和工具的扩展和集成变得容易。

缺点:

  • 学习曲线

如果您选择 Eclipse RCP,请务必获得这本书,这在刚开始使用该框架时非常宝贵:http: //www.amazon.com/Eclipse-Rich-Client-Platform-Applications/dp/0321334612

于 2009-02-23T20:45:49.677 回答
3

我目前正在开发一个 Spring RCP 应用程序。文档确实很薄弱,这是肯定的,但是博客和论坛有大量的信息可以开始。一旦你开始巡航,事情确实进展得相当快,如果你不熟悉框架,你真的只需要学习基本的 Spring。与 VLDocking 等 Spring 库的集成也非常出色。

如果您的用例是开发独立的 Java 桌面应用程序,我认为 Spring Rich 非常棒。我的意思是,如果您不需要分发模块和进行在线更新,那么它应该可以满足大多数需求。

于 2010-05-25T13:04:24.613 回答
1

从我的最终用户的角度来看。

我在 Eclipse 中看到的实现比在其他两个中更多。实际上,我知道 Netbeans 的实现,但我从来没有掌握过。

从春天开始,这是我第一次听说它。

虽然我的回答绝对是超级 10,000 英尺的视图,但它以某种方式反映了该行业对使用其中一种或另一种的偏好。

此外,差异与平台可用的时间成正比。请记住 Eclipse 创建 SWT 是为了解决 Java Swing 在 1.3 中遇到的问题,其中它的速度简直令人望而却步。

Netbeans 受益于 JVM 的改进,现在运行非常非常快。

Spring 还很年轻(与其他两个相比),但一如既往,新事物向前者学习,使用起来可能更简单。

这是一篇关于这两个平台 Eclipse RCP 与 Netbeans RCP 的文章。可能会有所帮助

http://blogs.oracle.com/geertjan/entry/eclipse_platform_vs_netbeans_platform

于 2009-02-23T20:19:17.823 回答
1

虽然我没有明确使用它们中的任何一个,但我已经使用了 Eclipse RCP 的一部分。具体来说,我使用了 Eclipse OSGi 运行时 (Equinox) 和一些常见的实用程序,我非常满意。OSGi 非常适合使用。我有几个朋友签订了使用 Eclipse RCP(比我使用的多)的大型合同,他们对此赞不绝口。

如果我的项目不包含大量遗留的 Swing,Eclipse RCP 将是我的首选。OSGi 真是太有趣了!(我想 Spring 也使用它,但尚未检查)

于 2009-02-23T20:27:04.217 回答
1

当然,这完全取决于您要提供的应用程序和服务的类型以及目标环境。但我也可以推荐 OSGi 作为开发和部署平台。底层架构和规范已经很好地开发和验证。

除了 Eclipse RCP,您还应该看看 Apache Felix ( http://felix.apache.org ) 和 Knopflerfish ( http://www.knopflerfish.org ),它们是(较小的)开源 OSGi 框架实现。

于 2009-03-09T14:02:11.013 回答
1

Netbeans RCP 非常好。多年来,它走了很长一段路。它使用许多人使用和理解的更强大的技术(“Swing”)。Eclipse RCP(更具体地说是 SWT)让我很困惑。

于 2014-02-12T14:53:47.100 回答
0

Eclipse RCP 提供插件机制,以便您可以在以后的部署中添加新功能。此外,通过更新机制,您可以在不受用户干预的情况下更改系统。在开发阶段,Eclipse RCP 提供了一个快速、健壮的基础,包括透视图、视图、编辑器、命令和操作机制。如果您的项目需要许多具有不同工具栏和菜单(以及自定义上下文菜单)的不同窗口,我建议您使用 Eclipse RCP。我只查看 Netbeans Platform 的视频并运行 Helloworld 项目,但它看起来很慢而且很笨拙 :) 启动 40 秒(您可以重新加载应用程序,但无需重新启动。)vogella.de 是一个很好的教程集合日食 RCP

于 2009-04-06T15:20:34.767 回答
0

还有基于反射的 UI 生成和定制。

您将自定义默认生成的 GUI,而不是自定义 IDE 以满足您的需求。尝试一种新方法可能会很有趣。

https://github.com/dotxyteam/ReflectionUI

于 2018-11-06T18:31:32.270 回答