Download - Google Web Toolkit - tutorial
Google Web Toolkittutorial
Anişoara Sava, OC2
Marcela-Daniela Mihai, OC2
Universitatea Al. Ioan Cuza Iaşi
Facultatea de Informatică
2
Cuprins
Google Web Toolkit
Arhitectura GWT
Instrumente GWT
Modalităţi de a rula aplicaţia
Beneficii
Comparaţie cu alte framework-uri
3
Probleme caracteristice Ajax
Dificultăţi cu limbajul JavaScript
Diferenţe între browsere
Problema butoanelor Back/Forward
4
Google Web Toolkit
Ce este?
Framework Java open-source pt crearea aplicaţiilor Ajax
Produce cod compatibil cu toate browserele
Este mai mult decât un compilator
Similar cu Swing, însă centrat pe HTML şi CSS
5
Google Web Toolkit
Ce conţine?
compilatorul responsabil cu transformarea codului Java în cod JavaScript
echipament de testare folosit pentru depanarea bytecodului Java în mod direct atunci când este rulat în mediul oferit de GWT ce simulează browserul
set de widget-uri principale
sistem Remote Procedure Call pentru realizarea comunicaţiei cu serverul web
6
Google Web Toolkit
De ce GWT?
- nu este nevoie să se scrie cod JavaScript
- elimină grija pentru diferenţele dintre browsere
- se foloseşte doar Java API în favoarea DOM API
- elimină problema legată de butoanele Back/Forward
7
Google Web Toolkit
De ce GWT? (cont.)− Pot fi folosite unelte Java pentru
scrierea/depanarea/testarea codului
− Integrează JUnit
− Include suport pentru internaţionalizare
8
Arhitectura GWT
Construit pe modelul client-server:• Client - Codul java este transformat in HTML şi JavaScript - Formatare cu CSS
• Server - Este folosit un mecanism RPC bazat pe servleturi şi HTTP
9
GWT - Client
10
Arhitectură Client Bazată pe patternul MVC
− Modelul: este sincronizat cu cel de pe server prin intermediul RPC
− View: componente asemănătoare celor din Swing
− Controller: evenimente şi listeneri
Avantaje:− Coordonarea tranziţiilor
din UI
11
GWT - Server
12
Instrumente GWT uneltele din toolbox-ul GWT sunt împărţite
în două categorii: cele legate de compilator şi librăriile Java care alcătuiesc API-uri GWT:
13
Două modalităţi de a rula aplicaţia
Modul Host
- este rulat bytecodul Java în cadrul JVM
- este posibilă rularea în debug a aplicaţiei
- folositor la dezvoltarea aplicaţiei
Modul Web
- este rulat codul JavaScript şi HTML rezultat în urma compilării
- rulat intr-un server pentru aplicaţii J2EE
14
Comunicarea dintre server şi client
Mesaje în format JSON
Implementare proprie a protocolului RPC:− Clientul realizează apeluri Ajax− Pe server se folosesc servleturi pentru tratarea cererii− Clientul primeste răspunsul asincron− Tipurile transmise trebuie să fie serializabile
15
Beneficii
Pentru utilizatori:− Răspuns rapid − Compatibilitate
cu toate browserele
− Nu necesită plugin-uri pentru browser sau JVM
− Navigare cu taste în cadrul aplicaţiei
Pentru dezvoltatori:− Acelaşi limbaj
atât pe server cât şi pe client
− Integrare facilă cu alte tehnologii
− Open-source (licenţă Apache 2.0)
− Utilizarea IDE-ului preferat
16
Beneficii
Pentru utilizatori:− realizarea de
aplicaţii asemănătoare cu cele desktop
Pentru dezvoltatori:− cod scris in Java,
şi nu în JavaScript -pentru aplicaţiile Web complexe, reduce dimensiunea aplicaţiei, mai uşor de administrat
17
Comparaţie cu alte framework-uri
GWT vs Swing
- modalităţii similare de scriere a codului(ClickListener vs ActionListener)
- GWT nu foloseşte managerii de afişare (layout managers) pentru organizarea componentelor în interfaţă, ci panel-uri
GWT vs. Echo2
- aplicaţiile Echo2 rulează pe server, faţă de aplicaţiile GWT care rulează pe client
- mai multe apeluri la server în Echo2, însă nu este nevoie de a fi implementat un mecanism de tip RPC
- în Echo2 nu este nevoie să fie trimis browser-ului tot codul JavaScript rezultat în urma compilării
18
Comparaţie cu alte framework-uri
GWT vs JSF
- în JSF standard toate procesările sunt făcute de către server, iar paginile web sunt reîncărcate după fiecare tranzacţie
GWT vs. Ruby on Rails
- Pe partea de server, RoR oferă suport pentru Ajax(foloseşte limbajul Ruby)
- GWT deţine unele avantaje privitoare la mecanismele de transmitere a informaţiilor între server şi client
- este eficientă o eventuală colaborare între cele două
19
Vă mulţumim pentru atenţie!