eclipse intro
TRANSCRIPT
Dveloppement de clients riches : Plateforme Eclipse RCPChapitre 1 : IntroductionAvant Propos Mickal BARON - 2007 (Rv. Janvier 2009) mailto:[email protected] ou mailto:[email protected]
Licence
Creative CommonsContrat Paternit Partage des Conditions Initiales l'Identique2.0 France
keulkeul.blogspot.com
http://creativecommons.org/licenses/by-sa/2.0/frPlateforme Eclipse - M. Baron - Page 2
Le cours Lobjectif de ce coursInitiation la conception dapplications avec la plateforme Eclipse Architecture logicielle (cration dune application par modules) Intrt spcifique la partie prsentation (SWT, JFace, RCP)
Structuration rapide du coursIntroduction la plateforme Eclipsekeulkeul.blogspot.com
Bote outils SWT / JFace (Standard Widget Toolkit) Introduction au plugin Eclipse Introduction la plateforme Eclipse RCPPlateforme Eclipse - M. Baron - Page 3
Droulement du cours Pdagogie du coursPrsentation des concepts Illustration avec de nombreux exemples Des bulles daide tout au long du coursCeci est une alerte Ceci est une astuce
Pr-requisConnaissance de Javakeulkeul.blogspot.com
Mise en place du coursInternet : 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
Droulement du cours Rappel pour le schma UML (diagramme de classes)Dmarrable > Voiture + dmarre()Implmentation Hritage
+ dmarre
Batterie + getEtat():intkeulkeul.blogspot.com
VoitureElectrique - disjoncteur:boolen + dmarre()AssociationPlateforme Eclipse - M. Baron - Page 5
A besoin de
Organisation du cours
Chapitre 1 : Introduction la plateforme Eclipse Chapitre 2 : Botes outils (SWT, JFace) Chapitre 3 : Conception de plug-inskeulkeul.blogspot.com
Chapitre 4 : Modlisation Chapitre 5 : OutilsPlateforme Eclipse - M. Baron - Page 6
Dveloppement de clients riches : Plateforme Eclipse RCPChapitre 1 : IntroductionEclipse nest pas quun IDE JavaMickal BARON - 2007 (Rv. Janvier 2009) mailto:[email protected] ou mailto:[email protected]
Eclipse Eclipse est un projet dvelopp initialement par IBM Projet Open-Source sous licence EPL Site officiel du projet : www.eclipse.org Eclipse cest quoi ?IDE Java IDE Frameworkkeulkeul.blogspot.com
Tools Framework Application Framework Une communautPlateforme Eclipse - M. Baron - Page 8
Eclipse
keulkeul.blogspot.com
Private Joke : Eclipse Soleil Sun ??Plateforme Eclipse - M. Baron - Page 9
Eclipse = IDE Java Dans la plupart des esprits, Eclipse est un environnement de dveloppement intgr (IDE) Caractristiques de lenvironnement EclipseEditeur volu et spcialis (compltion, gabarits, ) Support du refactoring pour re-travailler le code source de manire amliorer la lisibilit et la maintenance Compilation incrmentalekeulkeul.blogspot.com
Tests unitaires Dbuggeur de code Java Support du dveloppement par quipe (CVS par dfaut, SVN, )Plateforme Eclipse - M. Baron - Page 10
Eclipse = IDE Java
keulkeul.blogspot.com
Plateforme Eclipse - M. Baron - Page 11
Eclipse = IDE Framework Eclipse + JDT (Java Development Tooling) = Java IDE Pas ncessairement limit au langage JavaEclipse + CDT (C/C++ Development Tooling) = C/C++ IDE Eclipse + AspectJ = Programmation oriente aspect IDE Eclipse + PDT (PHP Development Tooling) = PHP IDEkeulkeul.blogspot.com
Eclipse + Cobol = Cobol IDE Eclipse + B = Mthode B IDE
Eclipse + JDT + CDT + PHP = (Java + C/C++ + Cobol) IDEPlateforme Eclipse - M. Baron - Page 12
Eclipse = Tools Framework Toute larchitecture est base sur la notion de plug-ins. Les fonctionnalits sont conues partir de plug-ins Architecture modulaire et incrmentaleMinimiser loccupation mmoire et optimiser les performances Mcanisme de chargement souple et incrmental (architecture OSGi) Mise jour transparente des plug-ins
Des outils tend la plateforme Eclipse via les plug-insWeb Tools project (WTP) : diteur xml, javascript, web services, keulkeul.blogspot.com
Eclipse Modelling Framework (EMF) : mta-modlisation Graphical Editing Framework (GEF) : pour dessiner des graphes Test and Performance Tooling Project (TPTP) : tests de charge Et pleins dautres encore Plateforme Eclipse - M. Baron - Page 13
Eclipse = Application Framework En supprimant les plug-ins lis la notion denvironnement de dveloppement, Eclipse fournit un framework pour le dveloppement dapplications Caractristiques du frameworkSupport multi-plateformes Cadre de dveloppement stricte et volutifkeulkeul.blogspot.com
Composants graphiques riches via SWT et JFace Intgration dlments natifs (OLE, Drag and Drop, )
Une plateforme pour le dveloppement de clients richesPlateforme Eclipse - M. Baron - Page 14
Eclipse = Application Framework [clients riches]
Application de gestion bancaire base sur le framework Eclipse RCP
keulkeul.blogspot.com
Plateforme Eclipse - M. Baron - Page 15
Eclipse = Application Framework [clients riches]
IBM et WebSphere utilise la plateforme Eclipse
keulkeul.blogspot.com
Plateforme Eclipse - M. Baron - Page 16
Eclipse = Application Framework [clients riches]
Des logiciels Open-Source exploits massivement
keulkeul.blogspot.com
Plateforme Eclipse - M. Baron - Page 17
Eclipse = une communaut Tous les projets de la fondation Eclipse sont disponibles en tlchargement libre De trs nombreux plug-ins sont fournis par des entreprises, des organisations et par des particuliers De nombreux sites communautairesDeveloppez.com : www.developpez.com EclipseTotale : www.eclipsetotale.comkeulkeul.blogspot.com
EclipseZone : eclipsezone.com EclipseWiki : eclipsewikieditme.com Eclipse Plug-in Central : eclipseplugincentral.com Eclipse Evangelism : www.eclipse.org/evangelism Planet Eclipse : www.planeteclipse.orgPlateforme Eclipse - M. Baron - Page 18
Eclipse = une communaut Des blogs de commiters, de particuliers ou de communautsSteve Northover : inside-swt.blogspot.com Tom Schindl : tom-eclipse-dev.blogspot.com Kim Horne : eclipse.pookzilla.net Wayne Beaton : dev.eclipse.org/blogs/wayne Chris Aniszczyk : mea-bloga.blogspot.com Mickal Baron ;-) : keulkeul.blogspot.comkeulkeul.blogspot.com
Plateforme Eclipse - M. Baron - Page 19
Eclipse = une bibliothque The Definitive Guide to SWT and JFaceAuteur : Rob Warner, Robert Harris diteur : Apress Edition : 2004 - 864 pages - ISBN : 1-59059-325-1
Eclipse Building Commercial-Quality Plug-insAuteur : Eric Clayberg, Dan Rubel diteur : Addison Wesley Edition : 2004 - 864 pages - ISBN : 0-321-22847-2keulkeul.blogspot.com
Eclipse Rich Client PlatformAuteur : Jeff Mc Affer, Jean-Michel Lemieux diteur : Addison Wesley Edition : 2005 552 pages - ISBN : 0-321-33461-2Plateforme Eclipse - M. Baron - Page 20
Dveloppement de clients riches : Plateforme Eclipse RCPChapitre 1 : IntroductionVers le Bureau Mtier avec Eclipse RCP
Mickal BARON - 2007 (Rv. Janvier 2009) mailto:[email protected] ou mailto:[email protected]
Eclipse RCP est un client lourd riche ? Depuis peu un nouveau type dapplication fait son apparitionClients riches
Les clients riches reprsentent une fusion des clients lourds et lgers Interfaces utilisateurs riches Dploiement et maintenance
Ce sont des applications distantes avec les avantages des applications localeskeulkeul.blogspot.com
Technologie permettant de dvelopper la couche prsentation dune application Informations supplmentaires concernant les technologies du march : keulkeul.blogspot.com/2007/12/clients-riches-lestechnologies-du.htmlPlateforme Eclipse - M. Baron - Page 22
Eclipse RCP est un client lourd riche ?
Accessibilit de lIHM*
+Client Lger
keulkeul.blogspot.com
Terminaux
Client Lourd
Richesse de lIHM* IHM* = Interfaces Homme-MachinePlateforme Eclipse - M. Baron - Page 23
Eclipse RCP est un client lourd riche ? Pas de standardisation du terme client riche Pour simplifier, on peut voir les choses de la faon suivante Clients lourds riches ?Un client lourd offrant des fonctionnalits de dploiement et de mise jour facilit
Clients lgers riches ?Un client lger offrant des possibilits dinteractions volues comme celles proposes par le client lourdkeulkeul.blogspot.com
Cest quoi alors le Web 2.0 ?Gnralement cela sadresse la bulle Internet donc pour le client lger riche Un rseau social o les utilisateurs partagent des photos, du texte, de la vido Plateforme Eclipse - M. Baron - Page 24
Eclipse RCP est un client lourd riche ? Une application Eclipse RCP est dployable au travers de la technologie Java Web Start (JWS)Installation par un simple lien hypertexte Installation implicite de lapplication et de ses bibliothques utilises Mise jour chaque chargement de lapplication et des bibliothques
Le framework RCP fournit un systme interne de mise jour appel UpdateManager Ajout de nouvelles fonctionnalits de manire dynamiquekeulkeul.blogspot.com
Composants graphiques volus (cest du client lourd) Intgration de conteneurs htrognesNavigateur WEB Intgration OLE Intgration dapplications nativesPlateforme Eclipse - M. Baron - Page 25
Vers le Bureau mtier avec Eclipse RCP Contexte : la majorit des Systmes dInformation (SI) ont t ralise de manire atomique o chaque sous-systme est adoss des technologies htrognes Plusieurs types de clientClient lger, client lourd, terminaux
Plusieurs langages de dveloppementJava, .NET, Delphi, Cobol,
Plusieurs systmes dexploitationkeulkeul.blogspot.com
Windows, Linux, AS/400, MAC OS, Unix,
Plusieurs bases de donnesOracle, SQLServer, MySQL, DB2
Plusieurs moniteurs transactionnelsTuxedo, serveurs dapplicationPlateforme Eclipse - M. Baron - Page 26
Vers le Bureau mtier avec Eclipse RCP Un Systme dInformation est gnralement disponible via un ensemble dapplications fournissant chacun un ensemble de services Le Systme dInformation doit tre vu en terme de services et non plus en terme dapplications o chaque domaine mtier est responsable des services quil propose Le Systme dInformation soriente donc vers une Architecturekeulkeul.blogspot.com
Oriente Service (SOA) Lutilisateur a besoin dutiliser conjointement tous ces services Le Bureau Mtier articul autour des besoins mtiers doit ainsi pouvoir fournir ces services de manire intgrePlateforme Eclipse - M. Baron - Page 27
Intgrer des services dans le Bureau mtier Eclipse RCP peut intgrer des applications WEB avec des communications bidirectionnelles (WEB / Eclipse RCP) Eclipse RCP peut embarquer un serveur dapplication Java EE Eclipse peut intgrer des applications existantes avec une intgration OLE (logiciels de bureautique) Eclipse peut intgrer des applications Client / Serveurkeulkeul.blogspot.com
dveloppes sous des plateformes diffrentes (.NET, Delphi) Eclipse peut intgrer des applications danciens systmes terminaux en fournissant un conteneur adaptPlateforme Eclipse - M. Baron - Page 28
Pourquoi pas un client lger riche Web 2.0 Le dveloppement de la couche prsentation est beaucoup plus complexe et gnralement moins ergonomiquePas de multi-fentrage Difficult de construire des dialogues complexes
Ne peut intgrer des applications existantes Ne peut intgrer des applications bureautiqueskeulkeul.blogspot.com
Ne peut intgrer des applications WEB diffrentes Ne fonctionne pas sil ny a pas de rseau Ne peut grer efficacement limpressionPlateforme Eclipse - M. Baron - Page 29
Modularit et extensibilit via la notion de plugins La plateforme Eclipse repose sur la technologie OSGiProgrammation oriente composant (plugin = composant) Architecture oriente service (composant expose des services)
Gestion des pluginsGestion des diffrents chargeurs de classes Gestion des versions des dpendances
Cycle de vie des pluginskeulkeul.blogspot.com
Cycle de vie du composant lors de son entre dans le conteneur OSGi Cycle de vie du composant lors de son utilisation
Services exposs par les pluginsGestion des services dfinis dans des interfaces JavaPlateforme Eclipse - M. Baron - Page 30
Modularit et extensibilit via la notion de plugins Dans larchitecture OSGi le concept de composant est mise en uvre par lintermdiaire des Bundles Un bundle correspond un composant ou un plugin Un bundle est dcrit dans un fichier Jar Les informations de dploiement sont indiques dans le fichier MANIFEST.MF (informations spcifiques OSGi) Interactions entre Bundleskeulkeul.blogspot.com
Mise disposition de packages (prciser dans MANIFEST.MF quels sont les packages exporter) Importation de packages (quels sont les packages issus dautres bundles utiliser)Plateforme Eclipse - M. Baron - Page 31
Riches en interactivit La plateforme Eclipse RCP fournit deux botes outilsSWT et JFace
Des composants additionnels sont galement disponiblesNebula (www.eclipse.org/nebula)
Comme Eclipse RCP a t dveloppe en Java la bote outils Swing fournie avec la JDK est galement disponiblekeulkeul.blogspot.com
Il est par consquent possible de mixer des composants SWT et des composants Swing ou tout autre bibliothques tiers bases sur SwingPlateforme Eclipse - M. Baron - Page 32
Riches en interactivit : SWT SWT : Standard Widget Toolkit Fournit des composants de base (bouton, label, ) SWT procure des composants graphiques natifsCombinaison de classes Java et JNI spcifiques chaque plateforme JNI utilis pour invoquer le systme dexploitation
De part son architecture, il est relativement facile dintgrer des applications natives avec SWT (exemple : Browser)Application Javakeulkeul.blogspot.com
Machine virtuelle
SWT SWT.dll, SWT.so, Systme graphique : X11, Windows, etc. Trac graphiquePlateforme Eclipse - M. Baron - Page 33
Riches en interactivit : SWT
Shell Composite
CoolBar
Canvas Spinner ToolBar
keulkeul.blogspot.com
Combo BrowserPlateforme Eclipse - M. Baron - Page 34
Riches en interactivit : SWT
Table ExpandBar
keulkeul.blogspot.com
Group
Tree
CTabFolder ScrolledComposite
StyledText TabFolderPlateforme Eclipse - M. Baron - Page 35
Riches en interactivit : JFace JFace sappuie sur la bibliothque SWT pour fournir une API de dveloppement plus volue et plus structure JFace a pour fonction de simplifier les dveloppements en SWT, sans pour autant masquer totalement SWT Combine SWT, JFace est utilise pour le dveloppement dapplications pour la plateforme Eclipsekeulkeul.blogspot.com
La plateforme Eclipse sappuie sur JFace et SWT Lextension et lencapsulation de SWT La bote outils connecte aux composants natifsPlateforme Eclipse - M. Baron - Page 36
Riches en interactivit : JFaceTreeViewer
TableViewerkeulkeul.blogspot.com
TableTreeViewer (TreeViewer avec colonnes)
Plateforme Eclipse - M. Baron - Page 37
Riches en interactivit : JFaceCheckboxTableViewer
ComboViewer ListViewer CheckboxTreeViewer
keulkeul.blogspot.com
Plateforme Eclipse - M. Baron - Page 38
Riches en interactivit : SWT + Swing LAPI SWT permet dintgrer des composants bass sur la bote outils Swing Lavantage est de pouvoir intgrer des composants qui nexiste pas dans la bote outils SWT Linconvnient est de se trouver avec des composants htrognes dans la manire de les utiliserkeulkeul.blogspot.com
Abonnement des couteurs diffrents Gestion du dessin diffrent Agents de placement diffrents Bref beaucoup de diffrencesEvitez si possible de mixer des composants Swing avec SWTPlateforme Eclipse - M. Baron - Page 39
Riches en interactivit : SWT + Swing
JFreeCharts
keulkeul.blogspot.com
JGraph
Plateforme Eclipse - M. Baron - Page 40
Riches en interactivit : Web Le composant Browser de SWT fournit un conteneur permettant dintgrer des applications WEB dans une application Eclipse RCP Possibilit de choisir le moteur de renduInternet Explorer Mozilla
Ce conteneur WEB est une porte ouverture lintgration dapplications dployes via un navigateurkeulkeul.blogspot.com
Applications Flash Applet, Active X Applications de type XUL dans le cas du moteur Mozilla
Via la mthode execute(), il est possible dinjecter du Javascript dans les pages WEB Plateforme Eclipse - M. Baron - Page
41
Riches en interactivit : espace de travail Le framework Eclipse RCP fournit une API pour lorganisation de lespace de travail de lutilisateur : Eclipse Workbench Possibilit dorganiser lagencement du contenu parMtier Profile utilisateur Utilisateur
Diffrentes notions lies lorganisation de lespace de travailkeulkeul.blogspot.com
View (conteneur dIHM) Editor (conteneur dIHM unique) Perspective (agencement des Views et de lEditor) Docking (gestion de linteraction des Views et de lEditor)Plateforme Eclipse - M. Baron - Page 42
Riches en interactivit : espace de travail
Perspective Java : agencement des Views et de lEditor prdfinie
LEditor
Une View Deux Views places en onglet
Une View keulkeul.blogspot.com
Trois Views places en onglet
Plateforme Eclipse - M. Baron - Page 43
Riches en interactivit : espace de travail
Perspective Debug : des Views diffrentes et un Editor identique Une View
Deux Views places en onglet
LEditor keulkeul.blogspot.com
Deux Views places en onglet
Plateforme Eclipse - M. Baron - Page 44
Dveloppement de clients riches : Plateforme Eclipse RCPChapitre 1 : IntroductionOutils pour dvelopper des applications Eclipse RCP
Mickal BARON - 2007 (Rv. Janvier 2009) mailto:[email protected] ou mailto:[email protected]
Environnements de dveloppement Diffrentes distributions disponibles en fonction du type de dveloppement souhait (WEB, Desktop, Mobile) Chaque distribution fournie un ensemble pr-install de plugins Distributions officielles de la fondation EclipseEclipse : www.eclipse.org
Distributions prtes lemploikeulkeul.blogspot.com
EasyEclipse : www.easyeclipse.org
Des solutions payantes qui fournissent des outils fortes valeurs ajoutesMyEclipse : www.myeclipseide.comPlateforme Eclipse - M. Baron - Page 46
Outils de dveloppement dinterfaces homme-machine Projet VEP : Visual Editor Adresse : www.eclipse.org/vep Outils de construction dinterfaces graphiques de type WYSIWYG Gnration automatique du code partir du modle de lIHM en constructionkeulkeul.blogspot.com
Bote outils cible : SWT/JFace et AWT/Swing Alternatives payantesSWT Designer : www.swt-designer.com Jigloo : cloudgarden.com/jiglooPlateforme Eclipse - M. Baron - Page 47
Outils de conception et de modlisation Projet EMF : Eclipse Modeling Framework Adresse : www.eclipse.org/emf Framework permettant la meta-modlisation et la gnration de code Projet GEF : Graphical Editing Framework Adresse : www.eclipse.org/gef Framework permettant la construction dditeurs graphiqueskeulkeul.blogspot.com
Possibilit de combiner EMF et GEF dans le but de gnrer le modle Business partir du modle de la vue et inversement Outils de modlisation UML (quelques outils gratuits) Omondo Plateforme Eclipse - M. Baron - Page 48
Outils de gestion de rapports Projet BIRT : Business Intelligence and Reporting Tools Adresse : www.eclipse.org/birt Projet permettant la cration et la visualisation de rapports Outils de constructions de rapport graphique (texte, image, tableau, liste, graphique, ) La liaison des donnes est ralise de manire graphique est loriginie peut treStatiquekeulkeul.blogspot.com
Jeux de donnes extraits dune base de donnes Utilisation de formules prdfinies
Le rendu du rapport peut tre ralis soit dune page HTML soit dans un fichier PDF
Plateforme Eclipse - M. Baron - Page 49
Outils de tests Projet TPTP : Test & Performance Tools Platform Adresse : www.eclipse.org/tptp Tracing and Profiling Tools ProjectEnsemble doutils pour analyser une application Java Excution de lapplication en mode Profiling pour collecter des informations sur loccupation mmoire et les temps dexcution
Test Tools ProjectTests unitaires Tests automatiss pour les IHMkeulkeul.blogspot.com
Monitoring Tools ProjectOutil gnrique de supervision sur diffrentes sources OS, serveurs dapplications JBoss et JOnAS, base de donnes MySQL
Intgration avec Birt pour la gnration des rapportsPlateforme Eclipse - M. Baron - Page 50
Outils de gestion de base de donnes Projet DTP : Data Tools Platform Adresse : www.eclipse.org/datatools Ensemble doutillage pour la manipulation et la visualisation du contenu dune base de donne Possibilit de se connecter tous types de base de donnes relationnelle (JDBC)keulkeul.blogspot.com
Possibilit de lancer des requtes SQL et de visualiser le rsultat Visualisation du contenu complet dune table avec possibilit dinteraction (modification)Plateforme Eclipse - M. Baron - Page 51
Outils pour le dveloppement WEB Projet WTP : Web Tools Platform Adresse : www.eclipse.org/webtools Ensemble doutillage pour le dveloppement base de technologies client/serverEditeurs graphiques relatifs de nombreux langages Wizard et squelettes dapplicationskeulkeul.blogspot.com
Outils et APIs pour le support, dploiement et le test dapplication
EJB : outils pour le dveloppement dEJB Web Services Tools : outils pour le dveloppement et linteraction avec des Web ServicesPlateforme Eclipse - M. Baron - Page 52
Outils de gestion des tches des dveloppeurs Diffrents outils pour la gestion de lintgration continue Projet Mylyn : www.eclipse.org/mylyn Gestion des tches utilisateurs avec possibilit dinteraction avec des gestionnaires de bugs (Bugzilla, Trac, JIRA) Outils de gestion de source : CVS et SVN Un client CVS est install par dfaut dans Eclipse Eclipse Subversive (SVN) est en incubation et est bas sur le client de Polarion (www.polarion.org)keulkeul.blogspot.com
Outils pour laudit de codeMetrics : statistiques sur le code (metrics.sourceforge.net) CheckStyle : propret du code (checkstyle.sourceforge.net) Findbugs : analyse smantique du code (findbugs.sourceforge.net) PMD : analyse smantique du code (pmd.sourceforge.netBaron - Page Plateforme Eclipse - M. )53