Eclipse Intro

download Eclipse Intro

of 53

Transcript of Eclipse Intro

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