Introduction à la plateforme Eclipse RCP

7 427 vues

Publié le

Ce support de cours débute une longue série liée au développement de clients riches avec la plateforme Eclipse 3.x

Publié dans : Technologie
0 commentaire
1 j’aime
Statistiques
Remarques
  • Soyez le premier à commenter

Aucun téléchargement
Vues
Nombre de vues
7 427
Sur SlideShare
0
Issues des intégrations
0
Intégrations
1 732
Actions
Partages
0
Téléchargements
242
Commentaires
0
J’aime
1
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive

Introduction à la plateforme Eclipse RCP

  1. 1. Développement de clientsriches : Plateforme Eclipse RCP Chapitre 1 : Introduction Avant Propos … Mickaël BARON - 2007 (Rév. Janvier 2009) mailto:baron.mickael@gmail.com ou mailto:baron@ensma.fr
  2. 2. Licence Creative Commons Contrat Paternité Partage des Conditions Initiales à lIdentique 2.0 Francekeulkeul.blogspot.com http://creativecommons.org/licenses/by-sa/2.0/fr Plateforme Eclipse - M. Baron - Page 2
  3. 3. Le cours L’objectif de ce cours Initiation à la conception d’applications avec la plateforme Eclipse Architecture logicielle (création d’une application par modules) Intérêt spécifique à la partie présentation (SWT, JFace, RCP) Structuration rapide du cours Introduction à la plateforme Eclipse Boîte à outils SWT / JFace (Standard Widget Toolkit)keulkeul.blogspot.com Introduction au plugin Eclipse Introduction à la plateforme Eclipse RCP Plateforme Eclipse - M. Baron - Page 3
  4. 4. Déroulement du cours Pédagogie du cours Présentation des concepts Illustration avec de nombreux exemples Des bulles d’aide tout au long du cours Ceci est une alerte Ceci est une astuce Pré-requis Connaissance de Java Mise en place du courskeulkeul.blogspot.com Internet : www.developpez.com, www.eclipse.org Livres : Eclipse Building Commercial-Quality Plugin-ins – Eric Clayberg Dan Rubel – Addison Wesley et The Definitive Guide to SWT and JFace – Rob Warner - APress Plateforme Eclipse - M. Baron - Page 4
  5. 5. Déroulement du cours Rappel pour le schéma UML (diagramme de classes) Démarrable << Interface >> Voiture + démarre + démarre() Implémentation Héritage Batterie + getEtat():intkeulkeul.blogspot.com VoitureElectrique - disjoncteur:booléen A besoin de + démarre() Association Plateforme Eclipse - M. Baron - Page 5
  6. 6. Organisation du cours … Chapitre 1 : Introduction à la plateforme Eclipse Chapitre 2 : Boîtes à outils (SWT, JFace) Chapitre 3 : Conception de plug-inskeulkeul.blogspot.com Chapitre 4 : Modélisation Chapitre 5 : Outils Plateforme Eclipse - M. Baron - Page 6
  7. 7. Développement de clientsriches : Plateforme Eclipse RCP Chapitre 1 : Introduction Eclipse n’est pas qu’un IDE Java Mickaël BARON - 2007 (Rév. Janvier 2009) mailto:baron.mickael@gmail.com ou mailto:baron@ensma.fr
  8. 8. Eclipse Eclipse est un projet développé initialement par IBM Projet Open-Source sous licence EPL Site officiel du projet : www.eclipse.org Eclipse c’est quoi ? IDE Java IDE Frameworkkeulkeul.blogspot.com Tools Framework Application Framework Une communauté Plateforme Eclipse - M. Baron - Page 8
  9. 9. keulkeul.blogspot.com Eclipse Private Joke : Eclipse … Soleil … Sun ?? Plateforme Eclipse - M. Baron - Page 9
  10. 10. Eclipse = IDE Java Dans la plupart des esprits, Eclipse est un environnement de développement intégré (IDE) Caractéristiques de l’environnement Eclipse Editeur évolué et spécialisé (complétion, gabarits, …) Support du refactoring pour re-travailler le code source de manière à améliorer la lisibilité et la maintenance Compilation incrémentalekeulkeul.blogspot.com Tests unitaires Débuggeur de code Java Support du développement par équipe (CVS par défaut, SVN, …) Plateforme Eclipse - M. Baron - Page 10
  11. 11. keulkeul.blogspot.com Eclipse = IDE Java Plateforme Eclipse - M. Baron - Page 11
  12. 12. Eclipse = IDE Framework Eclipse + JDT (Java Development Tooling) = Java IDE Pas nécessairement limité au langage Java Eclipse + CDT (C/C++ Development Tooling) = C/C++ IDE Eclipse + AspectJ = Programmation orientée aspect IDE Eclipse + PDT (PHP Development Tooling) = PHP IDE Eclipse + Cobol = Cobol IDEkeulkeul.blogspot.com Eclipse + B = Méthode B IDE Eclipse + JDT + CDT + PHP = (Java + C/C++ + Cobol) IDE Plateforme Eclipse - M. Baron - Page 12
  13. 13. Eclipse = Tools Framework Toute l’architecture est basée sur la notion de plug-ins. Les fonctionnalités sont conçues à partir de plug-ins Architecture modulaire et incrémentale Minimiser l’occupation mémoire et optimiser les performances Mécanisme de chargement souple et incrémental (architecture OSGi) Mise à jour transparente des plug-ins Des outils étend la plateforme Eclipse via les plug-ins Web Tools project (WTP) : éditeur xml, javascript, web services, …keulkeul.blogspot.com Eclipse Modelling Framework (EMF) : méta-modélisation Graphical Editing Framework (GEF) : pour dessiner des graphes Test and Performance Tooling Project (TPTP) : tests de charge Et pleins d’autres encore … Plateforme Eclipse - M. Baron - Page 13
  14. 14. Eclipse = Application Framework En supprimant les plug-ins liés à la notion d’environnement de développement, Eclipse fournit un framework pour le développement d’applications Caractéristiques du framework Support multi-plateformes Cadre de développement stricte et évolutifkeulkeul.blogspot.com Composants graphiques riches via SWT et JFace Intégration d’éléments natifs (OLE, Drag and Drop, …) Une plateforme pour le développement de clients riches Plateforme Eclipse - M. Baron - Page 14
  15. 15. Eclipse = Application Framework [clients riches] Application de gestion bancaire basée sur le framework Eclipse RCPkeulkeul.blogspot.com Plateforme Eclipse - M. Baron - Page 15
  16. 16. Eclipse = Application Framework [clients riches] IBM et WebSphere utilise la plateforme Eclipsekeulkeul.blogspot.com Plateforme Eclipse - M. Baron - Page 16
  17. 17. Eclipse = Application Framework [clients riches] Des logiciels Open-Source exploités massivementkeulkeul.blogspot.com Plateforme Eclipse - M. Baron - Page 17
  18. 18. Eclipse = une communauté Tous les projets de la fondation Eclipse sont disponibles en téléchargement libre De très nombreux plug-ins sont fournis par des entreprises, des organisations et par des particuliers De nombreux sites communautaires Developpez.com : www.developpez.com EclipseTotale : www.eclipsetotale.com EclipseZone : eclipsezone.comkeulkeul.blogspot.com EclipseWiki : wiki.eclipse.org Eclipse Plug-in Central : eclipseplugincentral.com Eclipse Evangelism : www.eclipse.org/evangelism Planet Eclipse : www.planeteclipse.org Plateforme Eclipse - M. Baron - Page 18
  19. 19. Eclipse = une communauté Des blogs de commiters, de particuliers ou de communautés Lars Vogel : www.vogella.de/blog Ankur Sharma : eclipsepde.wordpress.com Chris Aniszczyk : mea-bloga.blogspot.com, eclipsesource.com/blogs/author/zx Wayne Beaton : dev.eclipse.org/blogs/wayne Benjamin Cabé : blog.benjamin-cabe.com Kim Horne : eclipse.pookzilla.net Steve Northover : inside-swt.blogspot.comkeulkeul.blogspot.com Tom Schindl : tomsondev.bestsolution.at Mickaël Baron ;-) : keulkeul.blogspot.com, mbaron.developpez.com Patrick Paulin : www.modumind.com Plateforme Eclipse - M. Baron - Page 19
  20. 20. Eclipse = une bibliothèque The Definitive Guide to SWT and JFace Auteur : Rob Warner, Robert Harris Éditeur : Apress Edition : 2004 - 864 pages - ISBN : 1-59059-325-1 Eclipse – Building Commercial-Quality Plug-ins Auteur : Eric Clayberg, Dan Rubel Éditeur : Addison Wesley Edition : 2004 - 864 pages - ISBN : 0-321-22847-2keulkeul.blogspot.com Eclipse – Rich Client Platform Auteur : Jeff Mc Affer, Jean-Michel Lemieux Éditeur : Addison Wesley Edition : 2005 – 552 pages - ISBN : 0-321-33461-2 Plateforme Eclipse - M. Baron - Page 20
  21. 21. Développement de clientsriches : Plateforme Eclipse RCP Chapitre 1 : Introduction Vers le « Bureau Métier » avec Eclipse RCP Mickaël BARON - 2007 (Rév. Janvier 2009) mailto:baron.mickael@gmail.com ou mailto:baron@ensma.fr
  22. 22. Eclipse RCP est un client lourd riche ? Depuis peu un nouveau type d’application fait son apparition Clients « riches » Les clients riches représentent une fusion des clients « lourds » et « légers » Interfaces utilisateurs riches Déploiement et maintenance Ce sont des applications distantes avec les avantages des applications locales Technologie permettant de développer la couche présentationkeulkeul.blogspot.com d’une application Informations supplémentaires concernant les technologies du marché : keulkeul.blogspot.com/2007/12/clients-riches-les- technologies-du.html Plateforme Eclipse - M. Baron - Page 22
  23. 23. Eclipse RCP est un client lourd riche ? + Accessibilité de l’IHM* Client Légerkeulkeul.blogspot.com Terminaux Client Lourd Richesse de l’IHM* IHM* = Interfaces Homme-Machine Plateforme Eclipse - M. Baron - Page 23
  24. 24. Eclipse RCP est un client lourd riche ? Pas de standardisation du terme client riche Pour simplifier, on peut voir les choses de la façon suivante Clients lourds riches ? Un client lourd offrant des fonctionnalités de déploiement et de mise à jour facilité Clients légers riches ? Un client léger offrant des possibilités d’interactions évoluées comme celles proposées par le client lourdkeulkeul.blogspot.com C’est quoi alors le Web 2.0 ? Généralement cela s’adresse à la « bulle Internet » donc pour le client léger riche Un réseau social où les utilisateurs partagent des photos, du texte, de la vidéo Plateforme Eclipse - M. Baron - Page 24
  25. 25. Eclipse RCP est un client lourd riche ? Une application Eclipse RCP est déployable au travers de la technologie Java Web Start (JWS) Installation par un simple lien hypertexte Installation implicite de l’application et de ses bibliothèques utilisées Mise à jour à chaque chargement de l’application et des bibliothèques Le framework RCP fournit un système interne de mise à jour appelé « UpdateManager » Ajout de nouvelles fonctionnalités de manière dynamique Composants graphiques évolués (c’est du client lourd)keulkeul.blogspot.com Intégration de conteneurs hétérogènes Navigateur WEB Intégration OLE Intégration d’applications natives Plateforme Eclipse - M. Baron - Page 25
  26. 26. Vers le « Bureau métier » avec Eclipse RCP Contexte : la majorité des Systèmes d’Information (SI) ont été réalisée de manière atomique où chaque sous-système est adossé à des technologies hétérogènes Plusieurs types de client Client léger, client lourd, terminaux Plusieurs langages de développement Java, .NET, Delphi, Cobol, … Plusieurs systèmes d’exploitation Windows, Linux, AS/400, MAC OS, Unix, …keulkeul.blogspot.com Plusieurs bases de données Oracle, SQLServer, MySQL, DB2 Plusieurs moniteurs transactionnels Tuxedo, serveurs d’application Plateforme Eclipse - M. Baron - Page 26
  27. 27. Vers le « Bureau métier » avec Eclipse RCP Un Système d’Information est généralement disponible via un ensemble d’applications fournissant chacun un ensemble de services Le Système d’Information doit être vu en terme de services et non plus en terme d’applications où chaque domaine métier est responsable des services qu’il propose Le Système d’Information s’oriente donc vers une Architecture Orientée Service (SOA)keulkeul.blogspot.com L’utilisateur a besoin d’utiliser conjointement tous ces services Le « Bureau Métier » articulé autour des besoins métiers doit ainsi pouvoir fournir ces services de manière intégrée Plateforme Eclipse - M. Baron - Page 27
  28. 28. Intégrer des services dans le « Bureau métier » Eclipse RCP peut intégrer des applications WEB avec des communications bidirectionnelles (WEB / Eclipse RCP) Eclipse RCP peut embarquer un serveur d’application Java EE Eclipse peut intégrer des applications existantes avec une intégration OLE (logiciels de bureautique) Eclipse peut intégrer des applications Client / Serveurkeulkeul.blogspot.com développées sous des plateformes différentes (.NET, Delphi) Eclipse peut intégrer des applications d’anciens systèmes terminaux en fournissant un conteneur adapté Plateforme Eclipse - M. Baron - Page 28
  29. 29. Pourquoi pas un client léger riche « Web 2.0 » Le développement de la couche présentation est beaucoup plus complexe et généralement moins ergonomique Pas de multi-fenêtrage Difficulté de construire des dialogues complexes Ne peut intégrer des applications existantes Ne peut intégrer des applications bureautiques Ne peut intégrer des applications WEB différenteskeulkeul.blogspot.com Ne fonctionne pas s’il n’y a pas de réseau Ne peut gérer efficacement l’impression Plateforme Eclipse - M. Baron - Page 29
  30. 30. Modularité et extensibilité via la notion de plugins La plateforme Eclipse repose sur la technologie OSGi Programmation orientée composant (plugin = composant) Architecture orientée service (composant expose des services) Gestion des plugins Gestion des différents chargeurs de classes Gestion des versions des dépendances Cycle de vie des plugins Cycle de vie du composant lors de son entrée dans le conteneur OSGikeulkeul.blogspot.com Cycle de vie du composant lors de son utilisation Services exposés par les plugins Gestion des services définis dans des interfaces Eclipse - M. Baron - Page Plateforme Java 30
  31. 31. Modularité et extensibilité via la notion de plugins Dans l’architecture OSGi le concept de composant est mise en œuvre par l’intermédiaire des Bundles Un bundle correspond à un composant ou à un plugin Un bundle est décrit dans un fichier Jar Les informations de déploiement sont indiquées dans le fichier MANIFEST.MF (informations spécifiques à OSGi) Interactions entre Bundleskeulkeul.blogspot.com Mise à disposition de packages (préciser dans MANIFEST.MF quels sont les packages à exporter) Importation de packages (quels sont les packages issus d’autres bundles à utiliser) Plateforme Eclipse - M. Baron - Page 31
  32. 32. Riches en interactivité La plateforme Eclipse RCP fournit deux boîtes à outils SWT et JFace Des composants additionnels sont également disponibles Nebula (www.eclipse.org/nebula) Comme Eclipse RCP a été développée en Java la boîte à outils Swing fournie avec la JDK est également disponiblekeulkeul.blogspot.com Il est par conséquent possible de mixer des composants SWT et des composants Swing ou tout autre bibliothèques « tiers » basées sur Swing Plateforme Eclipse - M. Baron - Page 32
  33. 33. Riches en interactivité : SWT SWT : Standard Widget Toolkit Fournit des composants de base (bouton, label, …) SWT procure des composants graphiques natifs Combinaison de classes Java et JNI spécifiques à chaque plateforme JNI utilisé pour invoquer le système d’exploitation De part son architecture, il est relativement facile d’intégrer des applications natives avec SWT (exemple : Browser) Application Java Machine SWTkeulkeul.blogspot.com virtuelle SWT.dll, SWT.so, … Système graphique : X11, Windows, etc. Tracé graphique Plateforme Eclipse - M. Baron - Page 33
  34. 34. Riches en interactivité : SWT Shell Composite CoolBar Canvas Spinnerkeulkeul.blogspot.com ToolBar Combo Browser Plateforme Eclipse - M. Baron - Page 34
  35. 35. Riches en interactivité : SWT Table ExpandBar CTabFolder Group Tree ScrolledCompositekeulkeul.blogspot.com StyledText TabFolder Plateforme Eclipse - M. Baron - Page 35
  36. 36. Riches en interactivité : JFace JFace s’appuie sur la bibliothèque SWT pour fournir une API de développement plus évoluée et plus structurée JFace a pour fonction de simplifier les développements en SWT, sans pour autant masquer totalement SWT Combinée à SWT, JFace est utilisée pour le développement d’applications pour la plateforme Eclipse La plateforme Eclipsekeulkeul.blogspot.com s’appuie sur JFace et SWT L’extension et l’encapsulation de SWT La boîte à outils connectée aux composants natifs Plateforme Eclipse - M. Baron - Page 36
  37. 37. Riches en interactivité : JFace TreeViewer TableViewerkeulkeul.blogspot.com TableTreeViewer (TreeViewer avec colonnes) Plateforme Eclipse - M. Baron - Page 37
  38. 38. Riches en interactivité : JFace CheckboxTableViewer ComboViewer ListViewer CheckboxTreeViewerkeulkeul.blogspot.com Plateforme Eclipse - M. Baron - Page 38
  39. 39. Riches en interactivité : SWT + Swing L’API SWT permet d’intégrer des composants basés sur la boîte à outils Swing L’avantage est de pouvoir intégrer des composants qui n’existe pas dans la boîte à outils SWT L’inconvénient est de se trouver avec des composants hétérogènes dans la manière de les utiliser Abonnement à des écouteurs différentskeulkeul.blogspot.com Gestion du « dessin » différent Evitez si possible de Agents de placement différents mixer des composants Swing avec SWT Bref beaucoup de différences Plateforme Eclipse - M. Baron - Page 39
  40. 40. Riches en interactivité : SWT + Swing JFreeChartskeulkeul.blogspot.com JGraph Plateforme Eclipse - M. Baron - Page 40
  41. 41. Riches en interactivité : Web Le composant Browser de SWT fournit un conteneur permet- tant d’intégrer des applications WEB dans une application Eclipse RCP Possibilité de choisir le moteur de rendu Internet Explorer Mozilla Ce conteneur WEB est une porte ouverture à l’intégration d’applications déployées via un navigateur Applications Flashkeulkeul.blogspot.com Applet, Active X Applications de type XUL dans le cas du moteur Mozilla Via la méthode execute(…), il est possible d’injecter du Javascript dans les pages WEB Plateforme Eclipse - M. Baron - Page 41
  42. 42. Riches en interactivité : espace de travail Le framework Eclipse RCP fournit une API pour l’organisation de l’espace de travail de l’utilisateur : Eclipse Workbench Possibilité d’organiser l’agencement du contenu par Métier Profile utilisateur Utilisateur Différentes notions liées à l’organisation de l’espace de travail View (conteneur d’IHM)keulkeul.blogspot.com Editor (conteneur d’IHM unique) Perspective (agencement des Views et de l’Editor) Docking (gestion de l’interaction des Views et de l’Editor) Plateforme Eclipse - M. Baron - Page 42
  43. 43. Riches en interactivité : espace de travail Perspective Java : agencement des L’Editor Views et de l’Editor prédéfinie Une View Deux Views placées en onglet Une Viewkeulkeul.blogspot.com Trois Views placées en onglet Plateforme Eclipse - M. Baron - Page 43
  44. 44. Riches en interactivité : espace de travail Perspective Debug : des Views différentes et un Editor identique Deux Views placées en Une View onglet L’Editorkeulkeul.blogspot.com Deux Views placées en onglet Plateforme Eclipse - M. Baron - Page 44
  45. 45. Développement de clientsriches : Plateforme Eclipse RCP Chapitre 1 : Introduction Outils pour développer des applications Eclipse RCP Mickaël BARON - 2007 (Rév. Janvier 2009) mailto:baron.mickael@gmail.com ou mailto:baron@ensma.fr
  46. 46. Environnements de développement Différentes distributions disponibles en fonction du type de développement souhaité (WEB, Desktop, Mobile) Chaque distribution fournie un ensemble pré-installé de plugins Distributions officielles de la fondation Eclipse Eclipse : www.eclipse.org Distributions prêtes à l’emploikeulkeul.blogspot.com EasyEclipse : www.easyeclipse.org Des solutions payantes qui fournissent des outils à fortes valeurs ajoutées MyEclipse : www.myeclipseide.com Plateforme Eclipse - M. Baron - Page 46
  47. 47. Outils de développement d’interfaces homme-machine Projet VEP : Visual Editor Adresse : www.eclipse.org/vep Outils de construction d’interfaces graphiques de type WYSIWYG Génération automatique du code à partir du modèle de l’IHM en construction Boîte à outils cible : SWT/JFace et AWT/Swing Alternatives payanteskeulkeul.blogspot.com SWT Designer : www.swt-designer.com Jigloo : cloudgarden.com/jigloo Test : www.instantiations.com/PDFs/published/eclipse_mag_de.pdf Plateforme Eclipse - M. Baron - Page 47
  48. 48. Outils de conception et de modélisation Projet EMF : Eclipse Modeling Framework Adresse : www.eclipse.org/emf Framework permettant la meta-modélisation et la génération de code Projet GEF : Graphical Editing Framework Adresse : www.eclipse.org/gef Framework permettant la construction d’éditeurs graphiques Possibilité de combiner EMF et GEF dans le but de générer le modèle « Business » à partir du modèle de la vue etkeulkeul.blogspot.com inversement Outils de modélisation UML (quelques outils gratuits) Omondo … Plateforme Eclipse - M. Baron - Page 48
  49. 49. Outils de gestion de rapports Projet BIRT : Business Intelligence and Reporting Tools Adresse : www.eclipse.org/birt Projet permettant la création et la visualisation de rapports Outils de constructions de rapport graphique (texte, image, tableau, liste, graphique, …) La liaison des données est réalisée de manière graphique est l’originie peut être Statiquekeulkeul.blogspot.com Jeux de données extraits d’une base de données Utilisation de formules prédéfinies Le rendu du rapport peut être réalisé soit d’une page HTML soit dans un fichier PDF Plateforme Eclipse - M. Baron - Page 49
  50. 50. Outils de tests Projet TPTP : Test & Performance Tools Platform Adresse : www.eclipse.org/tptp Tracing and Profiling Tools Project Ensemble d’outils pour analyser une application Java Exécution de l’application en mode ‘Profiling’ pour collecter des informations sur l’occupation mémoire et les temps d’exécution Test Tools Project Tests unitaires Tests automatisés pour les IHMkeulkeul.blogspot.com Monitoring Tools Project Outil générique de supervision sur différentes sources OS, serveurs d’applications JBoss et JOnAS, base de données MySQL Intégration avec Birt pour la génération des rapports Plateforme Eclipse - M. Baron - Page 50
  51. 51. Outils de gestion de base de données Projet DTP : Data Tools Platform Adresse : www.eclipse.org/datatools Ensemble d’outillage pour la manipulation et la visualisation du contenu d’une base de donnée Possibilité de se connecter à tous types de base de données relationnelle (JDBC) Possibilité de lancer des requêtes SQL et de visualiser lekeulkeul.blogspot.com résultat Visualisation du contenu complet d’une table avec possibilité d’interaction (modification) Plateforme Eclipse - M. Baron - Page 51
  52. 52. Outils pour le développement WEB Projet WTP : Web Tools Platform Adresse : www.eclipse.org/webtools Ensemble d’outillage pour le développement à base de technologies client/server Editeurs graphiques relatifs à de nombreux langages Wizard et squelettes d’applications Outils et APIs pour le support, déploiement et le test d’applicationkeulkeul.blogspot.com EJB : outils pour le développement d’EJB Web Services Tools : outils pour le développement et l’interaction avec des Web Services Plateforme Eclipse - M. Baron - Page 52
  53. 53. Outils de gestion des tâches des développeurs Différents outils pour la gestion de l’intégration continue Projet Mylyn : www.eclipse.org/mylyn Gestion des tâches utilisateurs avec possibilité d’interaction avec des gestionnaires de bugs (Bugzilla, Trac, JIRA) Outils de gestion de source : CVS et SVN Un client CVS est installé par défaut dans Eclipse Eclipse Subversive (SVN) est en incubation et est basé sur le client de Polarion (www.polarion.org) Outils pour l’audit de codekeulkeul.blogspot.com Metrics : statistiques sur le code (metrics.sourceforge.net) CheckStyle : propreté du code (checkstyle.sourceforge.net) Findbugs : analyse sémantique du code (findbugs.sourceforge.net) PMD : analyse sémantique du code (pmd.sourceforge.netBaron - Page Plateforme Eclipse - M. ) 53

×