GWT V 1.0 / 2008 - May. Plan Informations – Slides 3 - 7 Widgets GWT – Slides 8 – 11 RPC / JNSI - Slides 12 - 16 Plugins – Slides 17 - 19 Bibliothèques.

Slides:



Advertisements
Présentations similaires
Un environnement de développement éducatif
Advertisements

ZOTERO logiciel de gestion bibliographique
Le struts validator – framework de validation
« Les Mercredis du développement » Introduction Office « 12 » Présenté par Bernard Fedotoff Microsoft Regional Director Agilcom.
Open Days 2006 Le Web 2.0 demain: produits, technologies, outils.
Personnalisation des sites SharePoint avec SharePoint Designer 2007
Cours MIAGE « Architectures Orientées Services » Henry Boccon-Gibod 1 Architectures Orientées Services Composants de Service Exemple pratique de développement.
Copyright France Télécom, tous droits réservés Paris Web Ateliers Les bibliothèques JS jQuery Orange Labs Julien Wajsberg, Recherche & Développement.
JXDVDTEK – Une DVDthèque en Java et XML
Guillaume KRUMULA présente Exposés Système et Réseaux IR3 Mardi 5 Février 2008.
Premiers pas avec Apache Ant Par Guillaume BITAUDEAU Le 16/10/2003.
version Beta Marie Calberg Ninni Louhelainen SLFN7
SysML : un profil UML2 pour la modélisation de systèmes complexes
Google Web Toolkit Introduction Didier Girard – 04 juillet 2007.
Google Web Toolkit Introduction Didier Girard – 04 juillet 2007.
LICENCE MIAGE Introduction Programmation Orientée Objet JAVA philippe
Google Web Toolkit Introduction Michel Buffa daprès le ppt original de Didier Girard – 04 juillet 2007.
GWT, présentation générale
Design Pattern MVC En PHP5.
Développement dun simulateur dinterface graphique à distance Présenté par Michaël Delhaye Promoteur : Jean Vanderdonckt.
Présentation application GRBL France Telecom
Les outils d’intégration continue
DECOUVREZ LA NOUVELLE LIGNE 30 WINDOWS V9
Principes de programmation (suite)
LOG 02 Bases de Données Avancées Rappels sur JSP / Servlet
Cours du soir GWT Mardi 3 Juin 2008 Anthony Dahanne
Démarche Analyse des OGL et des Méthodes Objectifs : Activités :
Présenté par : Kalleli Dhouha
XML-Family Web Services Description Language W.S.D.L.
After Work GWT Mercredi 17 Décembre 2008
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.
1 CLUB DES UTILISATEURS SAS DE QUÉBEC COMMENT TRANSFORMER UN PROGRAMME SAS EN TÂCHE PLANIFIÉE SOUS WINDOWS Présentation de Jacques Pagé STRiCT Technologies.
Projet poker 1/56. Introduction Présentation de léquipe Cadre du projet Enjeux Choix du sujet 2.
Des outils pour le développement logiciel
F Copyright © Oracle Corporation, Tous droits réservés. Créer des programmes avec Procedure Builder.
Développement de clients riches : Plateforme Flex Mickaël BARON ou Introduction.
ISICIL SWEETDEKI Intégration du logiciel Mindtouch Core dans la plate-forme ISICIL Guillaume HUSSON.
Framework Play 2.0 Démonstration du proof of concept
Création d'un projet Web avec Netbeans
Microsoft .NET.
Clients riches RIA (Rich Internet Application) / RDA
PhP-MySQL Pagora 2012/2013 CTD 1 - Presentation de moi ^^
1 CSI 2532 Lab6 Application Web et DB Février 27, 2012.
Projet de Master première année 2007 / 2008
Chapitre 3 Les bibliothèques de balises JSP et la JSTL
2 Développer, tester et déployer un site web avec WebMatrix (RIA101) Christine Dubois 9 février 2011.
1111 Gestion des exceptions Objectifs À la fin de ce cours, vous serez capables de : • Expliquer les concepts de base de la gestion des exceptions.
JEE 5 F.Pfister 2 institut eerie JEE – Une plateforme serveur  Développement et exécution d'applications réparties.
M2 – MIAGE/SID Servlet M2 – MIAGE/SID
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.
Mise en oeuvre et exploitation
Elabore par BELKADHI ABIR BEN HASSEN SALMA CHEBBI MARWA
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.
FRANÇOIS-XAVIER PARÉ Bibliothécaire BUREAU DES SYSTÈMES 11 novembre 2009 L A BARRE D’OUTILS L IB X : L A RECHERCHE À UN CLIC Merci à Lucie Geoffroy et.
Android Kévin Giroux.
Metro Web Services Ben Yaflah Marouen Dhrif Mohamed Hbib Hajlaoui Nader.
Plus simple à utiliser Une interface d’administration entièrement remaniée rend plus facile l'apprentissage de Drupal.
S'initier au HTML et aux feuilles de style CSS Cours 5.
AJAX Open Source Etat de l’art Baris Ulucinar, Octobre 2006 University of Fribourg, Suisse Sous la direction de Prof. O. Abou Khaled.
Struts.
S'initier au HTML et aux feuilles de style CSS Cours 5.
Cours MIAGE « Architectures Orientées Services »Henry Boccon-GibodCours MIAGE « Architectures Orientées Services »Henry Boccon-Gibod 1 Architectures Orientées.
Présentation ESTRABOX
Tuteur : Jean-Philippe Prost Soutenance de Projet Licence Professionnelle Assistant de Projet Informatique Développement d’Applications E-Business Année.
After Work GWT Mardi 25 Novembre 2008 Anthony Dahanne
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:

GWT V 1.0 / May

Plan Informations – Slides Widgets GWT – Slides 8 – 11 RPC / JNSI - Slides Plugins – Slides Bibliothèques de Widgets – Slides Informations complémentaires – Slides

3 Pourquoi GWT ? GWT a été créé pour permettre à des développeurs java de créer des clients légers en AJAX sans toucher à javascript. Historique : 2006 : Première version de GWT (1,0) : La version 1.4 perd le tag « beta » et est considérée comme stable : Version 1.5 RC1 GWT est un projet open source sous licence Apache 2.0 Il est multi-plateforme.

4 Informations La dernière version stable est la GWT compatibilité java : Coté client le code java est transformé en JavaScript et doit être en Java 1.4 au plus Côté serveur le code java peut être en 1.6 tant que les réponses au client utilisent des Objets 1.4 compilable en JS : listeliste Le port par défaut du tomcat embarqué est le 8888 Télécharger GWT :

5 GWT : Support de java Les types de base de Java sont supportés, néanmoins Google précise qu'il est préférable d'employer des int plutôt que des long. La gestion des Exception est supportée, mis à part Throwable.getStackTrace() qui ne l'est pas en web mode. Le compilateur parse les assertions, mais ne génère pas de code JavaScript pour celles-ci. Le multithreading et la synchronisation ne sont pas disponibles. Les interpréteurs Javascript sont Monothread. Et si le compilateur de GWT laisse passer l'instruction synchronized, les méthodes de synchronisation ne sont pas disponibles. La réflexion n'est pas disponible dans son ensemble, pour des questions d'optimisation du JS généré. Il est néanmoins possible de récupéré un objet par sa classe en utilisant GWT.getTypeName(Object). La finalisation n'est pas supporté. L'instruction strictfp n'est pas supporté. Description complète des classes supportées

GWT : Gwt gère la plupart des incompatibilités de navigateurs. Gwt Supporte linternationalisation Infos Gwt supporte ant Maven et des tests unitaires On peut aisément ajouter des fonctions développées sous GWT à des sites web existants.

GWT : Principe de fonctionnement Code Java (1.4) Code JavaScript Compilateur GWT Client Serveur Code Java (1.6) Services existants RPC

GWT : Principe de fonctionnement.java Java 1.4 max package x.client.java Implémentations des Services Java 1.4, 1.5, 1.6 package x.server Interfaces des services. 1.4 max package x.client Aspect Développement RequêteRéponse Compilateur GWT.js Aspect Production Client Serveur Interfaces HTTP Requête Réponse Implémentation Services externes

Widgets GWT TextArea - javadocjavadocPasswordTextBox - javadoc javadoc ListBox javadoc HyperLink javadoc TextBox - javadocjavadocCheckBox - javadocjavadoc ToggleButton javadoc PushButton javadoc RadioButton - javadocjavadocButton - javadocjavadoc

Widgets GWT PopupPanel javadoc DialogBox javadoc TabBar javadoc Table javadoc Tree javadoc MenuBar javadoc

Widgets GWT HorizontalSplitPanel javadoc VerticalSplitPanel javadoc FlowPanel javadoc VerticalPanel javadoc HorizontalPanel javadoc StackPanel javadoc

Widgets GWT SuggestBox javadoc DisclosurePanel javadoc RichTextArea javadoc TabPanel javadoc DockPanel javadoc

GWT : Remote Procedure Calls Utiliser le RPC de google revient à faire un appel asynchrone en AJAX. Mais puisque nous travaillons en java, GWT passe par deux interfaces et une classe dimplémentation pour faire son appel. Les types de retour doivent être compilable en JS Lien : Description complète des classes supportéesDescription complète des classes supportées Concrètement les différents plugins GWT, permettent de simplifier lutilisation du RPC Génération automatique des Classes Générations automatiques des méthodes Ajout dune classe « Util » à linterface MyService pour simplifier lappel (GWT Designer)

GWT : RPC

GWT : RPC – Création du service MyService (Interface) public interface MyService extends RemoteService { public String myMethod(String s); } MyServiceAsycn (Interface) interface MyServiceAsync { public void myMethod(String s, AsyncCallback callback); } MyServiceImpl (Classe) public class MyServiceImpl extends RemoteServiceServlet implements MyService { public String myMethod(String s) { // Do something interesting with 's' here on the server. return s; }

GWT : RPC – Appel du service // (1) Create the client proxy. MyServiceAsync myService = (MyServiceAsync) GWT.create(MyService.class); // (2) Specify the URL at which our service implementation is running. ServiceDefTarget endpoint = (ServiceDefTarget) myService; String moduleRelativeURL = GWT.getModuleBaseURL() + " "; endpoint.setServiceEntryPoint(moduleRelativeURL); // (3) Create an asynchronous callback to handle the result. AsyncCallback callback = new AsyncCallback() { public void onSuccess(Object result) { // do some UI stuff to show success } public void onFailure(Throwable caught) { // do some UI stuff to show failure } }; // (4) Make the call. myService.myMethod(s, callback); }

17 GWT : JSNI (JavaScript Native Interface) Le compilateur de GWT transforme le code java en javascript. Mais il est parfois nécessaire d'insérer du code javascript dans le java. C'est pourquoi GWT propose JNSI, basé sur JNI on déclare les méthodes où sont insérées les portions de code js comme native puis on commente le code javascript. $wnd et $doc représentent les objets JavaScript window et document Exemple : public static native void alert(String msg) /*-{ $wnd.alert(msg); }-*/; Source

Informations diverses Les servlets, Service GWT, Fichiers js, EntryPoint, fichiers css, et autres sont mappés dans le fichier src/…package…/nomModule.gwt.xml Pour utiliser la fonction refresh avec GWT-Ext Dans le fichier public/nomModule.html déplacer la ligne Sous la balise fermante Pour insérer du GWT à un endroit spécifique de la page créez une div par exemple Puis dans les sources GWT RootPanel.get(« ici »).add(votreGwtAInserer);

19 Plugins Eclipse Cypal Studio GWT Designer (Instantiation) Netbeans GWT4NB : Tuto : 4nbDemo.htm

Plugins - Cypal Studio for GWT Cypal Studio for GWT : Est un plugin eclipse open-source. Ses fonctionnalités sont limitées et le GWT designer propose un panel similaire. Créer un module Créer un remote service Maintenir le fichier Async Lancer lapplication en hosted mode Compiler lapplication en JavaScript Déployer sur un serveur extérieur Exporter comme WAR

Plugins – GWT Designer GWT Designer (Instantiations) : Cest un plugin eclipse payant (40 $ /Poste), il est actuellement le meilleur plugin pour GWT. Il dispose des mêmes fonctionnalités que le plugin Cypal auxquelles sajoutent les suivantes : Editeur WYSIWYG (drag & drop) Génération bidirectionnelle du code Support du CSS Wizards générant certaines classes récurrentes Lancement de tests JUnit Refactoring – Internationalisation Création, Edition et Transformation de web project en projets GWT. Documentation très étoffée.

22 Bibliothèques de widgets GWT-Ext (LGPL) Utilise Ext-js pour son design Ext-GWT, anciennement MyGwt (Licence commerciale et GPL) Il existe de nombreuses autres librairies qui à lheure actuelle nont pas encore pris assez dimportance pour figurer dans ces slides.

GWT-Ext Il sagit dune librairie remodelant totalement les widgets basiques de GWT et leur fonctionnement. Concrètement mis à part deux ou trois widgets natifs de GWT qui conserveront leur utilité GWT-Ext doit être utilisée à 100% dans lapplication. GWT-Ext fourni 4 « showcase » proposant un large panel de possibilités et le code associé : Demo : Demo-Charts : Demo-Maps : Demo apports utilisateurs : Ainsi quune javadoc détaillée : Javadoc : Les slides suivant présente un petit échantillon des possibilités de GWT-Ext.

Widgets GWT-Ext Resizable/Dragable Panel ToolTip Loading Bar Editable Tree Menu Demo

Widgets GWT-Ext Forms Example Editable Grid Demo

GWT et Telosys - Fonctionnement GWT et Telosys fonctionnent parfaitement ensemble moyennant un build Ant approprié. En effet le fonctionnement par défaut de GWT ignore le web.xml contenu dans le projet. L'ajout d'une tâche Ant appropriée résout le problème, en ajoutant au.war le contenu du WebContent :

Pour appeler un service Telosys depuis le client GWT on commence par construire une requête. Elle prend comme paramètre la méthode et l'url. Puis on execute la requête tout en définissant la conduite à tenir en cas de succès ou d'échec GWT et Telosys - Communication RequestBuilder builder = new RequestBuilder( RequestBuilder.GET, GWT.getModuleBaseURL()+"/telo.svc?p1="+aTF.getText() +"&p2="+bTF.getText()); //On execute la requête Request response = builder.sendRequest(null, new RequestCallback() { //Si la requete échoue public void onError(Request request, Throwable exception) {} //Si le requête réussie public void onResponseReceived(Request request, Response response) {} });

28 Comparaison : GWT, Flex, OpenLaszlo CA- Performance côté client B+BAWidgets/Features/ Puissance du toolkit B-CBFacilitée de développement BAB+Performance côté serveur A+B+B-Portabilitée B-B+C+ (B+ avec plugin Eclipse payant (400 $) Processus de développement B- BSyntaxe du language OpenLaszloGWTFlex Lauteur de ce comparatif Kevin Whinnery, est un ingénieur système spécialisé dans le développement dinterfaces Web. Il semble avoir une préférence marquée pour Flex, ce qui devrait relativiser la note de facilitée de développement de GWT.

29 A venir Google développe son propre designer Version 1.5 de GWT (Google): Prise en charge de java 5 GWT Designer (Instantiations): Support des widgets de GWT-Ext en cours de développement, et peut-être Ext-GWT

30 Lexique JNI : est un framework qui permet à du code Java s'exécutant à l'intérieur de la JVM d'appeler et d'être appelé par des applications natives ou avec des bibliothèques logicielles basées sur d'autres langages. Module : Un module représente une application GWT, lors du déploiement chaque module est un.war EntryPoint : LEntryPoint est une classe qui hérite dEntryPoint cest par elle que lon place les différentes fonctions de lapplication dans le.html du module. On peut créer plusieurs EntryPoint dans un module pour clarifier le code. Mais elles doivent insérer dans le même.html pour ne pas générer derreurs.

Tutoriels Pour démarrer Installation : Premiers pas : Autres :

Exemples GWT-Ext Demo : Pibb : MapEcos : Infos : about-pollution-in-us.html about-pollution-in-us.html Project Gutenberg : Live Search (Beta)Live Search Wibokr : OpenKM : ContactOffice : (Beta) Google : Checkout / BaseCheckout Base Fabset :

Documentations Présentations Développez.com : Api Javadoc : toolkit.googlecode.com/svn/javadoc/1.4/index.htmlhttp://google-web- toolkit.googlecode.com/svn/javadoc/1.4/index.html

34 Sources GWT JNSI : oc.DeveloperGuide.JavaScriptNativeInterface.html oc.DeveloperGuide.JavaScriptNativeInterface.html News : Comparatif :