Cours du soir GWT Mardi 3 Juin 2008 Anthony Dahanne

Slides:



Advertisements
Présentations similaires
TOUQUET Arnaud ▪ GI05 BLONDEEL Igor ▪ GM05
Advertisements

INTRODUCTION INTRODUCTION ERGONOMIE Tri par cartes Formulaires Interface Installation Lanceur Documentation TECHNOLOGIES XML + XSL CSS Formulaires génériques.
Guillaume KRUMULA présente Exposés Système et Réseaux IR3 Mardi 5 Février 2008.
L’architecture .net et ASP.net
Exposé de Système - Informatique et Réseau
Le développement d’applications sous Lotus Notes
Google Web Toolkit Introduction Didier Girard – 04 juillet 2007.
Google Web Toolkit Introduction Didier Girard – 04 juillet 2007.
Google Web Toolkit Introduction Michel Buffa daprès le ppt original de Didier Girard – 04 juillet 2007.
GWT, présentation générale
TP 3-4 BD21.
Projet J2EE Maverick XMLBeans Garcel Jean-Baptiste – Le Loc Martin – Muller Thibaut.
Développement dun simulateur dinterface graphique à distance Présenté par Michaël Delhaye Promoteur : Jean Vanderdonckt.
Soutenance de stage · Par : Guillaume Prévost · Entreprise : Cynetic
PROJET HANDICAPS Certificat de Qualification Professionnelle
LOG 02 Bases de Données Avancées Rappels sur JSP / Servlet
Outils de tests, logs et documentation Frédéric Moalannée 2010/2011 POO.
Développement Mobile : Android
Intégrer IdRef dans les applications documentaires de votre université. Pourquoi ? Comment ? Atelier JABES2011.
Programmation orientée objet
XML-Family Web Services Description Language W.S.D.L.
Android est une plateforme mobile open source et entièrement paramétrable. Elle a été créée afin de mettre à disposition des développeurs toutes les fonctionnalités.
After Work GWT Mercredi 17 Décembre 2008
Développement Rapide dApplications Web avec.NET « Mon premier site »
GWT UML Un modeleur UML en GWT
GWT, présentation générale Rédigée à partir des présentations de Didier Girard Et de Anthony Dahanne Mise.
28 novembre 2012 Grégory Petit
Des outils pour le développement logiciel
1. 2 PLAN DE LA PRÉSENTATION - SECTION 1 : Code HTML - SECTION 2.1. : CSS (Méthode 1) - SECTION 2.2. : CSS (Méthode 2) - SECTION 3 : JavaScript - SECTION.
Microsoft .NET.
Clients riches RIA (Rich Internet Application) / RDA
PhP-MySQL Pagora 2012/2013 CTD 1 - Presentation de moi ^^
Document élaboré à Centrale Paris par Pascal Morenton LES TECHNOLOGIES DU WEB 1. LES PHASES D UN DEPLOIEMENT DE RESEAUX 2. LE LANGAGE HTML 3. LE LANGAGE.
Développement dapplication avec base de données Semaine 10 : WCF avec Entité Framework Automne 2013.
JEE 5 F.Pfister 2 institut eerie JEE – Une plateforme serveur  Développement et exécution d'applications réparties.
GWT - QuickStart V 1.0 / May. Mise en place de l’environnement Java : Version 1.4 minimum IDE Eclipse 3.3 Europa : lien (Eclipse J2EE recommandée)‏lien.
LES CLIENTS WEB RICHES Tuteur : Olivier CARON LEFEBVRE Benoit
Développement Web Open Source haXe et les outils « open source » Première partie.
Créez des applications Silverlight 3 David Rousset Relations Techniques avec les développeurs Microsoft France
0 Objectifs de la session n°1  Revenir sur toutes les bases théoriques nécessaires pour devenir un développeur Web,  Découvrir l’ensemble des langages.
 Objet window, la fenêtre du navigateur
« Le plaisir du chercheur : retrousser les jupes de la nature » Jean Rostand Proposer une « Interface Homme Machine » en utilisant une technologie Client.
S'initier au HTML et aux feuilles de style CSS Cours 5.
Code Contracts Gilles TOURREAU - MVP C# Architecte .NET / Formateur
Créez des applications Silverlight 3 David Rousset Relations Techniques avec les développeurs Microsoft France
Visualisation d’un entrepôt de données Pré soutenance technique
Struts.
S'initier au HTML et aux feuilles de style CSS Cours 5.
 Formulaires HTML : traiter les entrées utilisateur
Cours MIAGE « Architectures Orientées Services »Henry Boccon-GibodCours MIAGE « Architectures Orientées Services »Henry Boccon-Gibod 1 Architectures Orientées.
Initiation au JavaScript
Sites Web interactifs 2010 / 2011 / S1 Bernhard Rieder.
Présentation ESTRABOX
Les Servlets Présentation Cycle de vie Principe de fonctionnement
EPREUVE E6 : PARCOURS DE PROFESSIONNALISATION
Séance /10/2005 CSS et Dreamweaver. CSS : principes Cascading Style Sheet = feuille de style en cascade Norme du W3C :
Apports des clients riches dans le monde du WEB 2.0
Présentation de Qt Iris 1
After Work GWT Mardi 25 Novembre 2008 Anthony Dahanne
Scénario Les scénarios permettent de modifier la position, taille … des calques au cours du temps. Son fonctionnement est très proche de celui de Macromedia.
1 Présentation de DREAMWEAVER (1) Gaël TREMEAU GI05 Printemps 2006.
Flash 2 ème séance Interaction François Marliac Mickaël Moreira.
Dreamweaver le retour Avec Les Formulaires Les Calques
Dreamweaver (2) ● les calques (layers) ● les comportements
FORMULAIRES FOMULAIRE Permet à l’utilisateur d’entrer des renseignements le concernant. Utilisation –Inscription sur un site –Mise à jour d’une base.
Les formulaires Les calques Les comportements Les scénarios Les modèles Les feuilles de styles (CSS) La mise en ligne Les formulaires permettent à l’utilisateur.
Sommaire : -A propos des images importées -Les boutons et l’interactivité dans la scène -Textes dynamiques -Les clips (les liaisons) -Les sons -Les composants.
DREAMWEAVER MX2 - Séance 2 Les calques Les comportements Les scénarios Les formulaires Les feuilles de style Les modèles Les cadres Mise en ligne Jérôme.
GWT Google Web Toolkit Yves Bekkers 1GWT - Yves Bekkers.
DWR Jean-Jacques LE COZ. Introduction Projet DWR Framework AJAX Projet Open Source commencé en 2004 Licence GPL (Apache Software License v2) Sponsorisé.
Transcription de la présentation:

Cours du soir GWT Mardi 3 Juin 2008 Anthony Dahanne

Sommaire du cours Présentation de GWT (TP) Mise en place de lenvironnement de dév. (TP) Ecriture dun 1 er module GWT Présentation de widgets (+TP) Présentation des panels (+TP) Présentation dextensions GWT (GXT, GWT Ext) Création dun Widget (+TP) Appels distants via RPC (+TP) Plus loin dans GWT : cycle de vie du compilateur, tests unitaires, etc...

Présentation (1/5) : Pourquoi GWT ? Problème : Difficulté décriture du code JavaScript débug compliqué (alert !) interprétation différente selon le navigateur manque de compétence JS etc… Solution : Générer du code JavaScript à partir de code Java Compétences nombreuses (!) IDE (ex: Eclipse) au point, nombreux et riches Possibilité de débug pas à pas 1 code source pour tous les navigateurs ! Optimisation (code JS compacté, génération de ce qui est utile uniquement)

Projet racheté à 1 start up Créé par Bruce Johnson Proposé en Open source fin 2006 Dès le début, une forte communauté, nombreuses bibliothèques dont EXT GWT, Présentation (2/5) : Historique

Optimisation (temps de chargement réduits) au coeur de GWT : Fichiers échangés compressés avec gzip Allégement de la taille des fichiers grâce aux noms raccourcis de variables et fonctions JS Chargement des scripts dans une iframe cachée en tâche de fond Utilisation de la mise en cache des navigateurs Le navigateur ne charge que les fonctions dont il a besoin Lors de la compilation, le code JS pour chacun des navigateurs est généré : le navigateur gardera en cache le code approprié Présentation (3/5) : Performances

GWT supporte les primitives Java, à lexception de Long (pas de support 64 bits en JS) qui est mappé en float Linterpréteur JS est mono thread GWT ne supporte pas le chargement dynamique de classes Class c = Class.forName(); Object o =c.getInstance(); Etc… Styles définis dans feuille CSS et réutilisés via GWT Présentation (4/5) : Des limitations…

Microsoft Volta (C#, VB.NET) très en retard (moins performant) Morfik ( approche orientée BDD et XML (!) GWT est aujourdhui le framework de génération dapplication web riches le plus avancé. Présentation (5/5) : Des concurrents…

Environnement de développement Nous utiliserons : Eclipse 3.3 Une jdk Sun moderne (>=5.0) Windows ou Linux ou Mac OS GWT 1.5 RC1 (sortie le 28/05/2008) Tomcat (embarqué dans le projet GWT) Navigateur Web (Firefox et ses plugins comme Firebug sera bienvenue !)

Mon premier projet GWT ! Un projet GWT sous Eclipse en quelques commandes à partir de la racine de gwt fraîchement décompressé : Création dun répertoire contenant le projet : >mkdir MonProjetGwt puis >cd MonProjetGwt Création du projet Eclipse :..\projectCreator.cmd -eclipse MaPremiereApplicationGwt Création de lapplication :..\applicationCreator.cmd -eclipse MaPremiereApplicationGwt fr.valtech.client.MonApp Il ny a plus quà lancer Eclipse et importer le projet créée !

Structure du projet : Pour lancer le projet, il suffit d utiliser le MonApp.launch et de le lancer en cliquant droit dessus Run as Java Application La console GWT ainsi quun navigateur GWT se lancent ! Mon premier projet GWT !

Mon premier projet GWT 2 modes de lancement : Hosted (ou géré) : application exécutée en tant que bytecode Java : permet de faciliter le code-compile-test-debug (console de debug, permet dexploiter les points darrêt dans Eclipse, etc…) Web : Le navigateur lit simplement le code généré par le compilateur GWT et linterprète naturellement

Mon 1 er module GWT Représenté par un fichier XML (MonApp.gwt.xml), il est composé de : Un ou plusieurs modules hérités Un point dentrée (le main) Un chemin des sources, un autre des ressources Scripts JS et CSS Config vers les servlets RPC Etc…

Présentation de widgets Pleins de Widget : boutons, labels, cases à cocher, listes, arbres, etc… UIObject est la super classe, qui gère coordonnées, titre, visibilité et taille de tout objet graphique Les widgets héritent de la super classe Widget qui proposent en plus des opérations hiérarchiques attachement au parent, etc…) Les widgets proposent des événements basés sur des listeners Java FocusListener, MouseListener, KeyBoardListener, etc…

Présentation de Widgets TextBox : zone de saisie Button : bouton HTML Label : créer une zone de texte Hyperlink :lien interne ListBox : liste de valeurs HTMLTable, FlexTable, Grid MenuBar : création de menu pop-up Tree : décomposition dune liste sous un arbre SuggestBox : interroge un oracle pour prédiction

HTML : permet de place du code HTML Image : insère une portion dimage ou une image entière ImageBundle : permet datténuer les latences réseaux en évitant les aller et retour Regroupe plusieurs images en une : en JS + CSS, les images seront chargées sous la forme de portion dune unique grosse image Nous rappelle le Keep Alive HTTP ! Présentation de Widgets

Présentation des Panels A comparer à Swing ou Windows.form En GWT, on a plutôt fusionné la notion de Layout et de Panel 4 types de Panel : Simple Complexe Table Split

FocusPanel : les éléments fils gèrent le focus FormPanel : simule soumission dun form. HTML ? PopUpPanel et DialogBox AbsolutePanel Les enfants de CellPanel : DockPanel, HorizontalPanel, VerticalPanel FlowPanel, StackPanel HTMLPanel : intégration de GWT dans sites existants DisclosurePanel : une encoche démasque les fils Présentation des Panels

Présentation dextension GWT GWT plutôt sobre par rapport à Flex et SilverLight Les extensions rajoutent de lAJAX (DnD, transitions, etc…) 2 familles dextensions : Les wrapper, widgets qui encapsulent du code JavaScript Les natives, directement écrites en GWT, nimportent pas de code JavaScript supplémentaire (permettent loptimisation du code, dêtre paramétrées, etc…) Des problèmes de licence apparaissent ! GWT sappuie sur GWT-WL, basé sur, entre autres, Scriptaculous

GWT-DnD : le célèbre Glisser/Déplacer GWT-Ext, wrapper ExtJS la plus impressionnante, mais au coeur dune polémique suite à son changement de licence Apache 2.0 vers double licence GPL + commerciale GXT ou ExtGWT, librairie native GWT, en retard par rapport à GWT-Ext GWT Window Manager Présentation dextension GWT

Création de Widgets Dériver de la classe Widget ou dune de ses sous classes Bien observer la classe DOM Bien réfléchir aux événements gérés, notamment en utilisant sinkEvent, gestion unifiée des événements entre navigateurs UIObject ferait laffaire, mais ne gère pas les événements Ou dériver de la classe Composite, pour contenir dautres Widgets

Appels distants Tout appel distant passe par Remote Procedure Call, qui sappuie sur JEE Appels asynchrones ! Rappelle Corba ! Une interface de service (signature de méthodes distantes) Implémentée côté serveur Une interface plus technique, représente linterface de service mais en plus technique, faisant apparaître un AsyncCallBack qui contiendra les réponses de lappel

Appels distants Attention aux types de retour des services! JavaScript nest pas aussi riche que Java (long, etc…) Ils doivent être sérialisables Ne pas oublier le fichier des module XML dans lequel on explicite le service utilisée et son implémentation

Mais encore, GWT cest … I18N Dynamic Binding : Chargement dynamique des classes Réflexion Impl I = Class.forName(ClassName).newInstance(); Deferred Binding Alimentation de variables à lexécution (runtime) Imp I = GWT.create(ClassName); Le compilateur a la visibilité du code lors de la compilation, il peut loptimiser GWT génère le JS pour chaque navigateur, pour chaque dimplémentation de DOM.java

Mais encore, GWT cest … Des tests unitaires, à travers GWTTestCase que lon hérite On implémente getModuleName() pour récupérer son module On le teste (assertions)

FIN Mais peut être ne sagit il que du début !

Références Cours GWT par Sami Jaber (Valtech Training) GWT DnD : GXT (ext GWT) Ongwt.com Une appli GWT riche La démo de GWT

Licence du document Ce document est protégé par le contrat : Creative Commons Paternité-Pas d'Utilisation Commerciale-Partage des Conditions Initiales à l'Identique 2.0 France License.