SWT/JFace或Eclipse RCP?

20

相较于仅使用SWT/JFace,选择Eclipse Rich Client Platform作为应用程序基础的原因是什么?

4个回答

24

Eclipse RCP不仅是一个GUI框架(SWT/JFace),而且还是基于OSGi的平台。

因此,选择RCP框架可以:

  • 更好地定义不同模块
  • 管理它们的生命周期和版本兼容性
  • 隔离类加载器问题

如果您的应用程序只是一个单一的GUI前端,那么使用RCP可能会有点过头。


我想更正一下,RCP不仅仅添加了OSGi(请参见Roland Tepp的答案),这取决于手头的用例是否是负担。而且SWT/JFace也可以在没有RCP的情况下在OSGi上运行。 - Rüdiger Herrmann

17
除了VonC指出的一些要点(OSGi平台好处:模块化、类加载器隔离、可扩展架构),Eclipse RCP提供了许多应用级别的服务,可以简化您最终产品的整体开发:

使用Eclipse RCP,您将获得:

  • 准备好并可扩展的UI应用程序框架
    • 透视图用于分离离散应用程序区域
    • 视图编辑器提供具有自己生命周期的可重用UI块
    • 命令抽象与键绑定、上下文处理程序以及绑定到工具栏和菜单
  • 整个Eclipse生态系统的所有好处

当然,后面的部分不一定意味着您必须使用Eclipse RCP平台来获得这些优势。

根据您的应用程序范围,您可能最好只使用Equinox作为底层OSGi容器,并在其上构建自己的GUI客户端。此外,请记住,在SWT / JFace领域做出GUI框架决策时,Eclipse RCP不再是唯一的选择。有一些严肃的竞争对手可能更适合您的需求:
- Riena平台项目引用了他们自己的话:“用于构建多层企业客户端/服务器应用程序的基础”。 - E4项目是正在进行中的工作,旨在构建下一代具有更模块化设计的eclipse RCP平台。
编辑: 自我的原始回答发布以来,Eclipse e4项目已经毕业,现在已成为完全可用的丰富客户端应用程序框架/平台。它已经发展到可以作为最新的Eclipse 4.2(Indigo)IDE的底层平台使用的程度。

5

这只是我的个人看法,但纯SWT / JFace可能学习曲线较低。我喜欢它们只是简单的GUI界面,你不需要学习“平台”(如RCP方式),只需掌握SWT组件并构建GUI即可!总体而言,我认为它更简单(但是我对RCP的了解并不多!)。


0

Eclipse 4 的依赖注入机制是一个很棒的资源,选择 Eclipse RCP 很明智, 现在有了 E4,平台可以变得非常轻量级,

再加上 e4 工具和模型编辑器,能够让您节省大量时间。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接