SWT/JFace还是Eclipse RCP?

Giu*_*ppe 19 java rcp swt jface eclipse-rcp

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

Von*_*onC 23

Eclipse RCP不仅仅是一个GUI(SWT/JFace),而是一个基于OSGi的平台.

因此,您可以选择RCP框架以便:

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

如果您的应用程序只是一个单片GUI字体结尾,RCP可能有点矫枉过正.


Rol*_*epp 17

除了VonC指出的要点(OSGi平台好东西:模块化,类加载器隔离,可扩展架构)之外,Eclipse RCP还提供了许多应用程序级服务,可以简化最终产品的整体开发:

使用Eclipse RCP,您将获得:

  • 准备好和可扩展的UI应用程序框架
    • 分离离散应用领域的观点
    • 视图编辑器,用于提供可重用的UI块以及它们自己的生命周期
    • 使用键绑定,上下文处理程序以及对工具栏和菜单的绑定进行命令抽象
  • 整个日食生态系统的所有好东西

当然 - 后一部分并不一定意味着您必须使用Eclipse RCP平台的庞然大物来获得这些优势.

根据应用程序的范围,您可能只需将Equinox用作底层OSGi容器,并在此基础上构建自己的GUI客户端.

还要记住,当在SWT/JFace土地上决定GUI框架时,Eclipse RCP不再是城里唯一的游戏.有一些严肃的竞争者可能会更好地满足您的需求:

  • Riena Platform Project引用自己的话说"构建多层企业客户端/服务器应用程序的基础"
  • E4项目项目正在进行中,旨在构建下一代eclipse RCP平台,并考虑更多的模块化设计.

编辑: 自从我的原始答案发布以来,Eclipse e4项目已经从一项正在进行中的工作毕业,现在已成为一个完全可用的富客户端应用程序框架/平台.它已经成熟到现在被用作最新Eclipse 4.2(Indigo)IDE的底层平台.


Tob*_*oby 5

只有我的2便士,但香草SWT/JFace可以减少学习曲线.我想他们只是简单的GUI的事实,你不需要学习"平台"(如在RCP方式),只得到认真处理的SWT组件和建立你的GUI!总的来说,我认为它更简单(但我对RCP并不是很了解!).