2011-08-19 23 views
8

Después de jugar con Vaadin durante aproximadamente una semana, tengo curiosidad acerca de cómo Vaadin usa GWT. GWT compila Javacode a Javascript. Esto tiene que hacerse siempre que estés redistribuyendo. Dado que Vaadin debe entenderse como un marco centrado en el servidor, eliminando su flexibilidad al escribir código ejecutado en Clientside y moviendo todo al servidor (que suena peor de lo que realmente es), el compilador GWT solo se ejecuta una vez un momento. Por ejemplo, esto sucede cuando está importando un complemento desde el sitio web de vaadin.Entender cómo Vaadin usa GWT

Pero no puede ser tan fácil, ¿verdad? Si solo compilara el código de los complementos para javascript esto podría haberlo hecho antes.

lo tanto, mi pregunta es:

¿Cuándo utilizar vaadin el compilador de GWT y qué hacer en ese punto que no sea la compilación a JS?

Respuesta

14

Básicamente lo tienes todo, y en su mayoría respondiste la pregunta tú mismo.

En Vaadin los componentes de interfaz de usuario constan de dos partes:

del lado del servidor
  1. "componente" compilado usando JDK
  2. del lado del cliente "Widget" compilado usando GWT

Estas piezas comunicarse entre sí a través de HTTP y sincronizar automáticamente su estado según sea necesario. La parte del servidor mantiene el estado del componente de la interfaz de usuario y el widget del lado del cliente representa ese estado.

Los desarrolladores de aplicaciones normalmente solo usan los componentes del lado del servidor para compilar la aplicación y no tienen que preocuparse por cómo funciona el lado del cliente.

En general, los nuevos componentes a Vaadin pueden desarrollarse de dos maneras:

  1. Composición componentes existentes
  2. creación de una nueva widgets con GWT/JavaScript (+ otra tecnología del lado del cliente)

El primer método aquí utiliza las clases existentes y no necesita la recompilación de los widgets con GWT. Solo se compila el código de la aplicación (con el compilador JDK). Sin embargo, en el segundo escenario, las clases del lado del cliente cambian y necesitan una recompilación. Aquí es cuando se necesita el compilador GWT.

Debido a la naturaleza en lugar monolítica de la GWT JavaScript compilado (sin tener en cuenta las nuevas características de división de código de GWT es el espacio de nombres global) Vaadin utiliza el concepto de conjunto de widgets. Es un módulo GWT que contiene todos los widgets necesarios en la aplicación. Eso significa que al agregar nuevos widgets (del lado del cliente) a una aplicación se necesita una recompilación de GWT. También es una buena práctica recompilar el conjunto de widgets al eliminar widgets para optimizar el tamaño del conjunto de widgets.

El paso de compilación GWT en sí mismo no es nada especial. Sin embargo, Vaadin contiene muchas adiciones, ayudantes y soluciones a las clases de GWT que los widgets aplican y usan.

Todo esto es bastante visible cuando se usan complementos de Vaadin (consulte http://vaadin.com/directory).Incluso los add-on son simplemente archivos jar, si contienen un nuevo código de widget del lado del cliente, se necesita una compilación de conjunto de widgets usando GWT, cuando se agregan a un proyecto.