2009-02-23 12 views
14

Recientemente comenzamos a desarrollar una aplicación de escritorio Java y la administración nos ha pedido que hagamos uso de Rich Client Platform. Sé de cuatro para Java a saber:Which Rich Client Platform para usar

  1. Eclipse RCP - www link to ecipse rcp,
  2. NetBean RCP - Netbeans RCP web site,
  3. primavera RCP - spring rich client
  4. Valkyrie RCP - Valkyrie rich client

alguien tiene cualquier experiencia en cualquiera de estos y, de ser así, ¿cuál es la fuerza y ​​la debilidad de cada uno?

gracias

+3

Parece que Spring RCP está muerto ahora. – givanse

+0

Esta es una respuesta muy tardía, pero: actualmente estamos desarrollando una aplicación de red rbp de cinco años de antigüedad. Pudimos migrarlo completamente a maven. Con unos pocos pasos uno puede desarrollar y depurar la aplicación con IntelliJ IDEA, que le permite tener una plataforma rcp madura además de un IDE excelente. – gorefest

Respuesta

6

I recomiendo que eche un vistazo a JSR 296, que aún no está completo de ninguna manera, pero creo que llega al punto óptimo de proporcionar cierta funcionalidad básica que usted realmente, real Necesito en cada aplicación Java GUI, sin forzarlo a vivir en un marco demasiado complicado.

He utilizado JSR 296 con éxito para crear una aplicación de tamaño mediano. Para el diseño de la ventana en esta aplicación, utilizamos MyDoggy (muy recomendado). Para la administración del diseño, utilizamos MiGLayout (Más allá de altamente recomendado). Para el enlace de datos, utilizamos una forma modificada de JSR 295 (implementamos algo similar a PresentationModel en la parte superior de JSR 295 que utilizamos para nuestro enlace GUI). Estoy en el proceso de incorporar a Guice como un mecanismo de DI, pero no he terminado ese esfuerzo (hasta ahora, creo que 'jugará bien' con JSR 296 con un ajuste aquí y allá). Veamos ... la persistencia es el gran eslabón perdido aquí. Actualmente estoy evaluando Simple para persistencia XML, pero estoy teniendo problemas para hacerlo funcionar con contenedores DI como Guice. Tengo Betwixt funcionando, pero las dependencias de Betwixt son enormes, por lo que estamos buscando algo más simplificado.

Las opiniones sobre otras opciones de RCP para Java:

NetBeans: que tienen algunas objeciones filosóficas fundamentales en el enfoque utilizado por NetBeans (demasiado diseño de anti-patrones para mi gusto). Al final, el marco te obliga a tomar malas decisiones de diseño, y es casi imposible de usar si no usas NetBeans como tu IDE (lo intenté, pero no pude cambiar de Eclipse a NB). Probablemente sea solo yo, pero parece que debería ser posible escribir código para un marco RCP sin utilizar grandes asistentes complicados y resmas de código autogenerado y archivos XML. He pasado tantas horas solucionando el viejo código de Visual C++ generado por Visual Studio que estoy extremadamente receloso de cualquier marco que no pueda codificarse a mano.

Spring RCP: La gente de Spring tiene un buen diseño sólido, pero la documentación es realmente muy débil. Es bastante difícil ponerse al día con eso (pero una vez que lo haces, puedes hacer las cosas bastante rápido).

Eclipse RCP: No he usado Eclipse solo por la sobrecarga de implementación (depende de su público objetivo - para nosotros, implementar 50 MB adicionales de tiempo de ejecución simplemente no funcionó). Sin dudas, Equinox es algo hermoso si su aplicación necesita una funcionalidad significativa de complementos (por supuesto, también podría ejecutar Equinox con JSR 296, o usar patrones de diseño similares al patrón de Pizarra promovido por OSGi).

+0

Sí, la curva de aprendizaje de Netbeans RCP es pronunciada. Y sí, por alguna razón, les gustan los patrones de diseño idiosincrásicos que nadie más usa. Pero: ha mejorado mucho desde la publicación anterior: la mayoría de los archivos xml fueron reemplazados por anotaciones simples, los asistentes están ahí, pero ya no tiene que usarlos. Y se publicaron excelentes libros introductorios (por ejemplo, https://leanpub.com/nbp4beginners). – Jirka

+0

@KevinDay ¿Alguna actualización? Parece que MyDoggy no se mantiene, JSR 296 está muerto. ¿Qué opciones tenemos hoy? – user3111525

+0

@ user3111525 chico - esa es la pregunta de $ 10M ... Todavía uso JSR296 y JSR295. Si estuviera comenzando un proyecto desde cero, vería seriamente JavaFX. –

1

Desde mi perspectiva del usuario final.

He visto más implementaciones en Eclipse que en las otras dos. En realidad, ya conozco las implementaciones de Netbeans, pero nunca tengo una en mis manos.

Desde Spring esta es la primera vez que escucho sobre esto.

Si bien mi respuesta es definitivamente una vista estupenda de 10,000 pies, refleja de alguna manera la preferencia que la industria ha tenido sobre el uso de uno u otro.

Además, la diferencia es proporcional al tiempo que la plataforma ha estado disponible. Recuerda que Eclipse crea SWT para resolver los problemas que tenía Java Swing en 1.3 donde simplemente era prohibitivamente lento.

Netbeans se han beneficiado mucho con las mejoras de JVM y ahora se ejecuta muy rápido.

La primavera es todavía joven (comparada con las otras dos), pero como siempre, las cosas nuevas aprenden de la primera, es probable que sea más fácil de usar.

Aquí hay un artículo sobre estas dos plataformas Eclipse RCP vs Netbeans RCP. Puede ser útil

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

1

Aunque no he utilizado explícitamente ninguno de ellos, he utilizado porciones del Eclipse RCP. Específicamente, he usado el tiempo de ejecución de Eclipse OSGi (Equinox) y algunas utilidades comunes y estoy muy contento. OSGi es fantástico para trabajar. Tengo varios amigos con contratos grandes que usan Eclipse RCP (más de lo que uso) y se entusiasman con ello.

Si mi proyecto no contiene un montaje grande de Swing heredado, Eclipse RCP sería mi primera opción. ¡OSGi es tan divertido! (Imagino que Spring también lo usa, pero no lo ha comprobado)

4

Tengo experiencia con el Eclipse RCP y lo recomendaría.

Pros:

  • Componentes - componente/plu-in modelo permite para su reutilización.
  • Usos SWT y JFace que permite una interfaz de usuario de aspecto nativo
  • Las Vistas, Editores y Perspectivas conectables hacen que los diseños sean fáciles y configurables.
  • Los puntos de extensión Eclipse facilitan la ampliación e integración con API y herramientas de terceros.

Contras:

  • curva de aprendizaje

Si elige Eclipse RCP, desafiante conseguir este libro, es invaluble cuando acaba de empezar con el marco: http://www.amazon.com/Eclipse-Rich-Client-Platform-Applications/dp/0321334612

1

Por supuesto, todo depende del tipo de aplicaciones y servicios que desee proporcionar, y del entorno de destino. Pero también puedo recomendar OSGi como una plataforma de desarrollo e implementación. La arquitectura y las especificaciones subyacentes están muy bien desarrolladas y comprobadas.

Además del Eclipse RCP, debe echar un vistazo a Apache Felix (http://felix.apache.org) y Knopflerfish (http://www.knopflerfish.org), que son (más pequeñas) implementaciones de OSGi framework de código abierto.

0

Eclipse RCP proporciona un mecanismo de inserción para que pueda agregar nuevas funciones más adelante en la implementación. También a través del mecanismo de actualización puede cambiar el sistema sin interferencia del usuario. En la fase de desarrollo, Eclipse RCP proporciona un terreno rápido y robusto con perspectivas, vistas, editores, comandos y mecanismos de acción. Si su proyecto requiere muchas ventanas diferentes con diferentes barras de herramientas y menús (y también menús contextuales personalizados), le sugiero que use Eclipse RCP. Solo reviso los videos de Netbeans Platform y ejecuto el proyecto Helloworld, pero parece lento y torpe :) 40 segundos para la puesta en marcha (puede volver a cargar la aplicación sin reiniciar) vogella.de es una buena colección de tutoriales para Eclipse RCP

10

INTRO - omita si solo está interesterd en el resultado;)
Estaba desarrollando un editor para un lenguaje de programación personalizado muy similar a JSP. Primero implementé el editor como mi tesis usando plataforma NetBeans. Después de terminar la escuela obtuve un trabajo y querían que implementara lo mismo en Eclipse RCP, así que ahora puedo comparar estas dos plataformas al menos en lo que estaba enfrentando durante este proyecto.

RESULTADO - Si tuviera que elegir entre la plataforma Netbeans y Eclipse RCP, definitivamente elegiría una plataforma NetBeans. ¿Por qué?
Grandes capturas de pantalla, buenos tutoriales, comunidad amigable y útil muy activa, bastante bien documentada y el código fuente está escrito muy bien y con buenas convenciones de código. También tiene algunos gadgets interesantes (cookies, búsqueda). Simplemente me queda bien.

¿Y por qué Eclipse RCP no se adecua a mí?
La documentación es más débil y convenciones y API son sometimes..ehm..too extraño para mí :-) Es bastante horneadas para ver métodos como:

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

Bueno, yo pensaba que deben ser broma: -D ¿Cómo se supone que debo usar este método? O así:

/** 
* 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(); 

Aunque el número y tipo de atributos Fitts, no encuentro la estructura de datos ideal para el almacenamiento de objetos Punto gama ;-)

Hay un número de theese tales surpises en Eclipse RCP

3

Actualmente estoy desarrollando una aplicación Spring RCP. La documentación es realmente débil, eso es seguro, pero los blogs y el foro tienen una buena cantidad de información para comenzar. Una vez que te haces crucero, las cosas se mueven bastante rápido y realmente solo necesitas aprender Spring básico si no estás familiarizado con el framework. Las integraciones con bibliotecas Spring como VLDocking también son excelentes.

Creo que Spring Rich es excelente si su caso de uso es desarrollar una aplicación de escritorio Java independiente. Lo que quiero decir con eso es que si no necesitas distribuir módulos y hacer actualizaciones en línea, entonces debería satisfacer la mayoría de las necesidades.

+1

Solo mencioné que los desarrolladores de clientes ricos recientemente han migrado el código RCP a un nuevo proyecto llamado 'Valkyrie', que presenta varias actualizaciones y mejoras. El código se puede encontrar aquí - http://www.gitorious.org/valkyrie-rcp - y hay un hilo con más información aquí - http://forum.springsource.org/showthread.php?101299-Trying-out -a-new-route ... - Estuve jugando con el framework la semana pasada; hasta ahora se ve genial, las aplicaciones de muestra también son muy buenas. –

7

Demasiado tarde para responder, pero algunos chicos pueden llegar a esta página.

Me gustaría ir a Netbeans RCP, 1) plataforma de Netbeans. es bastante maduro y ha evolucionado es una plataforma 'fácil de usar' para desarrollar aplicaciones.

2) Es muy fácil comenzar, mientras que la curva de aprendizaje del Eclipse RCP es bastante pronunciada.Solo vaya a http://netbeans.org/kb/trails/platform.html, allí encontrará tutoriales, videos (mire los 10 mejores videos de api y pruebe los tutoriales antes de leer libros, de esa manera obtendrá un truco de cosas de antemano).

3) Los libros en RCP de netbeans (supongo que hay 2 en RCP de netbeans) están actualizados (solo pequeños cambios con los que no tendrás muchos problemas). mientras que el libro principal sobre RCP no estuvo disponible durante mucho tiempo (recientemente, es decir, mayo de 2010, se lanzó la nueva edición, por lo que es algo muy bueno para los desarrolladores de RCP de eclipse. No estaba allí cuando lo intentaba para aprenderlo. Me frustran los autores que no publican nuevas ediciones, casi dejan a los nuevos desarrolladores en apuros. No a todo el mundo le gusta leer documentos. No publicar libros actualizados equivale casi a matar la tecnología). Me encantaría ver un libro de recetas de cocina para ambas plataformas.

4) Netbeans tiene un constructor de GUI totalmente integrado, que es una gran ventaja. Eclipse RCP, ya sea que tenga que codificar manualmente o comprar un constructor de GUI de terceros.

5) La plataforma de Netbeans tiene esta aplicación API de búsqueda muy buena para la comunicación intermodular. Supongo que los chicos de Eclipse usan puntos de extensión para este propósito. Pero la API de búsqueda es fácil una vez que te acostumbras.

6) De todos modos, es una gran decisión de diseño, sobre qué plataforma elegir. La plataforma de Netbeans funciona para mí. Puede no funcionar para usted. Ambas plataformas requieren esfuerzos, ambas ofrecen maravillosas características "listas para usar". Prueba de manejo y luego decide.

+0

Una gran fuente para Netbeans RCP: https://leanpub.com/nbp4beginners. – Jirka

1

Netbeans RCP es excelente. Ha recorrido un largo camino a lo largo de los años. Utiliza una tecnología más robusta ('Swing') que muchas personas usan y entienden. Eclipse RCP (más específicamente SWT) me confundió.