Chapitre 1 : Introduction
Avant Propos
Mickal BARON - 2007 (Rv. Janvier 2009) mailto:baron.mickael@gmail.com ou mailto:baron@ensma.fr
Licence
Creative Commons
Contrat Paternit Partage des Conditions Initiales l'Identique
2.0 France
keulkeul.blogspot.com
http://creativecommons.org/licenses/by-sa/2.0/fr
Plateforme Eclipse - M. Baron - Page 2
Bote outils SWT / JFace (Standard Widget Toolkit) Introduction au plugin Eclipse Introduction la plateforme Eclipse RCP
Plateforme Eclipse - M. Baron - Page 3
Pr-requis
Connaissance de Java
keulkeul.blogspot.com
+ dmarre
Batterie + getEtat():int
keulkeul.blogspot.com
A besoin de
Organisation du cours
Chapitre 1 : Introduction la plateforme Eclipse Chapitre 2 : Botes outils (SWT, JFace) Chapitre 3 : Conception de plug-ins
keulkeul.blogspot.com
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 Framework
keulkeul.blogspot.com
Eclipse
keulkeul.blogspot.com
Eclipse = IDE Java Dans la plupart des esprits, Eclipse est un environnement de dveloppement intgr (IDE) Caractristiques de lenvironnement Eclipse
Editeur volu et spcialis (compltion, gabarits, ) Support du refactoring pour re-travailler le code source de manire amliorer la lisibilit et la maintenance Compilation incrmentale
keulkeul.blogspot.com
Tests unitaires Dbuggeur de code Java Support du dveloppement par quipe (CVS par dfaut, SVN, )
Plateforme Eclipse - M. Baron - Page 10
keulkeul.blogspot.com
Eclipse = IDE Framework Eclipse + JDT (Java Development Tooling) = Java IDE Pas ncessairement limit au langage Java
Eclipse + CDT (C/C++ Development Tooling) = C/C++ IDE Eclipse + AspectJ = Programmation oriente aspect IDE Eclipse + PDT (PHP Development Tooling) = PHP IDE
keulkeul.blogspot.com
Eclipse = Tools Framework Toute larchitecture est base sur la notion de plug-ins. Les fonctionnalits sont conues partir de plug-ins Architecture modulaire et incrmentale
Minimiser loccupation mmoire et optimiser les performances Mcanisme de chargement souple et incrmental (architecture OSGi) Mise jour transparente des plug-ins
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 framework
Support multi-plateformes Cadre de dveloppement stricte et volutif
keulkeul.blogspot.com
Composants graphiques riches via SWT et JFace Intgration dlments natifs (OLE, Drag and Drop, )
keulkeul.blogspot.com
keulkeul.blogspot.com
keulkeul.blogspot.com
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 communautaires
Developpez.com : www.developpez.com EclipseTotale : www.eclipsetotale.com
keulkeul.blogspot.com
EclipseZone : eclipsezone.com EclipseWiki : eclipsewikieditme.com Eclipse Plug-in Central : eclipseplugincentral.com Eclipse Evangelism : www.eclipse.org/evangelism Planet Eclipse : www.planeteclipse.org
Plateforme Eclipse - M. Baron - Page 18
Eclipse RCP est un client lourd riche ? Depuis peu un nouveau type dapplication fait son apparition
Clients 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 locales
keulkeul.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.html
Plateforme Eclipse - M. Baron - Page 22
Accessibilit de lIHM*
+
Client Lger
keulkeul.blogspot.com
Terminaux
Client Lourd
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
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
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 client
Client lger, client lourd, terminaux
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 Architecture
keulkeul.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 intgre
Plateforme 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 / Serveur
keulkeul.blogspot.com
dveloppes sous des plateformes diffrentes (.NET, Delphi) Eclipse peut intgrer des applications danciens systmes terminaux en fournissant un conteneur adapt
Plateforme 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 ergonomique
Pas de multi-fentrage Difficult de construire des dialogues complexes
Ne peut intgrer des applications existantes Ne peut intgrer des applications bureautiques
keulkeul.blogspot.com
Ne peut intgrer des applications WEB diffrentes Ne fonctionne pas sil ny a pas de rseau Ne peut grer efficacement limpression
Plateforme Eclipse - M. Baron - Page 29
Modularit et extensibilit via la notion de plugins La plateforme Eclipse repose sur la technologie OSGi
Programmation oriente composant (plugin = composant) Architecture oriente service (composant expose des services)
Cycle de vie du composant lors de son entre dans le conteneur OSGi Cycle de vie du composant lors de son utilisation
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 Bundles
keulkeul.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
Comme Eclipse RCP a t dveloppe en Java la bote outils Swing fournie avec la JDK est galement disponible
keulkeul.blogspot.com
Il est par consquent possible de mixer des composants SWT et des composants Swing ou tout autre bibliothques tiers bases sur Swing
Plateforme 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 natifs
Combinaison 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 Java
keulkeul.blogspot.com
Machine virtuelle
SWT SWT.dll, SWT.so, Systme graphique : X11, Windows, etc. Trac graphique
Plateforme Eclipse - M. Baron - Page 33
Shell Composite
CoolBar
keulkeul.blogspot.com
Combo Browser
Plateforme Eclipse - M. Baron - Page 34
Table ExpandBar
keulkeul.blogspot.com
Group
Tree
CTabFolder ScrolledComposite
StyledText TabFolder
Plateforme 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 Eclipse
keulkeul.blogspot.com
La plateforme Eclipse sappuie sur JFace et SWT Lextension et lencapsulation de SWT La bote outils connecte aux composants natifs
Plateforme Eclipse - M. Baron - Page 36
TableViewer
keulkeul.blogspot.com
keulkeul.blogspot.com
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 utiliser
keulkeul.blogspot.com
Abonnement des couteurs diffrents Gestion du dessin diffrent Agents de placement diffrents Bref beaucoup de diffrences
Evitez si possible de mixer des composants Swing avec SWT
Plateforme Eclipse - M. Baron - Page 39
JFreeCharts
keulkeul.blogspot.com
JGraph
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 rendu
Internet Explorer Mozilla
Ce conteneur WEB est une porte ouverture lintgration dapplications dployes via un navigateur
keulkeul.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 par
Mtier Profile utilisateur Utilisateur
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
LEditor
LEditor keulkeul.blogspot.com
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 Eclipse
Eclipse : www.eclipse.org
EasyEclipse : www.easyeclipse.org
Des solutions payantes qui fournissent des outils fortes valeurs ajoutes
MyEclipse : www.myeclipseide.com
Plateforme 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 construction
keulkeul.blogspot.com
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 graphiques
keulkeul.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 tre
Statique
keulkeul.blogspot.com
Le rendu du rapport peut tre ralis soit dune page HTML soit dans un fichier PDF
Outils de tests Projet TPTP : Test & Performance Tools Platform Adresse : www.eclipse.org/tptp Tracing and Profiling Tools Project
Ensemble doutils pour analyser une application Java Excution de lapplication en mode Profiling pour collecter des informations sur loccupation mmoire et les temps dexcution
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/server
Editeurs graphiques relatifs de nombreux langages Wizard et squelettes dapplications
keulkeul.blogspot.com
EJB : outils pour le dveloppement dEJB Web Services Tools : outils pour le dveloppement et linteraction avec des Web Services
Plateforme 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