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
- Diseño de material GWTM
И наконец- новое поколение основанное en JsInterop :
Respuestas:
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. Consulte 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 fechas, etc.) e incorporarlo a su proyecto. Intente usar componentes extendidos SOLAMENTE si no ve una manera de hacerlo con GWT de vainilla. De esta manera, no se vincula a estas bibliotecas, que SIEMPRE son una molestia cuando intenta hacer algo que no aparece en la aplicación de demostración, contiene muchos errores y su soporte es, en el mejor de los casos, deficiente.
Cómo buscar widgets debe seguir este orden:
Cuidado con otras bibliotecas, he trabajado con ellas (y todavía tengo pesadillas).
fuente
Depende de lo que quieras decir con "mejor". ¿Mejor aspecto? Mejor API? ¿Lo mejor para extender a sus propias 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 y es muy difícil obtener el tamaño de las tablas de la forma en que las necesitamos. Estuve muy cerca de ir con GWT-Mosaic , pero decidí construir los widgets en la Incubadora GWT .
Entonces, ¿por qué tomé esta decisión? Parece que muchas de las bibliotecas vienen con su propio equipaje, a falta de una palabra mejor, equipaje. O tiene que sumergirse por completo en un marco MVC (que puede no ser completamente compatible con el resto de su base de código), o tiene que adoptar el nuevo sistema de diseño enredado de alguien, o tiene que vivir con el hecho de que no puede Realmente depurar el código (porque son solo envoltorios JSNI).
No me malinterpreten, la Incubadora GWT no es perfecta ... los widgets que hay tienen cierta cantidad de flujo. Sin embargo, en mi caso, esta fue la mejor opción. Me da bien (pero definitivamente no es perfecto):
Entonces ... la respuesta (para mí) es una combinación de:
(Debo agregar: el "equipaje" al que me refiero no es necesariamente algo malo. Pero, si solo quieres un widget o dos, puede elevar el listón de lo que se necesita para hacer tu trabajo y cómo se ve bien tu aplicación.)
fuente
Consulte esta biblioteca de componentes GWT Bootstrap. Esta es una implementación en gwt de Twitter Bootstrap.
fuente
GWT solo es una muy buena biblioteca.
No utilicé todos los mencionados, pero puedo recomendar Ext GWT .
fuente
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 rendimiento me refiero más al tiempo de respuesta. Odio cuando una aplicación se siente lenta.
fuente
La mayoría de las bibliotecas mencionadas no son de código abierto y, lo que es peor, son envoltorios en la parte superior de 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 jgindin GWT Incubator y GWT Mosaic son los mejores hasta ahora.
fuente
No digo que sea "el mejor", pero últimamente he estado usando GWT-Ext en el trabajo. Tiene algunos pros y contras:
Pros:
Contras:
fuente
¡NO use ninguno de ellos! Si planea desarrollar una aplicación a gran escala, debería considerar usar el patrón MVP. La mejor implementación es el marco MVP4G , es compatible con la división de código GWT de fábrica . Hay muchos buenos ejemplos con los que puedes comenzar. El más valioso es Mvp4GModules.
fuente
Agregue el nuevo: GWT-Bootstrap :)
No hay una versión estable en este momento, pero lo habrá pronto.
fuente
Mi experiencia muestra que siempre hay muchos problemas con las bibliotecas de terceros. La mejor manera es utilizar tecnología conocida y bien fabricada, además de sus propios componentes. Puede llevar más tiempo escribirlos y mantenerlos, pero el TCO siempre está en un nivel inferior.
Las bibliotecas de terceros a menudo pueden romper sus planes inesperadamente. Y es difícil encontrar y solucionar la fuente del problema.
Por lo tanto, sugeriría usar GWT simple.
fuente
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 Programador de Gxt , creo que Ext-GWT es una mejor opción.
fuente
para mí EXT-GWT (también conocido como GXT) es la mejor biblioteca disponible actualmente, la uso en proyectos de 6 meses y ayuda mucho con muchos componentes predefinidos como cuadrículas, árboles ... También es hermoso
fuente
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.
fuente
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 el PageBus de Tibco, que es una herramienta de publicación / suscripción para las partes JS de su aplicación (controladores RPC, devoluciones de llamada de widget, configuradores de widget). 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 vincular datos a widgets y validar widgets.
smartgwt no es barato para el conjunto completo de funciones y soporte. El jar es demasiado grande para anexar a menos que elimine los archivos de tema que no usa. También invierten ingeniería en el lado del servidor.
He oído 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 de apariencia, vinculación y validación está obstaculizando la interoperabilidad de las bibliotecas de widgets.
fuente
Definitivamente no es SmartGWT. Su marco está hinchado y tiene una naturaleza muy a medias. Tienen un millón de widgets, pero intentar que funcionen para su proyecto no es fácil. Las fuentes de datos complican el proceso de administrar sus datos de una manera muy grande, por ejemplo, para obtener 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 enrevesada. Hay información contradictoria en la documentación y en los foros. Si bien la documentación dirá que rara vez debe usar 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.
Venderán en exceso el producto. Por ejemplo, el paquete de gráficos / análisis contiene gráficos ... Pero esos gráficos no mostrarán valores negativos o le permitirán manipular etiquetas de eje de manera significativa. Y responden abiertamente a las preguntas sobre esto en el foro con una actitud de "sí, y qué". "No planeamos agregar eso a 3.0x a pesar de que ese es uno de nuestros puntos de venta, está en nuestra hoja de ruta". Cuando me vendieron el paquete, nunca mencionaron que no podía mostrar valores negativos. De Verdad? ¿Qué gráfico no necesitaría poder mostrar valores negativos? Solo puedo pensar en uno: el que representa el número de clientes isomórficos descontentos.
Manténgase alejado de estos tipos y diríjase al sitio de cualquier competidor, por ejemplo, ExtJS, JQuery, diablos incluso quxdoo. Hay algunos proyectos por ahí que realmente están ganando terreno y en realidad ofrecen una buena solución.
Tenga mucho cuidado si alguna vez evalúa este producto. Se ve bien, pero aproximadamente dos semanas después de que el proyecto lo use, comenzarás a ver lo que quiero decir. Los widgets están a medias, las fuentes de datos son extremadamente complicadas, y solo porque pagaste por el soporte del foro, no significa que realmente obtendrás otra cosa que no sea sarcástica, respuestas condescendientes que al principio te harán pensar que te perdiste algo. No lo hiciste, generalmente son muy arrogantes.
Mucha suerte, y manténgase alejado de este producto si valora su tiempo de desarrollo y facilidad de mantenimiento. Oh, y una última cosa. Mire el ejemplo de MVC en su sitio web. Literalmente no tiene nada que ver con MVC aparte de que la etiqueta dice "MVC". Tratarán de convencerlo de que dichos marcos son para desarrolladores sin experiencia, y que ese concepto no tiene cabida en la programación real ... Algo así como los que intentan atrapar bloques.
fuente
La biblioteca predeterminada de Google es la biblioteca más poderosa.
Ext GWT agrega campanas y silbatos, pero aparte de eso, es similar al de Google.
fuente
Actualmente nos gustan los widgets de mosaico GWT . Hemos trabajado con ext-JS y hemos creado nuestros propios widgets en el pasado. Las licencias ext-JS y el volumen fueron un problema para nosotros. Rodar el nuestro no es lo que queremos hacer. Mosaic nos da un término medio feliz que nos gusta pensar que será un punto medio aún más feliz a medida que el proyecto madure.
fuente
Diría que si solo necesita unos pocos widgets, cree el suyo. Puede copiar y pegar algunos conceptos de las bibliotecas mencionadas. Pero a todos les falta una u otra cosa. He jugado con la mayoría de ellos y he abandonado a todos.
fuente
Una cosa a tener en cuenta es que, desde los foros , parece que GWT-Ext ya no se desarrollará / mantendrá mucho (¿tal vez no?). En su sitio web recomiendan migrar a SmartGWT .
fuente
No vi este mencionado, Vaadin (anteriormente conocido como IT Mill Toolkit), pero tal vez sea porque técnicamente no es exactamente GWT; como dice su pregunta frecuente :
fuente
smartGWT es lento y faltan ejemplos y es muy difícil encontrar respuestas incluso para las preguntas básicas, es decir, vea todas mis preguntas no respondidas en este foro. Estoy tirando smartgwt.
fuente
Comparación de los dos EXT aquí con pros y contras.
fuente
Hemos creado un gran portal de recursos humanos y un par de aplicaciones más pequeñas con GWT Portlets . El objetivo del proyecto no es tanto crear una colección de widgets sino crear un modelo de programación simple.
Desde el sitio web:
GWT Portlets es un marco web gratuito de código abierto para crear aplicaciones GWT (Google Web Toolkit). Define un modelo de programación muy simple y productivo, pero potente, para construir aplicaciones GWT modulares de buen aspecto.
El modelo de programació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 GWT como biblioteca. La funcionalidad de la aplicación se desarrolla como Portlets acoplados libremente, cada uno con un DataProvider opcional del lado del servidor.
fuente
Estoy usando GWT por un año. Después de mucha investigación, he decidido que GWT Mosaic es 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.
fuente
Echa un vistazo a SpiffyUI: www.spiffyui.org
No es solo una biblioteca de widgets, sino un complejo marco UI / UX GWT.
fuente
Dos cosas importantes, y lo que la mayoría de las bibliotecas pierden, son las pruebas unitarias y la depuración. Es donde brilla GWT. Si utiliza una biblioteca que se basa en vanilla js, regala la capacidad de probar unitariamente y depurar su proyecto. Como desarrollador de GWT, debe tener en cuenta estos puntos y utilizar una biblioteca con dependencia js mínima o nula.
fuente
Llevamos más de 2 años haciendo proyectos de gwt y nos atenemos a los widgets predeterminados. Creamos nuestra propia biblioteca de código abierto para autopoblar las predeterminadas o nuestras propias extensiones de widgets. Por favor verifíquelo , se llama gwt-jet . Está muy bien probado ya que lo usamos en entornos de producción grandes, y esperamos que crezca de manera segura a través del tiempo.
fuente