Open Source IDE - eclipse ETIS SS04
Gliederung Motivation Geschichte Architektur Platform Runtime Eclipse Platform Java Development Tools (JDE) Plugin Development Environment (PDE) Zusammenfassung 2
Motivation (I) Was ist eclipse? open source Entwicklungsumgebung Deckt viele OS ab (Windows, Linux, Solaris,...) Sprachneutral (Java, C, Cobol, ) Erweiterbare Plattform für die Werkzeugintegration gesamter Softwarelebenszyklus abdeckbar Framework für Anwendungsentwicklung Welche IDEs kennt ihr noch? JBuilder, NetBeans, IntelliJ IDEA, WSAD, 3
Motivation(II) Wann bzw. warum setzt man IDEs anstatt einfacher Editoren ein? große Projekte heute Software benötigt, die gesamten Softwarelebenszyklus möglichst nahtlos unterstützt Installation, Einarbeitung, Datenaustausch, Teamwork,... erleichtert Anpassbarkeit Refactoring, Debugging, Code-Schablonen, Syntaxcheck, Code Completion, Hovering 4
Geschichte Als kommerzielle Version von OTI + IBM geplant Entwicklung ab April 1999 2001 Version 1.06 an open source -Gemeinde übergeben aktuell: 2.1.3 (3.0M8) Kommunikationsplattform: http://www.eclipse.org Eclipse foundation: IBM, Borland, Red Hat, SAP, Intel, Oracle, HP, Novell,... 5
Architektur (I) Übliche IDE-Architektur monolithisch => Erweiterungen nur wie vorgesehen Erweiterungen wirken oft fremd Eclipse: Extensions Bestandteile: Plugins + Platform Runtime Extensions Plugins nutzen Plugins Endanwender richten eigene Umgebung ein (Installieren + Deinstallieren Plugins) Run-time kernel Erweiterung Teil der Philosophie IDE IDE 6
Architektur (II) 7
Platform Runtime Kern, kein Plugin definiert Plugin Infrastruktur entdeckt beim Start verfügbare Plugins managt Laden der Plugins (lazy loading) nur geladen, wenn benötigt verfügbare Funktionalität vor Laden sichtbar (Manifest) 8
Kernkomponenten, stellen domänenspezifische Basisfunktionalität zur Verfügung Eclipse Platform 9
Eclipse Platform - Workspace Workspace besteht aus Projekten (jeweils auf ein Verzeichnis im Workspace abbildbar ) alle Werkzeuge arbeiten mit Ressourcen aus Workspace des Nutzers 10
Eclipse Platform - Workbench Workbench Implementiert BNO Zusammenspiel von Editoren, Sichten, Perspektiven 11
Workbench (2.1.2) Perspektive Editor View View 12
SWT (Standard Widget Toolkit) Eclipse Platform - SWT Bereitstellung GUI- Komponenten (Button, Tree, ) OS-unabhängige API nutzt plattformeigene Widgets oder emuliert diese 13
Eclipse Platform - SWT Eclipse auf Windows XP Eclipse auf Mac OS X (Carbon) Eclipse auf Linux (Motif) 14
JFace Eclipse Platform - JFace Framework zur Gestaltung grafischer Oberflächen (windowsystem unabhängig) Trennung von Modell und Darstellung bettet SWT in Eclipse- Framework 15
Help Eclipse Platform - weitere Komponenten Team Basis für Versions- und Konfigurationsmanagement gleichzeitige Nutzung von Ressourcen innerhalb Team Debug ANT 16
Java Development Tools (JDT) Fügen zu Eclipse eine vollständige Java IDE hinzu JDT-Core: nicht grafischer Teil des JDT (z.b. Compiler) JDT-UI: Java-Editor + GUIs JDT Debug / Debug-UI JDT Launching: Start von Anwendungen JUnit: Test- Framework 17
Plugin Development Environment (PDE) PDE: IDE für Plugin- Entwicklung ohne PDE: Plugin-Entwicklung recht schwierig basiert auf Eclipse Platform + JDT kann eigene Eclipse-Instanz starten (Test, Debug) 18
Entwicklungsumgebung Zusammenfassung Nachteil: z.t. Standardeditoren nur als Plugins nachrüstbar (JSP, XML) Plattform für Werkzeugintegration Anpassbarkeit + Erweiterbarkeit durch wiederverwendbare Komponenten Werkzeug für schnelle effiziente Werkzeugimplementierung Große Community z.z. min. 484 Plugins Eclipse auch als Application Framework nutzbar 19
Literatur Backschat, M., Edlich, J2EE-Entwicklung mit Open-Source- Tools, Spektrum Akademischer Verlag, München, 2004 http://www.eclipse.org/eclipse/presentation/eclipseslides_files/frame.htm Eclipse Homepage: www.eclipse.org Eclipse Plattform Technical Overview. Object Technology International, Inc., 02/2003 Markus Weyerhäuser: Die Programmierumgebung Eclipse. JAVASpektrum, 02/2003 Gamma, E., Beck, K., Contributing to eclipse, Addison- Wesley, Bosten, 2004 20