patrones patron inyeccion ejemplo diseño dependencias gwt inversion-of-control jax-rs cdi errai

gwt - ejemplo - patron de inyeccion



Experiencia Errai: interfaz de usuario, comunicación, inyección de dependencia (1)

Tengo una amplia experiencia con GWT, GIN y GWTP-dispatch y, como no tengo ninguna experiencia con Errai, me gustaría preguntarle si realmente es una buena opción crear una aplicación web completa de una sola página en Errai como base. . Si tienes una amplia experiencia con Errai, sería genial saber de ti.

Estoy construyendo una aplicación web de transmisión de video. Digamos que es otro YouTube (diseño, acciones, flujo, etc.) pero con esteroides (que no son relevantes).

He leído documentos completos de Errai y aquí están mis inquietudes / preguntas.

  1. Errai JAX-RS: no me interesan los mensajes sofisticados. Errai es realmente famoso, por ejemplo, servidor-> cliente, cliente-> cliente, radiodifusión, conversaciones, etc. Quiero llamadas AJAX simples a través de RS. La preocupación evidente es el rendimiento de la comunicación, no hay llamadas redundantes, solo una sola solicitud y respuesta HTTP.
    ¿Qué pasa con las limitaciones mencionadas aquí ( ¿Cómo se integra GWT con un servidor JAX-RS / RESTEasy usando Errai? ): ¿Están actualizadas estas cosas y tendré que implementar servicios REST con algunas limitaciones de Errai en mente?

  2. Errai IoC / CDI - GIN parece más maduro para mí, definitivamente más popular (con todos los beneficios de eso). Pero parece que pueden coexistir perfectamente o preferiría elegir uno de ellos. Es bueno tener muchos frijoles Errai (como el que llama) inyectados con una sola anotación. Por cómo lo entiendo, no necesito CDI. Si utilizo Errai IOC en mi proyecto, ¿qué funcionalidad adicional obtengo con CDI? ¿Debo tenerlo en mi classpath para que todo sea instanciado por ioc container?
    ¿Lo entiendo correctamente: IoC permite un cableado simple y CDI es donde realmente puedo configurar y crear instancias de los beans que se inyectarían? Por ejemplo, @Produces está en CDI, no en IOC. ¿Podría explicarnos cuál es la diferencia entre Errai IOC y CDI en el contexto de DI pura? Sé que uno es superconjunto de otro, pero todavía no lo entiendo.

  3. Enlace de datos de Errai: gran, gran característica PERO distorsiona el patrón de MVP. Currenlty Escribí mi aplicación en MVP básico (sin mvp framework y sin interacción entre Model y View). ¿Puedo gestionar enlaces de datos en @Model desde el presentador y no desde la vista (que utilizaría plantillas HTML con Errai UI)?

  4. Errai UI: ¿Qué pasa con los widgets existentes de GWT como CellTable en el contexto del enlace de datos y el cableado de View class con una plantilla?
    En general, ¿qué enfoque utilizas cuando escribes widgets más sofisticados (como una galería de imágenes con buscapersonas por ejemplo) con Errai? ¿Utiliza el widget de GWT existente (como CellTable) - único widget pesado - o mejor dicho, diseñe todo dentro de la plantilla html y simplemente conecte ciertos divs a los campos de datos correspondientes en la clase de visualización - más widgets livianos? Me he encontrado con esta opinión de uno de los autores de Errai UI:
    Lo bueno de la UI de Errai es que simplemente vuelcas este archivo de plantilla en tu proyecto y dices "OK, esta parte de la plantilla pertenece a este componente" o "esta pieza de la plantilla pertenece a este otro componente". Y puede conectar estas cosas juntas y su plantilla simplemente cobra vida frente a usted, directamente en el navegador.
    Entonces digamos que tengo un diseño html de toda la galería de imágenes. Obviamente, no me gustaría volver a crear eso con CellTable, pero utilizo ese diseño, así que tendría que ser capaz de: crear una galería de imágenes completa como un compuesto que tendría que conectarse al elemento más externo en el diseño y cablear todos los datos - campo a la propiedad correspondiente en mi clase compuesta. ¿Es eso posible?

El servidor debe ser GWT / Errai agnóstico: del lado del servidor, me gustaría usar Errai lo más mínimo posible (porque no quiero ninguna característica de comunicación elegante como dije) y mantener la aplicación con Spring on Jetty o Tomcat.

Al agregar una nueva tecnología como base, es decir, construir toda la aplicación en ella, siempre existe el riesgo de que no sea lo suficientemente flexible, lo que significa que será necesario realizar algunos cortes para superar obstáculos imprevistos o, en algunas circunstancias terribles, toda la tecnología tendrá que ser abandonado.

Última pregunta simple: ¿dónde está el javadoc en línea de errai?


Respuesta corta, construir usando GWT se simplifica enormemente, estructurado con Errai.

La creación de plantillas basada en HTML le permite crear aplicaciones web utilizando tecnologías web estándar y no lidiar con UiBinder o el lenguaje específico del dominio, el enfoque de la página le permite lidiar con el problema del dominio de la aplicación, página por página, que es más natural para cualquier aplicación web, después de todo, navegamos por la página web por página.

Hay muchas más cosas que te gustarán con el framework JBoss Errai.

Espero que esto responda a tu larga pregunta enterrada.