java - ¿SWT/JFace o Eclipse RCP?
eclipse-rcp (4)
¿Cuáles son las razones para elegir Eclipse Rich Client Platform como base de mi aplicación, en lugar de usar SWT / JFace?
Además de los puntos que VonC ha señalado (novedades de la plataforma OSGi: modularidad, aislamiento del cargador de clases, arquitectura extensible), el RCP de Eclipse proporciona muchos servicios de nivel de aplicación que pueden facilitar el desarrollo general de su producto final:
Con Eclipse RCP obtendrás:
- Marco de aplicación de IU listo y extensible
- Perspectivas para separar áreas de aplicación discretas.
- vistas y editores para proporcionar bloques reutilizables de UI con un ciclo de vida propio
- Comandos de abstracción con enlaces de teclas, controladores contextuales y enlaces a barras de herramientas y menús
- Todas las golosinas de todo el ecosistema del eclipse.
- Aprovisionamiento p2 para gestionar la instalación y actualizaciones automáticas de su aplicación.
- Marco de comunicación ECF
- Herramientas de informes BIRT
- EMF y herramientas de modelado.
- mucho más...
Por supuesto, la última parte no significa necesariamente que tenga que usar el gigante que es la plataforma Eclipse RCP para obtener las ventajas que ofrecen.
Dependiendo del alcance de su aplicación, podría hacer un buen uso de Equinox como un contenedor OSGi subyacente y crear su propio cliente GUI además de eso.
También tenga en cuenta que Eclipse RCP ya no es el único juego en la ciudad al tomar una decisión de los marcos de GUI en SWT / JFace land. Hay contendientes serios que podrían satisfacer sus necesidades mejor:
- Riena Platform Project está citando sus propias palabras "la base para crear aplicaciones cliente / servidor empresariales de múltiples niveles"
- El proyecto E4 Project es un trabajo en progreso para construir la próxima generación de la plataforma RCP del eclipse con un diseño mucho más modular en mente.
Edición: El proyecto Eclipse e4 se ha convertido en un trabajo en progreso desde que se publicó mi respuesta original y ahora se ha convertido en un marco / plataforma de aplicación de cliente rico totalmente utilizable. Ha madurado hasta el punto donde ahora se está utilizando como una plataforma subyacente para el último IDE de Eclipse 4.2 (Indigo).
Eclipse RCP no es solo una GUI (SWT / JFace), sino una plataforma basada en OSGi .
Por lo tanto, elegirías el marco RCP para:
- Ten una mejor definición de tus diferentes módulos.
- Administrar sus ciclos de vida y compatibilidad de versiones.
- aislar los problemas del cargador de clases .
Si su aplicación es solo una fuente de interfaz gráfica de usuario monolítica, RCP podría ser un poco excesivo.
El mecanismo de inyección de dependencias de Eclipse 4 es un gran activo, al elegir Eclipse RCP, y ahora con E4, la plataforma puede ser muy liviana,
Agregue a este e4 herramientas con el editor de modelos, le permite ahorrar mucho tiempo
Solo valen mis 2 centavos, pero la vainilla SWT / JFace puede ser menos que una curva de aprendizaje. Me gusta el hecho de que son solo GUI simples, no es necesario que aprendas la "plataforma" (como en el modo RCP), solo te familiarizas con los componentes de SWT y construyes tu GUI. En general, lo veo más simple (¡pero entonces realmente no sé mucho sobre RCP!).