Pregunta

Estoy en un proyecto en el que tratamos de construir un reemplazo interfaz gráfica de usuario para una aplicación antigua. Antes de que realmente implementar la funcionalidad que hemos comenzado la creación de prototipos con Eclipse RCP (Rich Client Platform) y GWT (Google toolkit, una aplicación rica de Internet). ¿Cuál es su experiencia con RIA y RCP interfaces gráficas de usuario? ¿Cuándo tiene sentido utilizar RIA y situaciones en las que un cliente rico es más adecuado? Con las posibilidades actuales de RIA, se hace más y más difícil de trazar la línea .. ¿Tiene alguna experiencia?


EDIT: Todas sus respuestas son realmente interesantes. Me gustaría aceptar la totalidad de ellos, ya que contribuyen a la respuesta de mi, lo reconozco una pregunta bastante abierta. Así que mi voto para cada uno de ellos. Esperamos que la recompensa será compartida entre vosotros.

¿Fue útil?

Solución

No hay ningún detalle sobre los requisitos de la aplicación que es realmente clave para responder a la pregunta.

La gran victoria para el uso de GWT es la facilidad de implementación en relación con algo así como RCP. No hay nada más fácil para el usuario que apunta su navegador a una dirección URL y nada más fácil para el equipo de operaciones de empujar código al servidor, rebotando y llamar a un día.

En cuanto a la funcionalidad, la gran área donde GWT se quedan cortos sería más ricas visualizaciones de datos: gráficos, árbol / nodo, diagramas de red, etc. Este material es posible con GWT y algo de ayuda en el servidor, pero las limitaciones de DHTML comenzar a mostrar a través, incluso con un potente conjunto de herramientas como GWT. Por otro lado, la RCP le da todo el poder de Java 2D para visualizar cualquier cosa que desee. Este tipo de características pueden no ser necesarios para usted, pero también son los que hacen que las aplicaciones realmente interesante, más que un lío de controles de pestañas, los árboles y la red de datos.

he estado desarrollando con Adobe Flex durante varios años y ahora parece que es muy potente, que tiene más o menos las mismas ventajas de despliegue como algo así como GWT pero ofreciendo el mismo tipo de poder como RCP. Es posible que desee comprobar que fuera también.

Otros consejos

A pesar de que GWT va un largo camino, no está dando la misma flexibilidad y la accesibilidad como una aplicación adecuada.

A pesar de thouhg una aplicación GWT puede hacer casi todo lo que una aplicación real puede, una serie de factores indica que RCP sería la mejor herramienta.

  • trabajo repetida
  • Las porciones de entrada
  • Largas sesiones
  • tareas repetidas
  • widgets personalizados para la edición o presentación.
  • Múltiples ventanas con diferentes datos.
  • Teclas rápidas para las operaciones de uso frecuente
  • Las respuestas rápidas.
  • Una barra de menús reales, coolbars.
  • Una ventana adecuada que sea fácil de encontrar en la barra de tareas.
  • Los menús de contexto para las operaciones rara vez se utilizan
  • Limited (o base conocida de) el número de usuarios.
  • animaciones extensas o complejas o actualizaciones en tiempo real.

Si usted piensa que su aplicación necesita un banco de trabajo, con varias vistas y editores, a continuación, se le da la opción.

RCP y la mesa de trabajo no son tan fácil trabajar con él, pero se obtiene mucho más de forma gratuita si la aplicación se beneficiaría del modelo de trabajo más "libre" y abierto con múltiples vistas abiertas / editores, etc.

Si la solicitud es para tareas más ocasionales, a continuación, GWT es realmente bueno.

GWT es muy agradable, , pero aún es una aplicación web, y que aspira a veces. No me gustaría hacer todo mi trabajo en una aplicación web donde puedo presionar accidentalmente una tecla y perder todo mi trabajo y la sesión. (Mi teclado incluso tiene una clave junto a las teclas de flecha que parece ser imposible desactivar). Su potente suficiente hacer casi cualquier cosa que se puede hacer en RCP, pero su todavía se ejecuta dentro del navegador web, y que puede ser irritante.

Recuerde que puede utilizar Webstart Java para implementar aplicaciones de RCP.

Hemos desarrollado un (proyecto piloto) plug-in para Eclipse que se convirtió entonces a la vez una aplicación RCP independiente (que no quiere enviarlo como un plug-in, ya que no queríamos Eclipse como un pre req, así que tuvimos que añadir algo de código de apoyo por lo que es un poco más complicado que un simple movimiento en RCP) y en una aplicación RIA usando jQuery.

A pesar de los mejores esfuerzos del campo de RCP, la versión RIA tomó aproximadamente el mismo tiempo para desarrollar (aunque fue a partir de cero) y parecía más suave en ejecución.

El factor decisivo fue que no se requiere instalación con la versión RIA ya que todos nuestros clientes ya tienen servidores de aplicaciones y actualizaciones están centralizadas en un servidor, no cada cliente.

La versión RCP desde hace mucho tiempo se ha quedado atrás en la funcionalidad. En lo que a nosotros respecta, Eclipse está bien como un entorno de desarrollo (para Java, no tenemos ninguna experiencia con los otros idiomas), pero el esfuerzo que ponen en fragmentarse el IDE de la interfaz gráfica de usuario (para hacer posible RCP) no es < em> muy acabado.

Por otro lado, jQuery parece hecha a la medida para ese tipo de cosas (probablemente debido a que fue construida para ese tipo de cosas). Tanto el desarrollo y ejecución de aplicaciones son muy agradables.

aplicaciones dinámicas de Internet es una buena manera de hacer que el software robusto que actúan como software de escritorio tradicional. Un problema común con RIA es que muchos desarrolladores tienden a poner la lógica de negocio en el código del lado del cliente. La lógica de negocio y los estados en el código del lado del cliente es muy inseguro como se puede manipular el código del lado del cliente en tiempo de ejecución. Además, es un sistema de caja blanca, que permite a los piratas informáticos para examinar el código y encontrar los puntos débiles, como la validación de entrada se realiza solamente en el código del lado del cliente o de la manipulación de los estados. No se deje engañar por la ofuscación, ya que sólo se ralentiza un hacker, pero no lo detiene. Billy Hoffman escribió un buen libro sobre la seguridad de AJAX (llamada, ta-daa , la "seguridad Ajax") y lo recomiendo a todos los desarrolladores de RIA.

Esto no quiere decir que es por definición RIA mal, puede escribir seguro RIA si usted sabe lo que está haciendo (sin lógica de negocio en el código del lado del cliente, no hay estados, la validación de entrada [también] hecho en el lado del servidor, etc.) . Hay un par de marcos que implementan este servidor más segura impulsado RIA, uno es TI Molino juego de herramientas (basado en GWT) y ICEFaces también debe ser uno que yo sepa.

En mi experiencia, RIA GUIs tienden a ser lo suficientemente robusta como para comunicar más información a los usuarios. Hay algunos probablemente algunas excepciones a esto, pero no puedo pensar en una buena uno en este momento. RIA tiene la ventaja de ser accesible a cualquier persona a través de un navegador web sin necesidad de instalar un cliente pesado (RCP). A menos que tenga alguna pantalla complejo especial que no se puede hacer a través de tecnologías web recomiendo ir la ruta RIA.

Una organización que trabajé para elegir RCP debido a que sus usuarios necesitan para trabajar con la aplicación tanto en línea como fuera de línea (cuando están en la carretera, etc). Sé que esto es posible con Google grears ahora, pero los engranajes no es realmente suficiente para la corriente principal grande organiazation que se base en el producto estrella. Sin embargo, si los usuarios no tienen la necesidad de ir fuera de línea que realmente le ahorra el tiempo de sincronización de los datos del usuario / producto actualizaciones ect entre su aplicación RCP y el servidor, RIA sería el camino a seguir en este caso.

También existe la posibilidad de desplegar un PCR con algunos de los beneficios de una RIA. Una solución que se está investigando para nuestro cliente (para el uso exclusivo de personal dentro de su empresa) es el uso de una aplicación Java puesto en marcha a través de un servlet de Java.

Algunos de los beneficios identificados son:

  • Se actualiza fácilmente, al igual que un RIA (acaba de volver a desplegar su archivo JAR, se recogió la próxima vez en cualquier momento examina la página con el applet)
  • Se ve, se siente, se comporta y funciona como una aplicación nativa, al igual que un PCR (gracias a SWT)

Algunos inconvenientes identificados son:

  • los ordenadores de los usuarios deben tener instalado un plugin de Java.
  • La aplicación debe ser desarrollado en una versión de Java compatible con los plugins de los usuarios (aunque el cliente puede requerir una versión mínima para ser instalado en las computadoras del personal). La herramienta Retroweaver puede ayudar, aunque no tengo mucha experiencia con él.
  • El usuario debe mantener el navegador web de código abierto, de lo contrario se dará por terminada la aplicación.

¿Cuál es la naturaleza de esta aplicación. En caso de que se ejecuta por completo en un equipo cliente? ¿Tiene que acceder a los datos almacenados localmente? ¿Está usted sólo replcaning la interfaz gráfica de usuario para una aplicación existente con el motor sigue siendo el código heredado?

Mi pareja también está trabajando en un dispositivo de software donde se ha aprovechado AJAX como un medio para la configuración del aparato. El conjunto de características para la configuración es rica y alinea muy bien con RIA. Del mismo modo, tener que instalar software localmente en el navegador web es muy desanimado.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top