GWT, présentation générale

Slides:



Advertisements
Présentations similaires
« Les Mercredis du développement » Ajax / Client CallBack / Atlas
Advertisements

- Formation Flex (Introduction)‏ - Formation Flex 1 1.
Première expérience d’utilisation des Web Services dans SmartTools Didier Parigot Projet OASIS INRIA Sophia www-sop.inria.fr/oasis/SmartTools Journée.
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.
Introduction aux Entity Beans
Google Web Toolkit Introduction Michel Buffa daprès le ppt original de Didier Girard – 04 juillet 2007.
TP 3-4 BD21.
Introduction aux Session Beans
Présentation application GRBL France Telecom
LOG 02 Bases de Données Avancées Rappels sur JSP / Servlet
Cours du soir GWT Mardi 3 Juin 2008 Anthony Dahanne
Intégrer IdRef dans les applications documentaires de votre université. Pourquoi ? Comment ? Atelier JABES2011.
Communiquer avec ELYX.
Présenté par : Kalleli Dhouha
XML-Family Web Services Description Language W.S.D.L.
JAVASERVER FACES Un framework Java pour le développement Web.
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
Présentation de Windows Presentation Foundation Vers une nouvelle génération dinterfaces graphiques.
Ajax. Contexte Dabord, il y a eu les terminaux des ordinateurs centraux (environnements TSO, CICS, etc.) et les terminaux plein écran des environnements.
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.
ASP.NET Par: Hugo St-Louis. C ARACTÉRISTIQUES A SP. NET Évolution, successeur plus flexible quASP (Active Server Pages). Pages web dynamiques permettant.
Développement de clients riches : Plateforme Flex Mickaël BARON ou Introduction.
22 Intéropérabilité Silverlight & PHP Le 8 février 2010 GIACOPINO Cyril Directeur pôle technologie TEQUILARAPIDO.
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.
Adaptée du cours de Richard Grin
J2EE vs .NET Réaliser par : SEIF ENNACER BADRA && CHETOUI RIM.
Agenda de la journée 10h00 : La place d’ASP.NET dans la plate-forme Microsoft 10h30 : Développement rapide d’applications Web en ASP.NET 12h00 : Construire.
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
PHP & My SQL.
PROGRAMMATION WEB FRONT-END.
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.
AngularJS.
Android Kévin Giroux.
« Le plaisir du chercheur : retrousser les jupes de la nature » Jean Rostand Proposer une « Interface Homme Machine » en utilisant une technologie Client.
Enterprise Java Beans 3.0 Cours INF Bases de Données Hiver 2005, groupe 10 Stefan MARTINESCU.
Metro Web Services Ben Yaflah Marouen Dhrif Mohamed Hbib Hajlaoui Nader.
Concevoir un site web de A a Z Cours 3. Aujourd’hui Découper sa page en tranche pour une intégration graphique optimale avec Photoshop L’intégration des.
Présentation du framework JSF (Java Server Faces) dans le modèle événementiel MVCII
AJAX Open Source Etat de l’art Baris Ulucinar, Octobre 2006 University of Fribourg, Suisse Sous la direction de Prof. O. Abou Khaled.
Créez des applications Silverlight 3 David Rousset Relations Techniques avec les développeurs Microsoft France
AJAX.
Initiation au JavaScript
Présentation ESTRABOX
EPREUVE E6 : PARCOURS DE PROFESSIONNALISATION
Karine Vallin - Dorian Baysset
13/07/2015 JSF Java Server Faces Master 2 Pro GLR TER David Mihura Eric Le Merdy.
Apports des clients riches dans le monde du WEB 2.0
Introduction au développement Web avec ASP.NET Présenté par Pierre Lagarde Relation Développeurs Microsoft France.
Présentation de Qt Iris 1
After Work GWT Mardi 25 Novembre 2008 Anthony Dahanne
FORMULAIRES FOMULAIRE Permet à l’utilisateur d’entrer des renseignements le concernant. Utilisation –Inscription sur un site –Mise à jour d’une base.
Parquet Geoffrey 3 ARIL EXIA.CESI ARRAS. Présentation du MLD Présentation de la persistance Présentation récapitulatif du projet JSP/SERVLET MVC Cycle.
GWT Google Web Toolkit Yves Bekkers 1GWT - Yves Bekkers.
APP-TSWD Apprentissage Par Problèmes Techniques des Sites Web Dynamiques Licence Professionnelle FNEPI Valérie Bellynck, Benjamin Brichet-Billet, Mazen.
Applications distribuées Introduction Jean-Jacques LE COZ.
DWR Jean-Jacques LE COZ. Introduction Projet DWR Framework AJAX Projet Open Source commencé en 2004 Licence GPL (Apache Software License v2) Sponsorisé.
Architecture J2EE Web Jean-Jacques LE COZ. J2EE Web Container JSP Page Servlet J ava 2 Standard Edition APIs EJB Container EJB JDBCJMS JNDI JTA JavaMail.
Transcription de la présentation:

GWT, présentation générale Rédigée à partir des présentations de Didier Girard girard.d@sfeir.com Et de Anthony Dahanne anthony.dahanne@valtech.fr Mise à jours et adaptation de Michel Buffa (buffa@unice.fr)

Historique Projet racheté à 1 start up Créé par Bruce Johnson, aujourd’hui chez Google Proposé en Open source fin 2006 Dès le début, une forte communauté, La plupart des services Google sont codés avec GWT (gmail, agenda, google maps, etc.) Nombreuses bibliothèques d’extensions GWText aujourd’hui projet Zombie, SmartGWT, GWT dnd, etc.

GWT ? Un framework pour créer des applications Web riches, ajaxifiées, basées sur du REST, en Java Partie serveur Stateless (REST oblige), bonne scalabilité La partie serveur est compilée avec le JDK, La partie client est compilée en javascript par le compilateur GWT Avantages Tout le monde connait bien Java, On développe avec des outils de haut niveau (Eclipse, Netbeans, etc.) Possibilité de débugger pas à pas Portabilité du code (GWT supporte tous les navigateurs modernes) Optimisation (code JS “compacté”, génération de ce qui est utile uniquement)‏

Des outils GWT est supporté par tous les grands IDE Java : Eclipse, NetBeans, IntelliJ IDEA, Jdeveloper,… Publicité : GWT Designer pour Eclipse (payant)

Support du debug

GWT est très performant Dès le début désir de performances: Fichiers échangés compressés avec gzip, Obfuscation du code JS, du coup il est très compact (variable de 1 ou deux caractères etc.) 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 de la partie client est compilé en JS pour chacun des navigateurs supporté Pour un navigateur donné, le serveur n’enverra que SA version spécifique -> pas de code qui ne sert à rien, pas de if... Le navigateur client gardera en cache le code approprié http://www.infoq.com/articles/gwt-high-ajax

Les applications GWT sont lourdes Le code généré est optimisé et gzippable La démo Google Showcase pèse 60K !

Encore quelques limitations GWT supporte les primitives Java, à l’exception de Long (pas de support 64 bits en JS) qui est mappé en float GWT ne supporte pas le chargement dynamique de classes Class c = Class.forName(“”); Object o =c.getInstance(); Etc…

Des concurrents ? TurboGears pour Python (GWT like) Hop ! (basé sur Scheme) Microsoft Volta (C# , VB.NET) très en retard (moins performant, pas de la vraie compilation)‏ Autres frameworks mais qui génèrent du javascript, pas qui le compilent Morfik (http://www.morfik.com) approche orientée BDD et XML (!)‏ Java Server Faces (JSF) de Sun, Silverlight (génération à partir de C# + XML) GWT est aujourd’hui le framework de génération d’application web riches le plus avancé.

Exemples de composants graphiques GWT Le mieux est de voir l’application ShowCase de Google Joli mais sans plus, Google recherche l’efficacité Des bibliothèques d’extension se chargent de proposer des widgets plus sympas, comme SmartGWT

Exemple de code client

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 d’une liste sous un arbre SuggestBox : interroge un oracle pour prédiction

Présentation de Widgets HTML : permet de place du code HTML Image : insère une portion d’image ou une image entière ImageBundle : permet d’atté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 d’une unique grosse image Nous rappelle le Keep Alive HTTP !

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

Présentation des Panels FocusPanel : les éléments fils gèrent le focus FormPanel : simule soumission d’un 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

Absolute Panel Permet de développer efficacement Un vrai bonheur ! Il y a bien d’autres Panel : Grid, Row, Flex, Vertical, Tab,…

IE, Firefox, Safari, Opera Architecture RWA in Java GWT GUI Library Java Runtime Library Code de l’application Panels Popup Stack Absolute Vertical … Widgets Button MenuBar Radio Tree Check Table TextArea …. java.lang java.util Java.io GWT Compiler Browser IE, Firefox, Safari, Opera GWT Runtime 100Ko Javascript Application

Appels distants Tout appel distant passe par Remote Procedure Call, qui s’appuie 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 l’interface de service mais en plus technique, faisant apparaître un AsyncCallBack qui contiendra les réponses de l’appel

Support de RPC (JSON/XML-RPC) AJAX est d’abord une histoire de requêtes asynchrones Avec GWT, c’est simple !

Appels distants Attention aux types de retour des services! JavaScript n’est 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

GWT 1.5 GWT 1.4 est arrivé avec son lot de nouveautés Par exemple : ImageBundle (téléchargement optimisé d’images), une espèce de base d’images Passage de 12 requêtes HTTP à une seule… ClippedImage timeIcon = new ClippedImage("icons.png", 22, 0, 22, 22); GWT 1.5 apporte le support des annotations de code et de la généricité Du coup, on peut par exemple passer des classes entity du serveur (java) vers le client (java compilé en javascript) Nécessite les sources des annotations

GWT Gears Gears permet d’accéder à une base local depuis javascript. Il existe une API pour GWT : http://code.google.com/p/gwt-google-apis/ Google Confidential

MISC Version de JDK ? Intégration avec Spring ? Codez le code serveur et client en jdk 5/6 mais attention, côté client toutes les classes du SDK ne sont pas re-implémentées (mais la plupart le sont) Intégration avec Spring ? Facilité depuis GWT 1.4 Intégration avec Hibernate ? Facilité avec GWT 1.4 : danger ! Intégration avec les EJBs Naturel avec les entity beans Nécessite un wrapper pour les session beans Normalement full support avec GWT 1.5