¿La mejor biblioteca de widgets de GWT?

Pregunta para todos los gurús de GWT, ¿cuál es la mejor biblioteca de widgets de GWT? ¿Y por qué?

Lista basada en las respuestas:

  • Defecto
  • Sencha GXT
  • Smart GWT
  • Vaadin
  • GWT-Bootstrap
  • GwtBootstrap3
  • Rocket GWT (inactivo)
  • Tatami (inactivo)
  • ErraiFramework
  • GWTMaterialDesign

И наконец-новое поколение основанное на JsInterop :

  • GWT + Polymer Elements
  • GWT + polymer
  • Angular y GWT
  • GWTMaterialDesign

No se una a NINGUNA de estas bibliotecas. Use Vanilla GWT para crear la estructura de su proyecto. En particular, use el patrón MVP y un Bus de eventos. Por favor, vea el artículo de google para saber cómo diseñar mejor su aplicación cliente con GWT: Creación de aplicaciones MVP

Después, puede usar cualquier widget de estas bibliotecas (por ejemplo, una tabla o un cuadro combinado, un selector de fecha, etc.) e incorporarlo a su proyecto. Trate de usar componentes extendidos SOLAMENTE si no ve una manera de hacerlo con GWT vainilla. De esta manera, no te vinculas a estas bibliotecas que SIEMPRE son un problema cuando intentas hacer algo que no aparece en la aplicación de demostración, contienen muchos errores y su soporte es, en el mejor de los casos, pobre.

Cómo buscar widgets debería seguir este orden:

Cuidado con otras bibliotecas, he trabajado con ellas (y todavía tengo pesadillas).

Depende de lo que quieras decir con “lo mejor”. ¿Mejor aspecto? Mejor API? ¿Lo mejor es extenderlo a sus necesidades personalizadas?

Por ejemplo, estaba evaluando clases de tabla para usar en nuestra aplicación. Hemos estado usando GWT-Ext, pero tiene muchos problemas de rendimiento para nosotros, y es muy difícil obtener las tablas del tamaño que necesitamos. Estuve a punto de trabajar con GWT-Mosaic , pero decidí construir los widgets en la Incubadora GWT .

Entonces, ¿por qué hice esta elección? Parece que muchas de las bibliotecas vienen con las suyas, por falta de una mejor palabra, equipaje. O tienes que bucear completamente en algún framework de MVC (que puede no ser totalmente compatible con el rest de tu base de códigos), o tienes que adoptar el nuevo sistema de diseño colgado de alguien, o tienes que vivir con el hecho de que no puedes realmente depurar el código (porque es solo envoltorios JSNI).

No me malinterpreten, la Incubadora GWT no es perfecta … los widgets existen en cierta cantidad de flujo. En mi caso, esta fue la mejor opción, sin embargo. Me da lo bueno (pero definitivamente no es perfecto):

  • API
  • Extensibilidad
  • Ver y sentir (bueno, esto es un poco débil, pero para eso es CSS).

Entonces … la respuesta (para mí) es una combinación de:

  • Widgets de Stock GWT (con mucho estilo personalizado)
  • Tablas de Incubadora GWT
  • Algunos widgets de cosecha propia

(Debo añadir: el “equipaje” al que me refiero no es necesariamente algo malo. Pero si solo quieres un widget o dos, puede elevar el nivel de lo que se necesita para hacer tu trabajo y cómo buena aplicación youe se ve.)

Ver esta biblioteca de componentes GWT Bootstrap esta es una implementación en gwt de Twitter Bootstrap.

GWT solo es una biblioteca bastante buena.

No utilicé todos los mencionados pero puedo recomendar Ext GWT .

Prefiero vainilla GWT. Algunas de las otras API se ven bonitas y sus vitrinas realmente muestran los widgets, pero siempre encuentro que el rendimiento no es el mejor … cuando digo performance me refiero más al tiempo de respuesta. Odio cuando una aplicación se siente lenta.

La mayoría de las bibliotecas mencionadas no son de código abierto y, lo que es peor, son solo contenedores sobre una biblioteca de JavaScript. El poder de GWT radica en el hecho de que la aplicación funciona en diferentes navegadores (debido a la generación de código para los navegadores “grandes” específicamente). Estas bibliotecas subyacentes de JavaScript pueden causar muchos problemas.

Estoy de acuerdo con que jgindin GWT Incubator y GWT Mosaic son los mejores hasta el momento.

No digo que sea “el mejor”, pero he estado usando GWT-Ext en el trabajo últimamente. Tiene algunos pros y contras:

Pros:

  • Relativamente fácil de instalar y usar
  • Comunidad de buen tamaño detrás de ella
  • MUCHOS ejemplos en línea, todos los cuales tienen código de acompañamiento
  • Buena selección de widgets que cubren una amplia gama de funcionalidades

Contras:

  • Hace suposiciones sobre el formato y la estructura de sus datos que es posible que no pueda acomodar
  • La biblioteca es solo un contenedor JSNI, lo que hace que sea más difícil depurar y extender
  • El futuro soporte y desarrollo en la biblioteca es incierto
  • Todavía existen algunos problemas molestos entre navegadores (especialmente con diseños)
  • La función de búsqueda en sus foros es esencialmente inútil. (Esto se está convirtiendo en un gran problema para mí> _ <)

NO use ninguno de ellos! Si planea desarrollar una aplicación a gran escala, debe considerar usar el patrón MVP. La mejor implementación es la estructura MVP4G , admite la división de código GWT de fábrica . Hay muchos buenos ejemplos, puedes comenzar. El más valioso es Mvp4GModules.

Agregue el nuevo: GWT-Bootstrap 🙂

No hay una versión estable en este momento, pero tendrá pronto.

Mi experiencia muestra que siempre hay muchos problemas con las bibliotecas de terceros. La mejor manera es utilizar la tecnología bien conocida y bien hecha, además de sus propios componentes. Puede tomar más tiempo escribirlos y mantenerlos, pero el TCO siempre se encuentra en un nivel inferior.

Las bibliotecas de terceros a menudo pueden romper sus planes de forma inesperada. Y es difícil encontrar y solucionar el origen del problema.

Así que sugeriría usar GWT simple.

Creo que SmartGWT está bien si solo quieres usar los widgets como son, pero si deseas extender o modificar los widgets como lo hago en el progtwigdor de Gxt , creo que Ext-GWT es una mejor opción.

para mí, EXT-GWT (también conocido como GXT) es la mejor biblioteca actualmente disponible, la uso en un proyecto de 6 meses, y ayuda mucho con muchos componentes predefinidos, como cuadrículas, árboles … También es hermoso

SmartGWT es una buena biblioteca y tiene muchos ejemplos, pero la interfaz de usuario no es tan elegante. Para la interfaz de usuario, Ext GWT es bueno.

El grupo de usuarios de gwt-mosaic no parece muy activo y no pude encontrar un manual de usuario además de los fragmentos de wiki. gwt-mosaic me presentó dos herramientas interesantes.

1) gwt-mosaic incluye un contenedor para PageBus de Tibco que es una herramienta de publicación / suscripción para las partes JS de su aplicación (controladores RPC, devoluciones de llamadas de widgets, configuradores de widgets). Esta es una alternativa al bus de eventos de gwt.

2) gwt-mosaic fomenta el uso de Beans Binding (http://code.google.com/p/gwt-beans-binding/) para enlazar datos a widgets y validar widgets.

smartgwt no es barato para el conjunto completo de características y soporte. El jar es demasiado grande para appengine a menos que elimines los archivos de tema que no usas. También invierten ingeniería en el lado del servidor.

Escuché que ext-gwt es lento y los archivos JS son grandes.

La incubadora de widgets gwt parece obsoleta. Creo que la grilla de lujo se lanzará con el nuevo gwt.

La falta de estándares para buscar y sentir, encuadernar y validar está obstaculizando la interoperabilidad de las bibliotecas de widgets.

Definitivamente no SmartGWT. Su marco está hinchado y tiene una naturaleza muy a medio cocer. Tienen un millón de widgets, pero tratar de que trabajen para su proyecto no es fácil. Las fonts de datos complican el proceso de administrar sus datos de una manera muy grande, por ejemplo, para acceder a los datos en su fuente de datos, debe usar fecth e inspeccionar con frecuencia. Si bien puede almacenar en caché los resultados, no siempre es fácil interrogarlos.

RPC es otra área débil y complicada. Hay información contradictoria en la documentación y en los foros. Si bien la documentación indicará que rara vez debe utilizar una operación personalizada como parte de un ds, el foro le dirá que está perfectamente bien. Aprender a usar estas herramientas de manera efectiva es una subida cuesta arriba en el mejor de los días.

Excederán el producto. Por ejemplo, el paquete de gráficos / análisis contiene gráficos … Pero esos gráficos no mostrarán valores negativos ni le permitirán manipular las tags de los ejes de ninguna manera significativa. Y responden abiertamente a las consultas sobre esto en el foro con una actitud de “sí, qué”. “No planeamos agregar eso a 3.0x, aunque ese es uno de nuestros puntos de venta, está en nuestro mapa de ruta”. Cuando me vendieron el paquete, nunca mencionaron que no podía mostrar los valores negativos. De Verdad? ¿Qué gráfico no necesitaría poder mostrar valores negativos? Solo puedo pensar en uno: el que representa la cantidad de clientes isomórficos infelices.

Mantente alejado de estos tipos, y dirígete al sitio de cualquier competidor, por ejemplo ExtJS, JQuery, diablos, incluso quxdoo. Hay algunos proyectos que realmente están ganando terreno y ofrecen una buena solución.

Tenga mucho cuidado si alguna vez evalúa este producto. Se ve bien, pero a las dos semanas de iniciado el proyecto, empezarás a ver lo que quiero decir. Los widgets están medio cocinados, las fonts de datos son extremadamente complicadas, y solo porque pagaste por el soporte del foro, no significa que obtendrás otra cosa que no sea sarcasmo, respuestas condescendientes que al principio te harán pensar que te perdiste algo. Ustedes no son generalmente muy arrogantes.

La mejor de las suertes, y manténgase alejado de este producto si valora su tiempo de desarrollo y capacidad de mantenimiento. Oh, y una última cosa. Mira el ejemplo de MVC en su sitio web. Literalmente no tiene nada que ver con MVC que no sea la etiqueta que dice “MVC”. Tratarán de convencerte de que tales frameworks son para desarrolladores sin experiencia, y que ese concepto no tiene cabida en la progtwigción real … Un poco como esos intentan atrapar bloques.

La biblioteca por defecto de Google es la biblioteca más poderosa.

Ext GWT agrega campanas y silbatos, pero aparte de eso, es similar a Google.

Actualmente nos gustan los widgets GWT Mosaic . Hemos trabajado con ext-JS y hemos lanzado nuestros propios widgets en el pasado. Las licencias ext-JS y el volumen fueron un problema para nosotros. Hacer lo nuestro no es lo que queremos hacer. Mosaic nos da un término medio feliz que nos gusta pensar que será un término medio aún más feliz a medida que el proyecto madure.

Yo diría que si solo necesitas algunos widgets, entonces construye el tuyo propio. Puede copiar y pegar algunos conceptos de las bibliotecas mencionadas. Pero a todos les falta una o la otra cosa. He jugado con la mayoría de ellos y los he abandonado a todos.

Una cosa a tener en cuenta es que desde los foros GWT-Ext parece que ya no se desarrollará / mantendrá mucho (¿quizás no?). En su sitio web, recomiendan migrar a SmartGWT .

No lo mencioné, Vaadin (anteriormente conocido como IT Mill Toolkit), pero tal vez sea porque técnicamente no es exactamente GWT; como dice su pregunta frecuente :

¿Cómo difiere esto de GWT?

Las aplicaciones GWT se ejecutan en el navegador, mientras que las aplicaciones Vaadin se ejecutan en el servidor. Realmente utilizamos GWT como un “motor de representación” en el lado del navegador, para que pueda combinar Vaadin y GWT.

smartGWT es lento y faltan ejemplos y es muy difícil encontrar respuestas incluso para las preguntas básicas, es decir, ver todas mis preguntas no respondidas en este foro. Estoy volcando smartgwt.

Comparación de los dos EXT aquí con pros y contras.

Hemos construido un gran portal de Recursos Humanos y un par de aplicaciones más pequeñas usando GWT Portlets . El objective del proyecto no es construir una colección de widgets, sino crear un modelo de progtwigción simple.

Desde el sitio web:

GWT Portlets es un marco web de código abierto para la creación de aplicaciones GWT (Google Web Toolkit). Define un modelo de progtwigción muy simple y productivo, pero potente para construir aplicaciones GWT modulares atractivas.

El modelo de progtwigción es algo similar a escribir portlets JSR168 para un servidor de portal (Liferay, JBoss Portal, etc.). El “portal” es su aplicación creada utilizando el marco de portlets de GWT como una biblioteca. La funcionalidad de la aplicación se desarrolla como Portlets ligeramente acoplados, cada uno con un DataProvider opcional del lado del servidor.

Estoy usando GWT por un año. Después de mucha investigación, he decidido que GWT Mosaic sea una biblioteca de widgets. Mosaic utiliza algunos de los componentes de la incubadora GWT, como PagingScrollTable. Pero las características del cuadro combinado y la tabla no son suficientes para nosotros. Por eso, tenemos extendió estos componentes para agregar la funcionalidad necesaria.

Echa un vistazo a SpiffyUI: http://www.spiffyui.org

No es solo una biblioteca de widgets, sino un framework UI / UX GWT complejo.

Dos cosas importantes -y lo que la mayoría de las bibliotecas omiten- son las pruebas unitarias y la depuración. Es donde brilla GWT. Si usa una biblioteca que está basada en vanilla js, cede la capacidad de probar y depurar su proyecto. Como desarrollador de GWT, debe considerar estos puntos y usar una biblioteca sin o con mínima dependencia de js.

Hemos estado haciendo proyectos de GWT por más de 2 años, y nos apegamos a los widgets predeterminados. Creamos nuestra propia biblioteca de código abierto para autopobular las predeterminadas o nuestras propias extensiones de widgets. Por favor, revíselo, se llama gwt-jet . Está muy probado ya que lo usamos en entornos de producción grandes, y esperamos que crezca de forma segura a través del tiempo.