www.i2e.com.es El framework Web Toolkit Emilio Emilio Bravo Garcia www.i2e.com.es  usuario mejorar Ricas desarrollo Google tecnología adelante Google realizar En esta de . presentación una la Web GWT) para Internet desarrollada de experiencia introducción . Apli acelerar Toolkit GWT c (RIA) aciones se es va una por (en del el a a y Aplicaciones de Ejemplo Despliegue Compilación Depuración yTest Comunicación conel Servidor Construyendo la Interfaz Arquitectura de GWT Introducción www.i2e.com.es El framework Google WebGoogle Toolkit www.i2e.com.es   velocidad y recargarlas, que aumentarsignificalo interactividad, la realizar cambiosnecesidad sobrede sin páginas las estaDe plano. en segundo forma servidor posible es mientras se mantienela comunicación aplicaciones se ejecutan en el interactivas o una técnica de desarrollo AJAX,acrónimode AJAX (http://es.wikipedia.org/wiki/AJAX) usabilidad RIA (Rich (Rich InternetEstasApplications). A synchronous en aplicaciones. en las web navegador para crear aplicaciones J avaScript asíncrona de los usuarios usuarios de los A nd X conel ML , es , www.i2e.com.es  de de datos con el servidor JSON para transferenciala XMLHttpRequest, XML o XTML, CSS, JavaScript, trabajan conjuntamente, a un grupo de éstas que es término un engloba que tecnología en sí, sino que AJAX no constituye una . www.i2e.com.es   sandboxes maquinas virtuales. o plugins navegador,del independientemente o vía estándaresbasadas en los navegadores,de los vía normalmente entregadas ya medio de webs sea por las características de de escritorio, aplicaciones las web aplicaciones RIAmuchas de Lason con aplicaciones ons RIA( ) http://en.wikipedia.org/wiki/Rich_internet_applicati www.i2e.com.es  una una serie de inconvenientes: DesarrollarRIAutilizandoaplicaciones JavaScript tiene ◦ ◦ ◦ ◦ JavaScript para obtener aplicaciones optimizadas. Necesidad de tener conocimientoun avanzado en JavaScript. Falta de herramientas avanzadas para el desarrollo con Modularizacion del código cuando las aplicaciones crecen. (funcione sin problemas en la mayoría de navegadores). Conseguir nuestroque código JavaScript sea cross - browser www.i2e.com.es  FrameworksJavaScript. Una primeraproblemaslos a solución anteriores los son www.i2e.com.es   experiencia usuario. del en AJAX aplicaciones RIAbasadas mejorando la herramientas para acelerar el desarrolladode En decidieron realizarGoogle nueva una de caja problemas. todos los no solucionan en muchos casos,solución los problemasanteriores buena una y pueden ser Aunque frameworkslos JavaScript de alguno solucionan www.i2e.com.es  Manifiesto GWT independientes construir las permitiendo la La experiencia misión herramientas de GWT a de los del aplicaciones los es desarrolladores navegador Java mejorar usuarios existentes radicalmente . con la utilizar para web Ajax www.i2e.com.es   Código optimizado Java aplicaciones Google que disponible Web para son AJAX los compiladas Toolkit bajo en principales el la licencia lenguaje (GWT) en navegadores Apache código de permite programación 2 . JavaScript 0 . crear www.i2e.com.es      Despliegas en JavaScript GWT compila de Pruebas en Depuras en Programas en Java Java Java Java a JavaScripta www.i2e.com.es  Porque Java? este de fuertemente También artículos existentes, Google compilación requerimiento eligió y necesitaban la además amplia tipado Java y java . sobre comunidad para cumplía un de lenguaje todo por la fase con de por las desarrolladores las librerías, herramientas libros, . www.i2e.com.es  ya necesario usuario interfaz Mejora no tendremos de la con llamar usuario experiencia la el aplicación al efecto servidor en el de de navegador, es para pagina usuario mas renderizar en . fluida, la Al blanco interacción ejecutarse las al . paginas no del ser la www.i2e.com.es  tradicionales escalabilidad Obtenemos . un que mayor con rendimiento las aplicaciones y una mejor web www.i2e.com.es El framework WebGoogle Toolkit www.i2e.com.es  GWT ◦ ◦ ◦ ◦ GWT JRE Hosted Java Emulation tiene - to Web - Web JavaScript cuatro UI Browser Class Library componentes Compiler Library . . . principales www.i2e.com.es  navegadores Java componente GWT al Java lenguaje - to mas - es JavaScript traducir utilizados JavaScript el Compiler . código compatible : desarrollado la función con del los en www.i2e.com.es  servidor embebido. servidor de Java. virtual máquina usando Utiliza la Jetty como aplicación Javasin traducirlaa JavaScript, host en modo HostedWeb Browser: este componenteejecuta la www.i2e.com.es   ES/webtoolkit/doc/ http de importantes JRE ◦ ◦ ◦ ◦ ◦ java java java java java la : Emulation //code . . . . . API sql io util lang lang de . annotation . google Java de Library las . . com/intl/es 1 clases . 6 : /RefJreEmulation contiene de Java - . las GWT bibliotecas . emula parte más www.i2e.com.es  texto, creación elementos GWT Web imágenes de UI de objetos Class interfaz , botones Library tales de y : otros usuario contiene como widgets textos, que un conjunto . permite cajas de de la www.i2e.com.es www.i2e.com.es El framework WebGoogle Toolkit www.i2e.com.es    Podemos Componentes, similares Las clases a dar Swing de estilo contendores GWT o SWT a para los . widgets la y interfaz eventos utilizando de . usuario CSS . son www.i2e.com.es    otros crear Empaquetando diseño Podemos (Eclipse,NetBeans, de Al desarrollar proyectos desarrollo módulos orientados realizar en . las reutilizables Java, abstracciones a IntelliJ) mas clases objetos podemos . en populares (OO) fáciles archivos y utilizar basados utilizar de jar los para patrones utilizar en podemos entornos Java Java . en de www.i2e.com.es  Patrón MVP en vez de MVC www.i2e.com.es  Ficheros ◦ ◦ ◦ ◦ GWT) Clase Fichero JavaScript Fichero dependencias Fichero . Java de CSS gwt Html que configuración con . xml . implementa desde los donde estilos el definimos . para que el EntryPoint una iniciamos la aplicaci aplicaci (el ó el main n ó n GWT código y para sus www.i2e.com.es  Modulo point . gwt . xml www.i2e.com.es src="  Html javascript" content='es.i2e.jornadasjava.web.JornadasJava'/>Wrapper forHTML JornadasJava jornadasJava/jornadasJava.nocache.js -- OPTIONAL: include this if this include you OPTIONAL: wanthistory support de inicio (JornadasJava "> . html) -- > www.i2e.com.es  JornadasJava } .gwt } .gwt } .gwt - - - PasswordTextBox{ RadioButton{ { Label border:1px #990000solid; background color: #FFFFFF; font font font font font font ------size:12px; family: Verdana, sans Arial, family:Verdana, sans Arial, size:12px; family:Verdana, sans Arial, size:12px; . css - color: #C89191; - - - serif; serif; serif; www.i2e.com.es  } PrincipalpublicimplementsEntryPoint,class HistoryListener { import com.google.gwt.core.client.GWT; import com.google.gwt.core.client.EntryPoint; package es.i2e.jornadasjava.web.client; EntryPoint } publicvoidonHistoryChanged(String historyToken) { } { publicvoidonModuleLoad() (JornadasJava rootPanel.add(panel); panel.setSize("100%","100%"); privateDockPanelDockPanel();= newpanel rootPanel.setSize("100%", "100%"); final RootPanelrootPanel RootPanel.get(); = History.addHistoryListener(this); //controlamos la navegacionla aplicacionpor . java) www.i2e.com.es   del usando Si interfaz manualmente necesidades, Si } return $wnd.first_name; getFirstName()/*public nativeString var“Frank”; =first_name - */; la ya equipo biblioteca tienes JSNI JSNI pueda y o código crear JSO en de puedes reutilizarlo el . clases un código JavaScript paquete de - { fuente fácilmente mezclar GWT jar puedes Java para no . satisface mediante que envolverlo JavaScript el resto tus la www.i2e.com.es } Customer{ extendsJavaScriptObject public class  public final native/* int computeAge() final public /* getLastName()native String final public getFirstName()/* native String final public final native String getArea();native String final JSO ◦ fueran tipos Nos permite utilizar código externo de de java. - { return this.getComputedAge(); } return this.getComputedAge();{ - - { return this.last_name; } return this.last_name; { { return this.first_name;} { JavaScript como si - - */; */; - */; www.i2e.com.es   estándar aplicaciones ARIA vinculación internacionalizadas Puedes es crear del la aplazada especificación RIA DOM fácilmente accesibles . con de GWT las bibliotecas del a . potentes través W 3 C de para y propiedades técnicas aplicaciones hacer las de www.i2e.com.es       GWT mosaic IT Mill Toolkit GWT Smart GWT GWT Incubator GWT - Ext www.i2e.com.es  . . GWT Designer (NetBeans) Cypal Studio for GWT, IntelliJ IDEA, gwt4nb Eclipse Google Plugin www.i2e.com.es   http://code.google.com/p/gwt Integración sencilla con apis las de Google - google - apis/ www.i2e.com.es  Mejoras ◦ ◦ ◦ ◦ programador código Particiones Construcción (StyleInjector) Inyección Interfaces introducidas JavaScript de de de usuario de . (GWT código recursos CSS . se runAsync() en declarativas guiadas en descargar GWT via función ClientBundle 2 por ) . 0 con bajo el UiBinder desarrollador del . peticion navegador . . del El www.i2e.com.es    incubator/wiki/UiBinder http sencillo Permite UIBinder