Un poco de GWT

Google Web Toolkit (GWT) es la propuesta de Google para el desarrollo de Aplicaciones RIA con AJAX.

Se creó conforme al manifiesto: “La misión de GWT es mejorar radicalmente la experiencia de los usuarios con la web permitiendo a los desarrolladores utilizar las herramientas Java existentes para construir aplicaciones Ajax independientes del navegador”. Su licencia es Apache 2.0.

GWT permite crear aplicaciones AJAX en el lenguaje de programación Java que son compiladas posteriormente por GWT en código JavaScript ejecutable optimizado que funciona automáticamente en los principales navegadores.

  • El ciclo de vida es el siguiente:
    • Programas en Java: Durante el desarrollo de una aplicación, permite aprovechar la ventaja de poder depurar y recorrer una a una todas las líneas de código Java, antes de generar el código Javascript.
    • Depuras en Java
    • Pruebas en Java
    • GWT compila de Java a JavaScript: GWT genera código JavaScript que se carga y ejecuta con mayor rapidez que el código JavaScript equivalente creado de forma manual. Por ejemplo, el compilador de GWT suprime de forma segura todo el código no utilizable.
    • Despliegas en JavaScript
  • GWT es compatible con los principales navegadores: Internet Explorer, Chrome, Firefox, Safari y Opera. El código se escribe una vez y GWT lo convierte al JavaScript más adecuado para el navegador de cada usuario.
  • Comunicación con el servidor: GWT puede comunicarse con cualquier tecnología de servidor, realizando llamadas AJAX desde el cliente y transportando la información utilizando JSON o XML.

  • GWT proporciona por defecto el mecanismo GWT RPC el cual nos permite realizar llamadas remotas a Servlets, GWT se encarga de la serializacion entre Java <-> JSON para realizar las llamada. Es un mecanismo similar a RMI en Java.

Librerías de componentes: permite crear componentes reutilizables mediante la composición de otros componentes, además existen multitud de librerías disponibles: GWTGWT IncubatorSmart GWTGWT-ExtIT Mill ToolkitGWT mosaic

  • Integración con las principales herramientas de desarrollo Java: Eclipse, IntelliJ, JProfiler y JUnit
  • Integración con JUnit: permite efectuar las pruebas unitarias en un depurador como en un navegador, e incluso probar de forma unitaria las llamadas a procedimientos remotos (RPC) asíncronas.
  • Integración con las APIS de Google: Google App Engine, Google Maps,..

  • GWT tiene cuatro componentes principales

o Java-to-JavaScript Compiler: la función del componente es traducir el código desarrollado en Java al lenguaje JavaScript compatible con los navegadores mas utilizados.

o Hosted Web Browser: este componente ejecuta la aplicación Java sin traducirla a JavaScript, en modo host usando la máquina virtual de Java. Utiliza Jetty como servidor embebido.

o JRE Emulation Library: contiene las bibliotecas más importantes de las clases de Java. GWT emula parte de la API de Java.

o GWT Web UI Class Library: contiene un conjunto de elementos de interfaz de usuario que permite la creación de objetos tales como textos, cajas de texto, imágenes , botones y otros widgets.

· El flujo de trabajo: El flujo de trabajo de desarrollo, varía con respecto al desarrollo habitual de aplicaciones JavaScript, ya que permite trabajar y depurar todo en Java hasta el momento del paso a los diferentes entornos, a continuación se detallan las diferentes pasos a seguir en el flujo permitido por GWT:

  • Permite editar código Java y visualizar los cambios inmediatamente sin tener que volver a compilar.
    • Durante el desarrollo de una aplicación, se pueden ver inmediatamente los cambios realizado en el código mediante el navegador propio de GWT. No es necesario que volver a compilar el código en JavaScript ni desplegarlo en un servidor.
  • Permite recorrer todo el código AJAX con el depurador de Java
    • En la fase de producción, el código se compila como JavaScript sin formato; sin embargo, mientras se está desarrollando la aplicación, se ejecutará en el máquina virtual como bytecode. Eso significa que, cuando el código realice una acción como gestionar un evento de ratón, se podrá depurar en Java como cualquier otra aplicación. Todo lo que pueda hacer el depurador de Java se podrá realizar también sobre el código GWT.
  • Compila e implementa código JavaScript optimizado para varios navegadores
    • Cuando la implementación esté lista, GWT compilará el código Java en archivos JavaScript independientes sin formato que estarán disponibles a través de cualquier servidor web.

· UIBinder: Permite definir la interfaz mediante xml al estilo del MXML de Flex, lo que hace mas sencillo definir la estructura de la interfaz de usuario.

o Facilita la colabroación con los desarrolladores UI que pueden trabajar con XML, HTML y CSS en lugar de con código Java.

o Separa la parte estética de su comportamiento

o Soporte internacionalización

· Vaadin: Vaadin es un framework web construido sobre GWT y que a diferencia de este opta por una arquitectura server-driven.

o Sobre GWT ofrece algunas características interesantes:

o Plugin para Entorno de Desarrollo: este tiene tanto para NetBeans como para Eclipse y como destacado ofrece un editor visual y funcionalidades para crear Componentes, Wizards, ayuda integrada.

o Despliegue: el despliegue sólo implica un JAR, de hecho su WAR de ejemplo sólo implica este JAR

o Integración con Spring

o Componentes: por un lado que ofrezca un gran conjunto de components out-of-the-box que te permitan desarrollar el 95% de tu aplicación y por otro que se puedan crear.

o lo que veo

o Soporte de la comunidad: ofrece foros, FAQs,…

o Soporte comercial:

o Ofrece un gran número de componentes:

· GWT Designer: Es un entorno de desarrollo comercial basado en la plataforma Eclipse para desarrollar aplicaciones GWT, ofrece:
  1. Diseñador WYSIWYG
  2. Wizards
  3. Completado de Tags
  4. Depuración
  5. Errores de compilación

Esta herramienta está orientada a desarrolladores GWT

  • Permite crear componentes con wizards.
  • Ofrece wizards el desarrollo orientado a datos:

Respuestas

  1. excelente y muchas gracias y como puedo conectar una base de datos access

    1. Basta con que uses el bridge ODBC-JDBC que te permite conectar por JDBC con cualquier base de datos ODBC (Access por ejemplo :))

      1. amigo y como hago para agregar en la Palette de eclipse la libreria GWT-Ext ?? porfavor podrias responderme?? he llevado muchos dias tratando de poner aquellos objetos en la palette y no encuentro como,. porfavor responder a : vvvvianey@gmail.com y si tienes algun tutorial con base de datos y ejemplos asi con patallazos publicalo porfavor te agredeceria muchiso…

  2. tenes algun tutorial como crear una aplicacion con base de datos sencilla desde cero en GWT -Ext eclipse helios??? porfavor y la publicas si puedes la mandas vvvvianey@gmail.com

    1. Lo siento, ahora mismo no tengo nada a mano. Te recomendaría cualquiera de los libros de GWt que hay publicados, son una forma muy sencilla de comenzar 🙂

Deja un comentario