Anda di halaman 1dari 53

Dveloppement de clients riches : Plateforme Eclipse RCP

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

Le cours Lobjectif de ce cours


Initiation 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 cours


Introduction la plateforme Eclipse
keulkeul.blogspot.com

Bote outils SWT / JFace (Standard Widget Toolkit) Introduction au plugin Eclipse Introduction la plateforme Eclipse RCP
Plateforme Eclipse - M. Baron - Page 3

Droulement du cours Pdagogie du cours


Prsentation des concepts Illustration avec de nombreux exemples Des bulles daide tout au long du cours
Ceci est une alerte Ceci est une astuce

Pr-requis
Connaissance de Java
keulkeul.blogspot.com

Mise en place du cours


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

Droulement du cours Rappel pour le schma UML (diagramme de classes)


Dmarrable << Interface >> Voiture + dmarre()
Implmentation Hritage

+ dmarre

Batterie + getEtat():int
keulkeul.blogspot.com

VoitureElectrique - disjoncteur:boolen + dmarre()


Association
Plateforme 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-ins
keulkeul.blogspot.com

Chapitre 4 : Modlisation Chapitre 5 : Outils


Plateforme Eclipse - M. Baron - Page 6

Dveloppement de clients riches : Plateforme Eclipse RCP


Chapitre 1 : Introduction
Eclipse nest pas quun IDE Java
Mickal BARON - 2007 (Rv. Janvier 2009) mailto:baron.mickael@gmail.com ou mailto:baron@ensma.fr

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

Tools Framework Application Framework Une communaut


Plateforme 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 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

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 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 + Cobol = Cobol IDE Eclipse + B = Mthode B IDE

Eclipse + JDT + CDT + PHP = (Java + C/C++ + Cobol) IDE


Plateforme 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 incrmentale
Minimiser 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-ins


Web 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 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, )

Une plateforme pour le dveloppement de clients riches


Plateforme 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 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 = une communaut Des blogs de commiters, de particuliers ou de communauts


Steve 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.com
keulkeul.blogspot.com

Plateforme Eclipse - M. Baron - Page 19

Eclipse = une bibliothque 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-2
keulkeul.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

Dveloppement de clients riches : Plateforme Eclipse RCP


Chapitre 1 : Introduction
Vers le Bureau Mtier avec Eclipse RCP

Mickal BARON - 2007 (Rv. Janvier 2009) mailto:baron.mickael@gmail.com ou mailto:baron@ensma.fr

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

Eclipse RCP est un client lourd riche ?

Accessibilit de lIHM*

+
Client Lger

keulkeul.blogspot.com

Terminaux

Client Lourd

Richesse de lIHM* IHM* = Interfaces Homme-Machine


Plateforme 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 lourd
keulkeul.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 dynamique
keulkeul.blogspot.com

Composants graphiques volus (cest du client lourd) Intgration de conteneurs htrognes


Navigateur WEB Intgration OLE Intgration dapplications natives
Plateforme 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 client
Client lger, client lourd, terminaux

Plusieurs langages de dveloppement


Java, .NET, Delphi, Cobol,

Plusieurs systmes dexploitation


keulkeul.blogspot.com

Windows, Linux, AS/400, MAC OS, Unix,

Plusieurs bases de donnes


Oracle, SQLServer, MySQL, DB2

Plusieurs moniteurs transactionnels


Tuxedo, serveurs dapplication
Plateforme 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 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)

Gestion des plugins


Gestion des diffrents chargeurs de classes Gestion des versions des dpendances

Cycle de vie des plugins


keulkeul.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 plugins


Gestion des services dfinis dans des interfaces Java
Plateforme 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 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

Riches en interactivit La plateforme Eclipse RCP fournit deux botes outils


SWT et JFace

Des composants additionnels sont galement disponibles


Nebula (www.eclipse.org/nebula)

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

Riches en interactivit : SWT

Shell Composite

CoolBar

Canvas Spinner ToolBar

keulkeul.blogspot.com

Combo Browser
Plateforme Eclipse - M. Baron - Page 34

Riches en interactivit : SWT

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

Riches en interactivit : JFace


TreeViewer

TableViewer
keulkeul.blogspot.com

TableTreeViewer (TreeViewer avec colonnes)

Plateforme Eclipse - M. Baron - Page 37

Riches en interactivit : JFace


CheckboxTableViewer

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 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

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 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

Diffrentes notions lies lorganisation de lespace de travail


keulkeul.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 RCP


Chapitre 1 : Introduction
Outils pour dvelopper des applications Eclipse RCP

Mickal BARON - 2007 (Rv. Janvier 2009) mailto:baron.mickael@gmail.com ou mailto:baron@ensma.fr

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

Distributions prtes lemploi


keulkeul.blogspot.com

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

Bote outils cible : SWT/JFace et AWT/Swing Alternatives payantes


SWT Designer : www.swt-designer.com Jigloo : cloudgarden.com/jigloo
Plateforme 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 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

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 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

Test Tools Project


Tests unitaires Tests automatiss pour les IHM
keulkeul.blogspot.com

Monitoring Tools Project


Outil gnrique de supervision sur diffrentes sources OS, serveurs dapplications JBoss et JOnAS, base de donnes MySQL

Intgration avec Birt pour la gnration des rapports


Plateforme 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/server
Editeurs graphiques relatifs de nombreux langages Wizard et squelettes dapplications
keulkeul.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 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

Outils pour laudit de code


Metrics : 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

Anda mungkin juga menyukai