2011-01-04 16 views
10

Tanto GWT como Wicket son basados ​​en objetos orientados a objetos de Java. GWT está completamente basado en el cliente con funciones como la optimización de JavaScript, la optimización de CSS y soy bastante nuevo en Apache Wicket.GWT vs Apache Wicket

Cuanto más leo sobre Wicket, más parecido se siente a GWT.

Así que supongo que la pregunta es: ¿cuáles son las diferencias entre GWT y Wicket? ¿O estoy comparando manzanas con naranjas?

+0

duplicado: http://stackoverflow.com/questions/3569402/wicket-vs-gwt-advice-needed – Karussell

Respuesta

8

Es más o menos manzanas a naranjas.

Este wiki entry resume algunas de las similitudes y diferencias, y el comienzo de una estrategia para usarlas juntas, que creo que es una idea interesante.

Wicket es principalmente una tecnología del lado del servidor con algunos apoyos integrados Ajax y ganchos para cablear en más Ajax. No traduce Java a JavaScript como GWT. Mantiene el lado del servidor de estado donde GWT mantiene el estado en el cliente.

Ambos se basan en componentes y para mí tienen algo de la sensación de desarrollo de Swing (aunque Wicket no parece sentirse como Swing al menos a otro encuestado).

0

Wicket es el marco basado en servidor .. Es mucho más similar a JSf que GWT. GWT es conceptualmente similar a Swing, soy un desarrollador de swing, es muy fácil migrar de columpio a gwt. Pero no puedo decir lo mismo para Wicket o JSF ...

25

He estado usando tanto GWT (1.x y 2.x) y wicket (1.4, 1.5) en un proyecto grande desde hace varios años, y ambos marcos tienen sus ventajas e inconvenientes. Ambos son geniales y agradables, si se usan para lo que han sido diseñados para. Pero puede tomar lo mejor de ambos por mezclándolos juntos fácilmente.

  • Wicket es muy agradable y potente para los sitios web un mantenimiento, con una buena separación entre el diseño de la página (HTML) y el código Java. Mientras no necesites potentes capacidades del cliente, está haciendo su trabajo muy bien, al precio de ser un poco codicioso: pero ese es el premio a pagar por ser fuertemente tipado: no hay "magia"; refactoring y componentization funciona como un encanto. Para proyectos grandes, puede ser desacoplado y está bien diseñado para trabajar con equipos grandes: las personas pueden enfocarse en proporcionar un buen conjunto de componentes centrales, otros en la capa de presentación, etc. El único inconveniente es para complejos comportamiento en el lado del cliente, todavía necesita maestro Javascript y fácilmente puede convertirse en bastante complejo mezclar Wicket y Javascript usted mismo.

  • GWT es agradable cuando usted realmente necesita rica comportamiento capacidades de su cliente (aplicación Gmail-like). El principal problema con GWT es que se ve muy bien en el papel (el paradigma "todo en Java"), pero no cumple sus promesas.Es no escala bien: GWT es bueno para pequeños módulos que proporcionan un pequeño conjunto de funcionalidades, no para grandes aplicaciones. El ciclo de código/compilación/depuración es bastante largo, y cuando el tamaño del módulo crece demasiado, se convierte en una carga. Tampoco es compatible con grandes equipos que trabajan simultáneamente en el mismo módulo.

En resumen, sugeriría la gente tener que elegir:

  • Uso GWT con moderación cuando es realmente sea necesario, manteniendo el tamaño del módulo pequeña, y nunca tratar de construir una aplicación de gran conjunto completamente con eso;
  • Use wicket para el resto (¡Wicket realmente es una maravilla!).
  • Mezclar los dos juntos, utilizar las capacidades de componentes de gran alcance de Wicket modularizar el código GWT de una manera "ventanilla" (módulos de GWT convertirse en un tipo especial de componentes Wicket), y de nuevo, mantener GWT pequeña.
+5

Lo siento, pero estoy completamente en desacuerdo sobre la postura de que no se escala bien. Tuvimos una aplicación muy grande y no tuvimos problemas con el escalado, más de 1200 páginas dinámicas. Usamos el patrón MVP y usamos GWT.runAsync para una carga rápida. He usado wicket también y parece más un framework improvisado que GWT. Cosas como getModel y getOriginalModel son molestos, junto con la incapacidad de simplemente trabajar con DOM es lo que realmente me desalentó de Wicket. En mi humilde opinión Vaadin sería una mejor opción que Wicket ya que 7.0 da lo mejor de ambos mundos, pero me quedaré con GWT. –

+0

Lo que estoy diciendo es que un ** módulo ** de GWT no escala bien. Por sí solo, GWT puede escalar multiplicando el recuento de módulos, si mantiene el tamaño del módulo restringido. Pero confirmo que tener un tamaño de módulo GWT que crece demasiado es realmente doloroso por razones tanto técnicas como humanas. Por cierto, no veo lo que es Wicket 'getOriginalModel()'? –

+1

¿Por qué es doloroso el tamaño del módulo? Super Dev Mode elimina la necesidad de compilar todo durante el desarrollo, e incluso el modo dev anterior era ideal para eso. Si el tamaño del módulo es doloroso para los tiempos de descarga, hay muchas opciones para reducir el tamaño de descarga. Si GWT es bueno para la aplicación móvil GMAIL (Android e iOS), creo que podemos concluir que puede manejar grandes aplicaciones complejas por sí mismo. [Cómo Google hace multiplataforma en bandeja de entrada] (http://www.i-programmer.info/news/83-mobliephone/8010-how-google-does-multi-platform-in-inbox.html) –

1

Han pasado 6 años desde que este hilo estuvo activo y GWT se ha estancado en su mayoría. Wicket parece ser mucho más activamente desarrollado y compatible. ¿Alguien tiene opiniones más nuevas sobre Wicket u otras opciones?

-1

Wicket es el marco del servidor. Permitió crear html que necesitabas. Es posible la separación de roles en el proyecto. (Diseño web-> html/css-> java).

Si considera usar GWT para su proyecto, probablemente el diseñador web no sea necesario.
GWT genera javascript. La mayoría de la lógica se puede ejecutar en el lado del navegador. GWT es mejor para una aplicación escalable.

+0

Hola, ¿por qué 'GWT es mejor para aplicaciones escalables'? –

+0

Con GWT es fácil mover la lógica al navegador. Esto requiere más poder de computación para el cliente, pero menos poder de cómputo para el servidor. Con GWT es posible almacenar en caché los archivos js estáticos. – Dmitry

+0

En ciertos casos, es posible crear aplicaciones completamente desde archivos js estáticos. La mejor condición para escalar. – Dmitry