SlideShare a Scribd company logo
1 of 75
Download to read offline
www.i2e.com.es




                 El framework Google Web Toolkit
                              Emilio Bravo Garcia
www.i2e.com.es




                    En esta presentación se va a   Introducción
                     realizar una introducción a    Arquitectura de GWT
                     Google Web Toolkit (en
                     adelante GWT). GWT es una      Construyendo la Interfaz
                     tecnología desarrollada por    Comunicación con el Servidor
                     Google para acelerar el
                     desarrollo de Aplicaciones     Depuración y Test
                     Ricas de Internet (RIA) y
                                                    Compilación
                     mejorar la experiencia del
                     usuario.                       Despliegue

                                                    Aplicaciones de Ejemplo
www.i2e.com.es




                 El framework Google Web Toolkit
www.i2e.com.es




                    AJAX (http://es.wikipedia.org/wiki/AJAX)
                    AJAX, acrónimo de Asynchronous JavaScript And XML, es
                     una técnica de desarrollo web para crear aplicaciones
                     interactivas o RIA (Rich Internet Applications). Estas
                     aplicaciones se ejecutan en el navegador de los usuarios
                     mientras se mantiene la comunicación asíncrona con el
                     servidor en segundo plano. De esta forma es posible
                     realizar cambios sobre las páginas sin necesidad de
                     recargarlas, lo que significa aumentar la interactividad,
                     velocidad y usabilidad en las aplicaciones.
www.i2e.com.es




                    AJAX no constituye una
                     tecnología en sí, sino que
                     es un término que engloba
                     a un grupo de éstas que
                     trabajan conjuntamente,
                     XTML, CSS, JavaScript,
                     XMLHttpRequest, XML o
                     JSON para la transferencia
                     de datos con el servidor.
www.i2e.com.es




                    RIA(http://en.wikipedia.org/wiki/Rich_internet_applicati
                     ons)
                    La aplicaciones RIA son aplicaciones web con muchas de
                     las características de las aplicaciones de escritorio,
                     normalmente entregadas ya sea por medio de webs
                     basadas en los estándares de los navegadores, vía
                     plugins del navegador, o independientemente vía
                     sandboxes o maquinas virtuales.
www.i2e.com.es




                    Desarrollar aplicaciones RIA utilizando JavaScript tiene
                     una serie de inconvenientes:
                     ◦ Conseguir que nuestro código JavaScript sea cross-browser
                       (funcione sin problemas en la mayoría de navegadores).
                     ◦ Modularizacion del código cuando las aplicaciones crecen.
                     ◦ Falta de herramientas avanzadas para el desarrollo con
                       JavaScript.
                     ◦ Necesidad de tener un conocimiento avanzado en
                       JavaScript para obtener aplicaciones optimizadas.
www.i2e.com.es




                    Una primera solución a los problemas anteriores son los
                     Frameworks JavaScript.
www.i2e.com.es




                    Aunque los frameworks JavaScript solucionan alguno de
                     los problemas anteriores y pueden ser una buena
                     solución en muchos casos, no solucionan todos los
                     problemas.
                    En Google decidieron realizar una nueva caja de
                     herramientas para acelerar el desarrollado de
                     aplicaciones RIA basadas en AJAX mejorando la
                     experiencia del usuario.
www.i2e.com.es




                    Manifiesto GWT

                         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.
www.i2e.com.es




                    Google Web Toolkit (GWT) permite crear
                     aplicaciones AJAX en el lenguaje de programación
                     Java que son compiladas en código JavaScript
                     optimizado para los principales navegadores.
                    Código disponible bajo la licencia Apache 2.0
www.i2e.com.es




                    Programas en Java
                    Depuras en Java
                    Pruebas en Java
                    GWT compila de Java a JavaScript
                    Despliegas en JavaScript
www.i2e.com.es




                    Porque Java?
                       Google eligió Java sobre todo por las herramientas
                       existentes, además de por las librerías, libros,
                       artículos y la amplia comunidad de desarrolladores.


                       También necesitaban un lenguaje
                       fuertemente tipado para la fase
                       de compilación y java cumplía con
                       este requerimiento.
www.i2e.com.es




                    Mejora la experiencia de usuario. Al ejecutarse la
                     interfaz de usuario en el navegador, la interacción del
                     usuario con la aplicación es mas fluida, al no ser
                     necesario llamar al servidor para renderizar las paginas
                     ya no tendremos el efecto de pagina en blanco.
www.i2e.com.es




                    Obtenemos un mayor rendimiento y una mejor
                     escalabilidad que con las aplicaciones web
                     tradicionales.
www.i2e.com.es




                 El framework Google Web Toolkit
www.i2e.com.es




                    GWT tiene cuatro componentes principales

                     ◦   Java-to-JavaScript Compiler.
                     ◦   Hosted Web Browser.
                     ◦   JRE Emulation Library.
                     ◦   GWT Web UI Class Library
www.i2e.com.es




                    GWT 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.
www.i2e.com.es




                    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.
www.i2e.com.es




                    JRE Emulation Library: contiene las bibliotecas más
                     importantes de las clases de Java. GWT emula parte
                     de la API de Java.
                    http://code.google.com/intl/es-
                     ES/webtoolkit/doc/1.6/RefJreEmulation.html
                     ◦   java.lang
                     ◦   java.lang.annotation
                     ◦   java.util
                     ◦   java.io
                     ◦   java.sql
www.i2e.com.es




                    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.
www.i2e.com.es
www.i2e.com.es




                 El framework Google Web Toolkit
www.i2e.com.es




                    Las clases de GWT para la interfaz de usuario son
                     similares a Swing o SWT.
                    Componentes, contendores y eventos.
                    Podemos dar estilo a los widgets utilizando CSS.
www.i2e.com.es




                    Al desarrollar en Java, podemos utilizar los entornos
                     de desarrollo mas populares para Java
                     (Eclipse,NetBeans, IntelliJ).
                    Podemos realizar abstracciones y utilizar patrones de
                     diseño orientados a objetos (OO) basados en Java.
                    Empaquetando las clases en archivos jar podemos
                     crear módulos reutilizables fáciles de utilizar en
                     otros proyectos.
www.i2e.com.es




                    Patrón MVP en vez de MVC
www.i2e.com.es




                    Ficheros de configuración para una aplicación GWT

                     ◦ Fichero gwt.xml donde definimos la aplicación y sus
                       dependencias.
                     ◦ Fichero Html desde el que iniciamos el código
                       JavaScript
                     ◦ Fichero CSS con los estilos.
                     ◦ Clase Java que implementa el EntryPoint (el main para
                       GWT).
www.i2e.com.es




                    Modulo JornadasJava.gwt.xml

                 <module >
                        <inherits name="com.google.gwt.user.User"/>
                        <inherits name="com.google.gwt.xml.XML"/>
                        <inherits name="com.google.gwt.json.JSON"/>
                        <inherits name='com.google.gwt.gears.Gears'/>
                        <inherits name="com.google.gwt.i18n.I18N"/>

                        <entry-point class="es.i2e.jornadasjava.web.client.JornadasJava"/>
                 </module>
www.i2e.com.es




                     Html de inicio (JornadasJava.html)
                 <html>
                   <head>
                     <title>Wrapper HTML for JornadasJava</title>
                     <meta name='gwt:module' content='es.i2e.jornadasjava.web.JornadasJava'/>

                      <link type="text/css" rel='stylesheet' href='JornadasJava.css'/>

                     <script type="text/javascript" language="javascript"
                 src="jornadasJava/jornadasJava.nocache.js"></script>
                   </head>
                   <body>
                     <!-- OPTIONAL: include this if you want history support -->
                     <iframe id="__gwt_historyFrame" style="width:0;height:0;border:0"></iframe>
                   </body>
                 </html>
www.i2e.com.es




                    JornadasJava.css
                     .gwt-Label {
                             font-size: 12px;
                             font-family: Verdana, Arial, sans-serif;
                     }
                     .gwt-RadioButton{
                             font-size: 12px;
                             font-family: Verdana, Arial, sans-serif;
                     }
                     .gwt-PasswordTextBox{
                             font-family: Verdana, Arial, sans-serif;
                             font-size: 12px;
                             color: #FFFFFF;
                             background-color: #C89191;
                             border: #990000 1px solid;
                     }
www.i2e.com.es




                    EntryPoint (JornadasJava.java)
                 package es.i2e.jornadasjava.web.client;
                 import com.google.gwt.core.client.EntryPoint;
                 import com.google.gwt.core.client.GWT;

                 public class Principal implements EntryPoint, HistoryListener {
                           public void onModuleLoad() {
                                      //controlamos la navegacion por la aplicacion
                                      History.addHistoryListener(this);
                                      final RootPanel rootPanel = RootPanel.get();
                                      rootPanel.setSize("100%", "100%");
                                      private DockPanel panel = new DockPanel();
                                      panel.setSize("100%", "100%");
                                      rootPanel.add(panel);
                           }
                           public void onHistoryChanged(String historyToken) {
                           }
                 }
www.i2e.com.es




                    Si la biblioteca de clases de GWT no satisface tus
                     necesidades,       puedes      mezclar    JavaScript
                     manualmente en el código fuente Java mediante la
                     interfaz JSNI o JSO.
                    Si ya tienes código JavaScript puedes envolverlo
                     usando JSNI y crear un paquete jar para que el resto
                     del equipo pueda reutilizarlo fácilmente.
                     var first_name = “Frank”;
                     public native String getFirstName()/*-{
                     return $wnd.first_name;
                     }-*/;
www.i2e.com.es




                    JSO
                     ◦ Nos permite utilizar código externo JavaScript como si
                       fueran tipos de java.

                 public class Customer extends JavaScriptObject {
                   public final native String getFirstName() /*-{ return this.first_name; }-*/;

                     public final native String getLastName() /*-{ return this.last_name; }-*/;

                     public final native int computeAge() /*-{ return this.getComputedAge(); }-*/;

                     final native String getArea();
                 }
www.i2e.com.es




                    Puedes crear fácilmente bibliotecas y aplicaciones
                     internacionalizadas con las potentes técnicas de
                     vinculación aplazada de GWT.

                    ARIA es la especificación del W3C para hacer las
                     aplicaciones RIA accesibles a través de propiedades
                     estándar del DOM.
www.i2e.com.es




                    GWT
                    GWT Incubator
                    Smart GWT
                    GWT-Ext
                    IT Mill Toolkit
                    GWT mosaic
www.i2e.com.es




                    GWT Designer




                  Eclipse Google Plugin


                  Cypal Studio for GWT, IntelliJ IDEA, gwt4nb
                   (NetBeans)
www.i2e.com.es




                    Integración sencilla con las apis de Google
                    http://code.google.com/p/gwt-google-apis/
www.i2e.com.es




                    Mejoras introducidas en GWT 2.0

                     ◦ Interfaces de usuario declarativas con UiBinder.
                     ◦ Inyección de CSS en función del navegador
                       (StyleInjector).
                     ◦ Construcción de recursos via ClientBundle.
                     ◦ Particiones de código guiadas por el desarrollador. El
                       código JavaScript se descargar bajo peticion del
                       programador (GWT.runAsync() )
www.i2e.com.es




                    UIBinder
                    Permite definir la interfaz mediante xml, lo que hace mas
                     sencillo definir la estructura de la interfaz de usuario.
                    http://code.google.com/p/google-web-toolkit-
                     incubator/wiki/UiBinder

                      <ui:UiBinder xmlns:ui='urn:ui.com.google.gwt.uibinder'>
                      <div>
                      Hello, <span ui:field='nameSpan'/>.
                      </div>
                      </ui:UiBinder>
www.i2e.com.es




                    La CSS no se interpreta igual en todos los navegadores.
                    GWT Abstrae de la implementacion de JavaScript para los
                     diferentes navegadores pero no de la CSS.
                    En la versión 2.0 han introducido StyleInjector +
                     CssResource.
                    Diferentes Css para diferentes navegadores.
                    Modularización de Css, solo se descarga cuando se necesita.
                    http://code.google.com/p/google-web-
                     toolkit/wiki/CssResource
                                      @if user.agent safari {
                                      -webkit-border-radius: 5px;
                                      }
www.i2e.com.es




                    ImageBundle y ClientBundle

                     public interface JornadasJavaImageBundle extends ImageBundle {

                         @Resource("es/i2e/jornadasjava/icons/btn_cancel_icon.png")
                         public AbstractImagePrototype cancelButtonIcon();
                     }
www.i2e.com.es




                    GWT.runAsync() señala un punto de corte al compilador
                     de GWT.
                    Descarga lo que necesites, cuando lo necesites, lo
                     recursos (CSS, imágenes, msgs) vienen con el código que
                     los utilice.
                    Automáticamente manejado por el compilador de GWT
                    http://code.google.com/p/google-web-
                     toolkit/wiki/CodeSplitting
                                     public void onNewWaveClicked() {
                                        GWT.runAsync(new RunAsyncCallback() {
                                           public void onSuccess() {
                                             WaveCreator.createNewWave();
                                           }
                                       });
                                     }
www.i2e.com.es




                 El framework Google Web Toolkit
www.i2e.com.es




                    GWT puede comunicarse con cualquier tecnología de
                     servidor, realizando llamadas AJAX desde el cliente y
                     transportando la información utilizando JSON o XML.
www.i2e.com.es




                    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.
                    En el cliente tenemos que implementar las siguiente
                     clases:
                     ◦ JornadasJavaService.java
                     ◦ JornadasJavaServiceAsyn.java
                    En la parte servidor implementamos:
                     ◦ JornadasJavaServiceImpl.java
www.i2e.com.es




                    Código en el cliente para realizar una llamada
                     asíncrona a un servicio GWT RPC.
                 AsyncCallback asyncCallback = new LoggingAsyncHandler(){
                         public void handleFailure(Throwable caught) {
                                  System.err.println("Fallo en la carga de la configuracion");
                         }
                         public void handleSuccess(Object result) {
                                  System.out.println("Cargada la configuracion");
                         }
                 };
                 JornadasJavsa.Util.getInstance().cargarConfiguracion(asyncCallback);
www.i2e.com.es




                    Código en el servidor que recibe las llamas del
                     cliente JavaScript.
                 package es.i2e.jornadasjava.web.server.servicios.inicio;
                 import com.google.gwt.user.server.rpc.RemoteServiceServlet;
                 import es.i2e.jornadasjava.web.client.servicios.inicio.JornadasJava;
                 import es.i2e.jornadasJava.web.client.util.GwtServiceException;

                 public class JornadasJavaImpl extends RemoteServiceServlet implements JornadasJava {
                           public void cargarConfiguracion() throws GwtServiceException{

                           }
                 }
www.i2e.com.es




                    Podemos realizar llamadas remotas a servicios en cualquier
                     tecnología de servidor, en este caso deberemos manejar
                     directamente en XML o JSON los datos enviados entre cliente
                     y servidor.
www.i2e.com.es




                 El framework Google Web Toolkit
www.i2e.com.es




                    Durante el desarrollo de una aplicación, se pueden
                     ver inmediatamente los cambios realizados en el
                     código mediante el navegador de modo alojado
                     (hosted mode) de GWT. No es necesario volver a
                     compilar el código en JavaScript.
                    El código se ejecutará en la maquina virtual de Java
                     como bytecode. Todo lo que pueda hacer el
                     depurador de Java se aplicará también al código
                     GWT.
www.i2e.com.es




                    La comprobación de tipo estático en lenguaje Java
                     permite detectar una clase de errores (errores
                     ortográficos, tipos no coincidentes) en el momento
                     de la creación del código, no durante la ejecución del
                     programa, lo que aumenta la productividad y reduce
                     los errores..
www.i2e.com.es




                    A partir de GWT 2.0 se puede depurar desde el
                     navegador (Out-of-process Hosted Mode (OOPHM),
                     Podemos ejecutar la aplicación en el navegador de
                     nuestra elección y utilizar herramientas como firebug
                     mientras depuramos desde Eclipse.
www.i2e.com.es




                    GWT incluye la clase base GWTTestCase que
                     proporciona la integración con Junit.
                    GWT lanza una instancia del hosted mode para
                     ejecutar los test.
                    Mediante la herramienta junitCreator genera todo lo
                     necesario para poder ejecutar los test.
                    También podemos utilizar herramientas como
                     Selenium o WebDriver para realizar los test de la
                     interfaz de usuario.
www.i2e.com.es




                    En GWT 2.0 se HtmlUnit para ejecutar los test
                     basado en GWTTestCase, antes de la versión 2.0
                     GWTTestCase estaba basado en SWT y código nativo
                     de los navegadores para ejecutar los tets. Por lo
                     tanto ejecutar los test requerìa ejecutar el
                     navegador. Al estar HtmlUnit escrito enteramente en
                     Java no necesitaremos ejecutar el navegador.
                     Podremos depurar los test desde el depurador de
                     Java.
www.i2e.com.es




                 El framework Google Web Toolkit
www.i2e.com.es




                    GWT compila el código Java en
                     archivos JavaScript
                     independientes que estarán
                     disponibles a través de
                     cualquier servidor web. Las
                     aplicaciones GWT admiten
                     automáticamente los
                     navegadores IE, Firefox,
                     Mozilla, Safari y Opera. Escribe
                     el código una vez y GWT lo
                     convertirá al formato
                     JavaScript más adecuado para
                     el navegador de cada usuario.
www.i2e.com.es
www.i2e.com.es




                    Los desarrolladores de gwt creen firmemente que
                     gwt genera mejor codigo javaScript que el que
                     podemos obtener desarrollandolo manualmente.

                    El compilador tambien realiza una optimizacion del
                     tamaño de los archivos GWT para que el envio al
                     cliente sea lo mas rapido posible
www.i2e.com.es




                 El framework Google Web Toolkit
www.i2e.com.es




                    Las aplicaciones de GWT se empaquetan en un war y
                     se pueden desplegar en cualquier contenedor de
                     Servlets estándar.
                    Si no hemos utilizado Java para los servicios remotos
                     podemos desplegar en cualquier servidor web http
                     como Apache.
                    Se puede utilizar ant o maven para automatizar el
                     proceso de compilación, empaquetamiento y
                     despliegue.
www.i2e.com.es




                    GWT genera un archivo
                     optimizado    para    cada
                     navegador soportado por el
                     compilador .
                    Cuando un navegador se
                     conecta a GWT el archivo
                     nocache.js   detecta     el
                     navegador del cliente y le
                     envía el código JavaScript
                     generado     para      ese
                     navegador.
www.i2e.com.es




                 El framework Google Web Toolkit
www.i2e.com.es
www.i2e.com.es
www.i2e.com.es
www.i2e.com.es
www.i2e.com.es
www.i2e.com.es
www.i2e.com.es
www.i2e.com.es
www.i2e.com.es
www.i2e.com.es
www.i2e.com.es




                    http://code.google.com/intl/es-ES/webtoolkit/
                    http://code.google.com/intl/es-
                     ES/webtoolkit/doc/1.6/DevGuide.html
                    http://gwtgallery.appspot.com/
                    http://code.google.com/intl/es-
                     ES/events/io/sessions.html#gwt
                    http://groups.google.com/group/Google-Web-
                     Toolkit
www.i2e.com.es
www.i2e.com.es




                    http://www.i2e.com.es
                    Twitter: i2e_es
                    emilio@i2e.com.es
                    i2e@i2e.com.es

More Related Content

What's hot

GWT: Why GWT, GQuery, and RequestFactory
GWT: Why GWT, GQuery, and RequestFactoryGWT: Why GWT, GQuery, and RequestFactory
GWT: Why GWT, GQuery, and RequestFactoryManuel Carrasco Moñino
 
Gwt seminario java_hispano_manolocarrasco
Gwt seminario java_hispano_manolocarrascoGwt seminario java_hispano_manolocarrasco
Gwt seminario java_hispano_manolocarrascoManuel Carrasco Moñino
 
Liferay themestraining lr6.2-es_v1.0
Liferay themestraining lr6.2-es_v1.0Liferay themestraining lr6.2-es_v1.0
Liferay themestraining lr6.2-es_v1.0Juan Gallardo Ortiz
 
J query el framework de la web luc van lancker-1504
J query el framework de la web    luc van lancker-1504J query el framework de la web    luc van lancker-1504
J query el framework de la web luc van lancker-1504Vanessa Carlos
 
Google Web Toolkit (GWT) en entornos empresariales
Google Web Toolkit (GWT) en entornos empresarialesGoogle Web Toolkit (GWT) en entornos empresariales
Google Web Toolkit (GWT) en entornos empresarialesTecsisa
 
introduccion java a caracteristicas
introduccion java a caracteristicasintroduccion java a caracteristicas
introduccion java a caracteristicasExpediaTravel
 
Genasys sigte2011 open_geogadget_framework (OGF)
Genasys sigte2011 open_geogadget_framework (OGF)Genasys sigte2011 open_geogadget_framework (OGF)
Genasys sigte2011 open_geogadget_framework (OGF)Javier Sánchez
 
Presentacion Drupal Ccrtv
Presentacion Drupal CcrtvPresentacion Drupal Ccrtv
Presentacion Drupal CcrtvPedro Cambra
 
Corriendo SQL Server en Docker
Corriendo SQL Server en DockerCorriendo SQL Server en Docker
Corriendo SQL Server en DockerJavier Villegas
 
Israel tecnologias para desarrollo-web
Israel tecnologias para desarrollo-webIsrael tecnologias para desarrollo-web
Israel tecnologias para desarrollo-webimei_02
 
Desarrollo de Aplicaciones Moviles en Android: Temas Avanzados
Desarrollo de Aplicaciones Moviles en Android: Temas AvanzadosDesarrollo de Aplicaciones Moviles en Android: Temas Avanzados
Desarrollo de Aplicaciones Moviles en Android: Temas AvanzadosGabriel Huecas
 
web 2.0 maria y miriam
web 2.0 maria y miriamweb 2.0 maria y miriam
web 2.0 maria y miriammariaymiriam
 
Curso Iniciacion android
Curso Iniciacion androidCurso Iniciacion android
Curso Iniciacion androidZix Stdio
 
Investigación y comparativa cms
Investigación y comparativa cmsInvestigación y comparativa cms
Investigación y comparativa cmspsvasir
 
Introducción a Java EE
Introducción a Java EEIntroducción a Java EE
Introducción a Java EEPaco Saucedo
 

What's hot (20)

GWT: Why GWT, GQuery, and RequestFactory
GWT: Why GWT, GQuery, and RequestFactoryGWT: Why GWT, GQuery, and RequestFactory
GWT: Why GWT, GQuery, and RequestFactory
 
Gwt seminario java_hispano_manolocarrasco
Gwt seminario java_hispano_manolocarrascoGwt seminario java_hispano_manolocarrasco
Gwt seminario java_hispano_manolocarrasco
 
Liferay themestraining lr6.2-es_v1.0
Liferay themestraining lr6.2-es_v1.0Liferay themestraining lr6.2-es_v1.0
Liferay themestraining lr6.2-es_v1.0
 
2012 ucm-magister-cms-gestores-jesusflores
2012 ucm-magister-cms-gestores-jesusflores2012 ucm-magister-cms-gestores-jesusflores
2012 ucm-magister-cms-gestores-jesusflores
 
J query el framework de la web luc van lancker-1504
J query el framework de la web    luc van lancker-1504J query el framework de la web    luc van lancker-1504
J query el framework de la web luc van lancker-1504
 
Google Web Toolkit (GWT) en entornos empresariales
Google Web Toolkit (GWT) en entornos empresarialesGoogle Web Toolkit (GWT) en entornos empresariales
Google Web Toolkit (GWT) en entornos empresariales
 
introduccion java a caracteristicas
introduccion java a caracteristicasintroduccion java a caracteristicas
introduccion java a caracteristicas
 
Genasys sigte2011 open_geogadget_framework (OGF)
Genasys sigte2011 open_geogadget_framework (OGF)Genasys sigte2011 open_geogadget_framework (OGF)
Genasys sigte2011 open_geogadget_framework (OGF)
 
JqueryMobile
JqueryMobile JqueryMobile
JqueryMobile
 
Presentacion Drupal Ccrtv
Presentacion Drupal CcrtvPresentacion Drupal Ccrtv
Presentacion Drupal Ccrtv
 
Corriendo SQL Server en Docker
Corriendo SQL Server en DockerCorriendo SQL Server en Docker
Corriendo SQL Server en Docker
 
Israel tecnologias para desarrollo-web
Israel tecnologias para desarrollo-webIsrael tecnologias para desarrollo-web
Israel tecnologias para desarrollo-web
 
Desarrollo de Aplicaciones Moviles en Android: Temas Avanzados
Desarrollo de Aplicaciones Moviles en Android: Temas AvanzadosDesarrollo de Aplicaciones Moviles en Android: Temas Avanzados
Desarrollo de Aplicaciones Moviles en Android: Temas Avanzados
 
web 2.0 maria y miriam
web 2.0 maria y miriamweb 2.0 maria y miriam
web 2.0 maria y miriam
 
Desarrollo de la web
Desarrollo de la webDesarrollo de la web
Desarrollo de la web
 
Curso Iniciacion android
Curso Iniciacion androidCurso Iniciacion android
Curso Iniciacion android
 
Investigación y comparativa cms
Investigación y comparativa cmsInvestigación y comparativa cms
Investigación y comparativa cms
 
Introducción a Java EE
Introducción a Java EEIntroducción a Java EE
Introducción a Java EE
 
Arquitectura java web
Arquitectura java webArquitectura java web
Arquitectura java web
 
Fundamentos Básicos de Visual Basic
Fundamentos Básicos de Visual BasicFundamentos Básicos de Visual Basic
Fundamentos Básicos de Visual Basic
 

Similar to Presentacion Google Web Toolkit

Aprendiendo a Programas en 4 horas JavaScript
Aprendiendo a Programas en 4 horas JavaScriptAprendiendo a Programas en 4 horas JavaScript
Aprendiendo a Programas en 4 horas JavaScriptKarsarmi
 
Linea del tiempo de los frameworks
Linea del tiempo de los frameworksLinea del tiempo de los frameworks
Linea del tiempo de los frameworksJose Alejandro
 
TEMA Nº 1: INTRODUCCIÓN A J2EE
TEMA Nº 1: INTRODUCCIÓN A J2EETEMA Nº 1: INTRODUCCIÓN A J2EE
TEMA Nº 1: INTRODUCCIÓN A J2EEanyeni
 
TEMA Nº 1: INTRODUCCIÓN A J2EE
TEMA Nº 1: INTRODUCCIÓN A J2EETEMA Nº 1: INTRODUCCIÓN A J2EE
TEMA Nº 1: INTRODUCCIÓN A J2EEAnyeni Garay
 
Articulo tipos de ide y ajax control toolkit
Articulo   tipos de ide y ajax control toolkitArticulo   tipos de ide y ajax control toolkit
Articulo tipos de ide y ajax control toolkitCesar Escalante
 
Herramientas de desarrollo.pptx
Herramientas de desarrollo.pptxHerramientas de desarrollo.pptx
Herramientas de desarrollo.pptxNicolasCBarrantes
 
MEJORES PROGRAMAS PARA DISEÑAR PAGINA WEB
MEJORES PROGRAMAS PARA DISEÑAR PAGINA WEBMEJORES PROGRAMAS PARA DISEÑAR PAGINA WEB
MEJORES PROGRAMAS PARA DISEÑAR PAGINA WEBdaliacarolinaastocah
 
EQUIPO 2,2A PARTE DE REVISION DE TECNOLOGIAS WEB
EQUIPO 2,2A PARTE DE REVISION DE TECNOLOGIAS WEBEQUIPO 2,2A PARTE DE REVISION DE TECNOLOGIAS WEB
EQUIPO 2,2A PARTE DE REVISION DE TECNOLOGIAS WEBUNIV DE CIENCIAS Y ARTES
 
EQUIPO 2,2A PARTE DE REVISION DE TECNOLOGIAS WEB
EQUIPO 2,2A PARTE DE REVISION DE TECNOLOGIAS WEBEQUIPO 2,2A PARTE DE REVISION DE TECNOLOGIAS WEB
EQUIPO 2,2A PARTE DE REVISION DE TECNOLOGIAS WEBUNIV DE CIENCIAS Y ARTES
 
Manual de jquery en pdf desarrollowebcom
Manual de jquery en pdf desarrollowebcomManual de jquery en pdf desarrollowebcom
Manual de jquery en pdf desarrollowebcomjo_ram
 
Desarrollo.de.aplicaciones.con.java
Desarrollo.de.aplicaciones.con.javaDesarrollo.de.aplicaciones.con.java
Desarrollo.de.aplicaciones.con.javaSantiago Sora
 
Los diferentes lenguajes de programación para la web
Los diferentes lenguajes de programación para la webLos diferentes lenguajes de programación para la web
Los diferentes lenguajes de programación para la webCartagena, Bolivar
 
Los diferentes lenguajes de programación para la web
Los diferentes lenguajes de programación para la webLos diferentes lenguajes de programación para la web
Los diferentes lenguajes de programación para la webCartagena, Bolivar
 

Similar to Presentacion Google Web Toolkit (20)

Aprendiendo GWT
Aprendiendo GWTAprendiendo GWT
Aprendiendo GWT
 
Aprendiendo a Programas en 4 horas JavaScript
Aprendiendo a Programas en 4 horas JavaScriptAprendiendo a Programas en 4 horas JavaScript
Aprendiendo a Programas en 4 horas JavaScript
 
Gwt I - entendiendo gwt
Gwt I - entendiendo gwtGwt I - entendiendo gwt
Gwt I - entendiendo gwt
 
Linea del tiempo de los frameworks
Linea del tiempo de los frameworksLinea del tiempo de los frameworks
Linea del tiempo de los frameworks
 
TEMA Nº 1: INTRODUCCIÓN A J2EE
TEMA Nº 1: INTRODUCCIÓN A J2EETEMA Nº 1: INTRODUCCIÓN A J2EE
TEMA Nº 1: INTRODUCCIÓN A J2EE
 
TEMA Nº 1: INTRODUCCIÓN A J2EE
TEMA Nº 1: INTRODUCCIÓN A J2EETEMA Nº 1: INTRODUCCIÓN A J2EE
TEMA Nº 1: INTRODUCCIÓN A J2EE
 
Articulo tipos de ide y ajax control toolkit
Articulo   tipos de ide y ajax control toolkitArticulo   tipos de ide y ajax control toolkit
Articulo tipos de ide y ajax control toolkit
 
Herramientas de desarrollo.pptx
Herramientas de desarrollo.pptxHerramientas de desarrollo.pptx
Herramientas de desarrollo.pptx
 
MEJORES PROGRAMAS PARA DISEÑAR PAGINA WEB
MEJORES PROGRAMAS PARA DISEÑAR PAGINA WEBMEJORES PROGRAMAS PARA DISEÑAR PAGINA WEB
MEJORES PROGRAMAS PARA DISEÑAR PAGINA WEB
 
EQUIPO 2,2A PARTE DE REVISION DE TECNOLOGIAS WEB
EQUIPO 2,2A PARTE DE REVISION DE TECNOLOGIAS WEBEQUIPO 2,2A PARTE DE REVISION DE TECNOLOGIAS WEB
EQUIPO 2,2A PARTE DE REVISION DE TECNOLOGIAS WEB
 
EQUIPO 2,2A PARTE DE REVISION DE TECNOLOGIAS WEB
EQUIPO 2,2A PARTE DE REVISION DE TECNOLOGIAS WEBEQUIPO 2,2A PARTE DE REVISION DE TECNOLOGIAS WEB
EQUIPO 2,2A PARTE DE REVISION DE TECNOLOGIAS WEB
 
Java Scripts
Java ScriptsJava Scripts
Java Scripts
 
EQUIPO 2,2A PARTE DE LAS AGUILAS
EQUIPO 2,2A PARTE DE LAS AGUILASEQUIPO 2,2A PARTE DE LAS AGUILAS
EQUIPO 2,2A PARTE DE LAS AGUILAS
 
Manual de jquery en pdf desarrollowebcom
Manual de jquery en pdf desarrollowebcomManual de jquery en pdf desarrollowebcom
Manual de jquery en pdf desarrollowebcom
 
Dreamweaver
DreamweaverDreamweaver
Dreamweaver
 
Dreamweaver
DreamweaverDreamweaver
Dreamweaver
 
Google Web Toolkit
Google Web ToolkitGoogle Web Toolkit
Google Web Toolkit
 
Desarrollo.de.aplicaciones.con.java
Desarrollo.de.aplicaciones.con.javaDesarrollo.de.aplicaciones.con.java
Desarrollo.de.aplicaciones.con.java
 
Los diferentes lenguajes de programación para la web
Los diferentes lenguajes de programación para la webLos diferentes lenguajes de programación para la web
Los diferentes lenguajes de programación para la web
 
Los diferentes lenguajes de programación para la web
Los diferentes lenguajes de programación para la webLos diferentes lenguajes de programación para la web
Los diferentes lenguajes de programación para la web
 

More from Ingenieria Informatica Empresarial (7)

Presentacion practicas externas I2E
Presentacion practicas externas I2EPresentacion practicas externas I2E
Presentacion practicas externas I2E
 
Nuestra experiencia Emprendiendo
Nuestra experiencia EmprendiendoNuestra experiencia Emprendiendo
Nuestra experiencia Emprendiendo
 
Scrum y ecosistema software en i2e
Scrum y ecosistema software en i2eScrum y ecosistema software en i2e
Scrum y ecosistema software en i2e
 
Proceso MDA y Scrum v2
Proceso MDA y Scrum v2Proceso MDA y Scrum v2
Proceso MDA y Scrum v2
 
Proceso MDA y Scrum
Proceso MDA y ScrumProceso MDA y Scrum
Proceso MDA y Scrum
 
Presentación Tecnológica del ERP-I2E
Presentación Tecnológica del ERP-I2EPresentación Tecnológica del ERP-I2E
Presentación Tecnológica del ERP-I2E
 
Web 2.0 y Redes Sociales
Web 2.0 y Redes SocialesWeb 2.0 y Redes Sociales
Web 2.0 y Redes Sociales
 

Recently uploaded

KELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesKELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesFundación YOD YOD
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfsoporteupcology
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan JosephBRAYANJOSEPHPEREZGOM
 
Herramientas de corte de alta velocidad.pptx
Herramientas de corte de alta velocidad.pptxHerramientas de corte de alta velocidad.pptx
Herramientas de corte de alta velocidad.pptxRogerPrieto3
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíassuserf18419
 
9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudianteAndreaHuertas24
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx241521559
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricKeyla Dolores Méndez
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITMaricarmen Sánchez Ruiz
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...silviayucra2
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIAWilbisVega
 
Presentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxPresentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxLolaBunny11
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdfIsabellaMontaomurill
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)GDGSucre
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveFagnerLisboa3
 

Recently uploaded (15)

KELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesKELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento Protégeles
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdf
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Joseph
 
Herramientas de corte de alta velocidad.pptx
Herramientas de corte de alta velocidad.pptxHerramientas de corte de alta velocidad.pptx
Herramientas de corte de alta velocidad.pptx
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnología
 
9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNIT
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
 
Presentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxPresentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptx
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdf
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial Uninove
 

Presentacion Google Web Toolkit

  • 1. www.i2e.com.es El framework Google Web Toolkit Emilio Bravo Garcia
  • 2. www.i2e.com.es  En esta presentación se va a Introducción realizar una introducción a Arquitectura de GWT Google Web Toolkit (en adelante GWT). GWT es una Construyendo la Interfaz tecnología desarrollada por Comunicación con el Servidor Google para acelerar el desarrollo de Aplicaciones Depuración y Test Ricas de Internet (RIA) y Compilación mejorar la experiencia del usuario. Despliegue Aplicaciones de Ejemplo
  • 3. www.i2e.com.es El framework Google Web Toolkit
  • 4. www.i2e.com.es  AJAX (http://es.wikipedia.org/wiki/AJAX)  AJAX, acrónimo de Asynchronous JavaScript And XML, es una técnica de desarrollo web para crear aplicaciones interactivas o RIA (Rich Internet Applications). Estas aplicaciones se ejecutan en el navegador de los usuarios mientras se mantiene la comunicación asíncrona con el servidor en segundo plano. De esta forma es posible realizar cambios sobre las páginas sin necesidad de recargarlas, lo que significa aumentar la interactividad, velocidad y usabilidad en las aplicaciones.
  • 5. www.i2e.com.es  AJAX no constituye una tecnología en sí, sino que es un término que engloba a un grupo de éstas que trabajan conjuntamente, XTML, CSS, JavaScript, XMLHttpRequest, XML o JSON para la transferencia de datos con el servidor.
  • 6. www.i2e.com.es  RIA(http://en.wikipedia.org/wiki/Rich_internet_applicati ons)  La aplicaciones RIA son aplicaciones web con muchas de las características de las aplicaciones de escritorio, normalmente entregadas ya sea por medio de webs basadas en los estándares de los navegadores, vía plugins del navegador, o independientemente vía sandboxes o maquinas virtuales.
  • 7. www.i2e.com.es  Desarrollar aplicaciones RIA utilizando JavaScript tiene una serie de inconvenientes: ◦ Conseguir que nuestro código JavaScript sea cross-browser (funcione sin problemas en la mayoría de navegadores). ◦ Modularizacion del código cuando las aplicaciones crecen. ◦ Falta de herramientas avanzadas para el desarrollo con JavaScript. ◦ Necesidad de tener un conocimiento avanzado en JavaScript para obtener aplicaciones optimizadas.
  • 8. www.i2e.com.es  Una primera solución a los problemas anteriores son los Frameworks JavaScript.
  • 9. www.i2e.com.es  Aunque los frameworks JavaScript solucionan alguno de los problemas anteriores y pueden ser una buena solución en muchos casos, no solucionan todos los problemas.  En Google decidieron realizar una nueva caja de herramientas para acelerar el desarrollado de aplicaciones RIA basadas en AJAX mejorando la experiencia del usuario.
  • 10. www.i2e.com.es  Manifiesto GWT 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.
  • 11. www.i2e.com.es  Google Web Toolkit (GWT) permite crear aplicaciones AJAX en el lenguaje de programación Java que son compiladas en código JavaScript optimizado para los principales navegadores.  Código disponible bajo la licencia Apache 2.0
  • 12. www.i2e.com.es  Programas en Java  Depuras en Java  Pruebas en Java  GWT compila de Java a JavaScript  Despliegas en JavaScript
  • 13. www.i2e.com.es  Porque Java? Google eligió Java sobre todo por las herramientas existentes, además de por las librerías, libros, artículos y la amplia comunidad de desarrolladores. También necesitaban un lenguaje fuertemente tipado para la fase de compilación y java cumplía con este requerimiento.
  • 14. www.i2e.com.es  Mejora la experiencia de usuario. Al ejecutarse la interfaz de usuario en el navegador, la interacción del usuario con la aplicación es mas fluida, al no ser necesario llamar al servidor para renderizar las paginas ya no tendremos el efecto de pagina en blanco.
  • 15. www.i2e.com.es  Obtenemos un mayor rendimiento y una mejor escalabilidad que con las aplicaciones web tradicionales.
  • 16. www.i2e.com.es El framework Google Web Toolkit
  • 17. www.i2e.com.es  GWT tiene cuatro componentes principales ◦ Java-to-JavaScript Compiler. ◦ Hosted Web Browser. ◦ JRE Emulation Library. ◦ GWT Web UI Class Library
  • 18. www.i2e.com.es  GWT 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.
  • 19. www.i2e.com.es  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.
  • 20. www.i2e.com.es  JRE Emulation Library: contiene las bibliotecas más importantes de las clases de Java. GWT emula parte de la API de Java.  http://code.google.com/intl/es- ES/webtoolkit/doc/1.6/RefJreEmulation.html ◦ java.lang ◦ java.lang.annotation ◦ java.util ◦ java.io ◦ java.sql
  • 21. www.i2e.com.es  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.
  • 23. www.i2e.com.es El framework Google Web Toolkit
  • 24. www.i2e.com.es  Las clases de GWT para la interfaz de usuario son similares a Swing o SWT.  Componentes, contendores y eventos.  Podemos dar estilo a los widgets utilizando CSS.
  • 25. www.i2e.com.es  Al desarrollar en Java, podemos utilizar los entornos de desarrollo mas populares para Java (Eclipse,NetBeans, IntelliJ).  Podemos realizar abstracciones y utilizar patrones de diseño orientados a objetos (OO) basados en Java.  Empaquetando las clases en archivos jar podemos crear módulos reutilizables fáciles de utilizar en otros proyectos.
  • 26. www.i2e.com.es  Patrón MVP en vez de MVC
  • 27. www.i2e.com.es  Ficheros de configuración para una aplicación GWT ◦ Fichero gwt.xml donde definimos la aplicación y sus dependencias. ◦ Fichero Html desde el que iniciamos el código JavaScript ◦ Fichero CSS con los estilos. ◦ Clase Java que implementa el EntryPoint (el main para GWT).
  • 28. www.i2e.com.es  Modulo JornadasJava.gwt.xml <module > <inherits name="com.google.gwt.user.User"/> <inherits name="com.google.gwt.xml.XML"/> <inherits name="com.google.gwt.json.JSON"/> <inherits name='com.google.gwt.gears.Gears'/> <inherits name="com.google.gwt.i18n.I18N"/> <entry-point class="es.i2e.jornadasjava.web.client.JornadasJava"/> </module>
  • 29. www.i2e.com.es  Html de inicio (JornadasJava.html) <html> <head> <title>Wrapper HTML for JornadasJava</title> <meta name='gwt:module' content='es.i2e.jornadasjava.web.JornadasJava'/> <link type="text/css" rel='stylesheet' href='JornadasJava.css'/> <script type="text/javascript" language="javascript" src="jornadasJava/jornadasJava.nocache.js"></script> </head> <body> <!-- OPTIONAL: include this if you want history support --> <iframe id="__gwt_historyFrame" style="width:0;height:0;border:0"></iframe> </body> </html>
  • 30. www.i2e.com.es  JornadasJava.css .gwt-Label { font-size: 12px; font-family: Verdana, Arial, sans-serif; } .gwt-RadioButton{ font-size: 12px; font-family: Verdana, Arial, sans-serif; } .gwt-PasswordTextBox{ font-family: Verdana, Arial, sans-serif; font-size: 12px; color: #FFFFFF; background-color: #C89191; border: #990000 1px solid; }
  • 31. www.i2e.com.es  EntryPoint (JornadasJava.java) package es.i2e.jornadasjava.web.client; import com.google.gwt.core.client.EntryPoint; import com.google.gwt.core.client.GWT; public class Principal implements EntryPoint, HistoryListener { public void onModuleLoad() { //controlamos la navegacion por la aplicacion History.addHistoryListener(this); final RootPanel rootPanel = RootPanel.get(); rootPanel.setSize("100%", "100%"); private DockPanel panel = new DockPanel(); panel.setSize("100%", "100%"); rootPanel.add(panel); } public void onHistoryChanged(String historyToken) { } }
  • 32. www.i2e.com.es  Si la biblioteca de clases de GWT no satisface tus necesidades, puedes mezclar JavaScript manualmente en el código fuente Java mediante la interfaz JSNI o JSO.  Si ya tienes código JavaScript puedes envolverlo usando JSNI y crear un paquete jar para que el resto del equipo pueda reutilizarlo fácilmente. var first_name = “Frank”; public native String getFirstName()/*-{ return $wnd.first_name; }-*/;
  • 33. www.i2e.com.es  JSO ◦ Nos permite utilizar código externo JavaScript como si fueran tipos de java. public class Customer extends JavaScriptObject { public final native String getFirstName() /*-{ return this.first_name; }-*/; public final native String getLastName() /*-{ return this.last_name; }-*/; public final native int computeAge() /*-{ return this.getComputedAge(); }-*/; final native String getArea(); }
  • 34. www.i2e.com.es  Puedes crear fácilmente bibliotecas y aplicaciones internacionalizadas con las potentes técnicas de vinculación aplazada de GWT.  ARIA es la especificación del W3C para hacer las aplicaciones RIA accesibles a través de propiedades estándar del DOM.
  • 35. www.i2e.com.es  GWT  GWT Incubator  Smart GWT  GWT-Ext  IT Mill Toolkit  GWT mosaic
  • 36. www.i2e.com.es  GWT Designer  Eclipse Google Plugin  Cypal Studio for GWT, IntelliJ IDEA, gwt4nb (NetBeans)
  • 37. www.i2e.com.es  Integración sencilla con las apis de Google  http://code.google.com/p/gwt-google-apis/
  • 38. www.i2e.com.es  Mejoras introducidas en GWT 2.0 ◦ Interfaces de usuario declarativas con UiBinder. ◦ Inyección de CSS en función del navegador (StyleInjector). ◦ Construcción de recursos via ClientBundle. ◦ Particiones de código guiadas por el desarrollador. El código JavaScript se descargar bajo peticion del programador (GWT.runAsync() )
  • 39. www.i2e.com.es  UIBinder  Permite definir la interfaz mediante xml, lo que hace mas sencillo definir la estructura de la interfaz de usuario.  http://code.google.com/p/google-web-toolkit- incubator/wiki/UiBinder <ui:UiBinder xmlns:ui='urn:ui.com.google.gwt.uibinder'> <div> Hello, <span ui:field='nameSpan'/>. </div> </ui:UiBinder>
  • 40. www.i2e.com.es  La CSS no se interpreta igual en todos los navegadores.  GWT Abstrae de la implementacion de JavaScript para los diferentes navegadores pero no de la CSS.  En la versión 2.0 han introducido StyleInjector + CssResource.  Diferentes Css para diferentes navegadores.  Modularización de Css, solo se descarga cuando se necesita.  http://code.google.com/p/google-web- toolkit/wiki/CssResource @if user.agent safari { -webkit-border-radius: 5px; }
  • 41. www.i2e.com.es  ImageBundle y ClientBundle public interface JornadasJavaImageBundle extends ImageBundle { @Resource("es/i2e/jornadasjava/icons/btn_cancel_icon.png") public AbstractImagePrototype cancelButtonIcon(); }
  • 42. www.i2e.com.es  GWT.runAsync() señala un punto de corte al compilador de GWT.  Descarga lo que necesites, cuando lo necesites, lo recursos (CSS, imágenes, msgs) vienen con el código que los utilice.  Automáticamente manejado por el compilador de GWT  http://code.google.com/p/google-web- toolkit/wiki/CodeSplitting public void onNewWaveClicked() { GWT.runAsync(new RunAsyncCallback() { public void onSuccess() { WaveCreator.createNewWave(); } }); }
  • 43. www.i2e.com.es El framework Google Web Toolkit
  • 44. www.i2e.com.es  GWT puede comunicarse con cualquier tecnología de servidor, realizando llamadas AJAX desde el cliente y transportando la información utilizando JSON o XML.
  • 45. www.i2e.com.es  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.  En el cliente tenemos que implementar las siguiente clases: ◦ JornadasJavaService.java ◦ JornadasJavaServiceAsyn.java  En la parte servidor implementamos: ◦ JornadasJavaServiceImpl.java
  • 46. www.i2e.com.es  Código en el cliente para realizar una llamada asíncrona a un servicio GWT RPC. AsyncCallback asyncCallback = new LoggingAsyncHandler(){ public void handleFailure(Throwable caught) { System.err.println("Fallo en la carga de la configuracion"); } public void handleSuccess(Object result) { System.out.println("Cargada la configuracion"); } }; JornadasJavsa.Util.getInstance().cargarConfiguracion(asyncCallback);
  • 47. www.i2e.com.es  Código en el servidor que recibe las llamas del cliente JavaScript. package es.i2e.jornadasjava.web.server.servicios.inicio; import com.google.gwt.user.server.rpc.RemoteServiceServlet; import es.i2e.jornadasjava.web.client.servicios.inicio.JornadasJava; import es.i2e.jornadasJava.web.client.util.GwtServiceException; public class JornadasJavaImpl extends RemoteServiceServlet implements JornadasJava { public void cargarConfiguracion() throws GwtServiceException{ } }
  • 48. www.i2e.com.es  Podemos realizar llamadas remotas a servicios en cualquier tecnología de servidor, en este caso deberemos manejar directamente en XML o JSON los datos enviados entre cliente y servidor.
  • 49. www.i2e.com.es El framework Google Web Toolkit
  • 50. www.i2e.com.es  Durante el desarrollo de una aplicación, se pueden ver inmediatamente los cambios realizados en el código mediante el navegador de modo alojado (hosted mode) de GWT. No es necesario volver a compilar el código en JavaScript.  El código se ejecutará en la maquina virtual de Java como bytecode. Todo lo que pueda hacer el depurador de Java se aplicará también al código GWT.
  • 51. www.i2e.com.es  La comprobación de tipo estático en lenguaje Java permite detectar una clase de errores (errores ortográficos, tipos no coincidentes) en el momento de la creación del código, no durante la ejecución del programa, lo que aumenta la productividad y reduce los errores..
  • 52. www.i2e.com.es  A partir de GWT 2.0 se puede depurar desde el navegador (Out-of-process Hosted Mode (OOPHM), Podemos ejecutar la aplicación en el navegador de nuestra elección y utilizar herramientas como firebug mientras depuramos desde Eclipse.
  • 53. www.i2e.com.es  GWT incluye la clase base GWTTestCase que proporciona la integración con Junit.  GWT lanza una instancia del hosted mode para ejecutar los test.  Mediante la herramienta junitCreator genera todo lo necesario para poder ejecutar los test.  También podemos utilizar herramientas como Selenium o WebDriver para realizar los test de la interfaz de usuario.
  • 54. www.i2e.com.es  En GWT 2.0 se HtmlUnit para ejecutar los test basado en GWTTestCase, antes de la versión 2.0 GWTTestCase estaba basado en SWT y código nativo de los navegadores para ejecutar los tets. Por lo tanto ejecutar los test requerìa ejecutar el navegador. Al estar HtmlUnit escrito enteramente en Java no necesitaremos ejecutar el navegador. Podremos depurar los test desde el depurador de Java.
  • 55. www.i2e.com.es El framework Google Web Toolkit
  • 56. www.i2e.com.es  GWT compila el código Java en archivos JavaScript independientes que estarán disponibles a través de cualquier servidor web. Las aplicaciones GWT admiten automáticamente los navegadores IE, Firefox, Mozilla, Safari y Opera. Escribe el código una vez y GWT lo convertirá al formato JavaScript más adecuado para el navegador de cada usuario.
  • 58. www.i2e.com.es  Los desarrolladores de gwt creen firmemente que gwt genera mejor codigo javaScript que el que podemos obtener desarrollandolo manualmente.  El compilador tambien realiza una optimizacion del tamaño de los archivos GWT para que el envio al cliente sea lo mas rapido posible
  • 59. www.i2e.com.es El framework Google Web Toolkit
  • 60. www.i2e.com.es  Las aplicaciones de GWT se empaquetan en un war y se pueden desplegar en cualquier contenedor de Servlets estándar.  Si no hemos utilizado Java para los servicios remotos podemos desplegar en cualquier servidor web http como Apache.  Se puede utilizar ant o maven para automatizar el proceso de compilación, empaquetamiento y despliegue.
  • 61. www.i2e.com.es  GWT genera un archivo optimizado para cada navegador soportado por el compilador .  Cuando un navegador se conecta a GWT el archivo nocache.js detecta el navegador del cliente y le envía el código JavaScript generado para ese navegador.
  • 62. www.i2e.com.es El framework Google Web Toolkit
  • 73. www.i2e.com.es  http://code.google.com/intl/es-ES/webtoolkit/  http://code.google.com/intl/es- ES/webtoolkit/doc/1.6/DevGuide.html  http://gwtgallery.appspot.com/  http://code.google.com/intl/es- ES/events/io/sessions.html#gwt  http://groups.google.com/group/Google-Web- Toolkit
  • 75. www.i2e.com.es  http://www.i2e.com.es  Twitter: i2e_es  emilio@i2e.com.es  i2e@i2e.com.es