openxava - Diferencias entre GWT y Vaadin
vaadin include html (8)
¿Alguien puede sugerir si "GWT" o "Vaadin" son una mejor opción para diseñar una aplicación? Además: ¿cuáles son las diferencias en el estilo de codificación?
Algunos puntos más:
Una diferencia fundamental es que en GWT tiene que separar su aplicación en el código de Cliente y Servidor, sin tal distinción en Vaadin. Esto afectará la arquitectura de su aplicación.
En el código de cliente GWT, debe codificar en Java y tener un subconjunto limitado de características de idioma disponibles (que el compilador de GWT puede traducir a Javascript). En Vaadin, puede codificar en cualquier lenguaje JVM, ya que todo se ejecuta en el servidor (estoy usando Vaadin con Scala). Esto puede o no ser relevante para usted.
La compilación de GWT es MUY lenta, aunque en el modo de desarrollo tiene el emulador. Esto hace que las actualizaciones del entorno de producción sean dolorosas (una aplicación GWT que desarrollé ha crecido bastante y actualmente se tarda unos 15 minutos en compilar).
Es muy simple extender GWT con widgets de terceros o hacer los suyos propios. Crear nuevos widgets de Vaadin es más complejo.
Como cualquier aplicación tiene que mostrar información de visualización proveniente del servidor, un requisito importante para la codificación simple es el enlace automático de datos a sus formularios y tablas. Con Vaadin, esto es tan simple como unas pocas líneas de código. En GWT, primero no tiene una tabla de mapeo. En cuanto a los formularios, puede asignar un objeto a un formulario, pero para hacerlo debe implementar un llamado Editor GWT para su objeto (y uno para cada objeto dentro de él). Un Editor no es más que la definición de la forma que se debe usar para mostrar / modificar el objeto. Entonces, en general, no hay automatización aquí.
Con Vaadin también puede usar GWT incorporado cuando desee hacer algo en el lado del cliente. Esto le brinda la simplicidad del modelo de programación del lado del servidor (sin comunicaciones, no se necesita programación del navegador) con el control total de lo que sucede en el navegador.
Creo que Vaadin es un marco mucho más avanzado que GWT PERO Cuando se trata de optimizar el rendimiento en el lado del cliente no hay mucho que puedas hacer a menos que construyas tus propios componentes (y ahí es donde se detiene la belleza de Vaadin) en un proyecto i '' m trabajando ahora mismo El 90% del personal que he trabajado funcionaba como un encanto Y luego tuve que usar un calendario de eventos junto a un par de tablas. Cuando cargué más de 400eventos en la línea de tiempo, mi página web casi no se puede usar, sin mencionar la terrible lentitud de la inicialización. He estado tratando de optimizar el código en los últimos dos meses. Al final usé un componente GWT.
Diferencias entre Vaadin y GWT:
A) Vaadin incluye un modelo de desarrollo del lado del servidor que:
- Reduce el número de líneas de código a la mitad reduciendo las capas que uno debe implementar para la interfaz del usuario.
- Le permite usar cualquier lenguaje basado en JVM para la interfaz de usuario - Scala, Groovy
- Aumenta la seguridad al mantener la lógica de la interfaz de usuario en el servidor
- Permite llamadas sincrónicas a cualquier API de backend desde el servidor web
- Permite el uso de cualquier biblioteca y herramienta estándar de Java para la capa de IU en aplicaciones de arquitectura del lado del servidor
- No necesita un paso de compilación de Java a JavaScript que a menudo lleva tiempo o complica las herramientas en los proyectos de GWT. En su lugar, tiene el motor de cliente Vaadin.
- Proporciona el servidor fuera de la caja sin necesidad de código adicional
B) Vaadin proporciona un gran conjunto de componentes de interfaz de usuario de alto nivel. Para GWT uno necesitaría usar Sencha GXT comercial para un conjunto de componentes comparables.
C) Vaadin incluye el motor de tema Valo basado en SASS que facilita la creación de temas personalizados atractivos desde su aplicación. Valo es el último tema para Vaadin.
D) Enlace de datos: Vaadin ha incorporado la capacidad de asociar cualquier widget directamente a una fuente de datos como base de datos, archivo o cualquier otra cosa en el lado del servidor. Esto permite definir el comportamiento predeterminado de los widgets para actuar en las fuentes de datos.
En la aplicación GWT, la lógica normalmente se ejecuta en el lado del cliente. Solo llama al servidor cuando necesita leer / guardar algunos datos.
En la aplicación Vaadin, la lógica está en el lado del servidor. El lado del cliente normalmente debe llamar al servidor después de cada interacción del usuario.
GWT ventaja:
La lógica de la aplicación (respuestas a la interacción del usuario) es más rápida ya que se ejecuta localmente en el navegador. También es relativamente insensible a las malas condiciones de la red. La red se usa solo cuando es necesario (para leer / guardar datos nuevos), lo que ahorra tráfico de red (importante para sitios con mucho tráfico).
En este sentido, Vaadin es más lento e introduce un retraso en la interacción de la interfaz de usuario que molesta al usuario. Si la red es mala, se mostrará en la respuesta de UI.
Ventaja de Vaadin:
La lógica de la aplicación se ejecuta en el servidor, por lo que no puede ser inspeccionada por el usuario. Podría decirse (afirma Vaadin) que lo hace más seguro.
No he probado Vaadin. Soy un fanático de GWT, pero PUEDO decir que me ha decepcionado un poco el conjunto de widgets predeterminado proporcionado con GWT. Realmente necesita algo como SmartGWT para completar el marco.
Otra ventaja de Vaadin: no tiene que diseñar o implementar la comunicación cliente-servidor, que está incorporada.