+ All Categories
Home > Documents > 1 © 2001, Jens Dibbern, EMPRISE Software + Consulting GmbH Alternativen für die Entwicklung von...

1 © 2001, Jens Dibbern, EMPRISE Software + Consulting GmbH Alternativen für die Entwicklung von...

Date post: 05-Apr-2015
Category:
Upload: angelika-bohmer
View: 106 times
Download: 0 times
Share this document with a friend
30
1 © 2001, Jens Dibbern, EMPRISE Software + Consulting GmbH <[email protected]> Alternativen für die Entwicklung von grafischen Oberflächen in Java GI-Regionalgruppenveranstaltung Bremen/ Oldenburg 4. Dezember 2001 Jens Dibbern, EMPRISE Software + Consulting GmbH Hamburg
Transcript
Page 1: 1 © 2001, Jens Dibbern, EMPRISE Software + Consulting GmbH Alternativen für die Entwicklung von grafischen Oberflächen in Java GI-Regionalgruppenveranstaltung.

1© 2001, Jens Dibbern, EMPRISE Software + Consulting GmbH <[email protected]>

Alternativen für die Entwicklung von grafischen Oberflächen in Java

GI-Regionalgruppenveranstaltung Bremen/ Oldenburg

4. Dezember 2001

Jens Dibbern, EMPRISE Software + Consulting GmbH Hamburg

Page 2: 1 © 2001, Jens Dibbern, EMPRISE Software + Consulting GmbH Alternativen für die Entwicklung von grafischen Oberflächen in Java GI-Regionalgruppenveranstaltung.

2© 2001, Jens Dibbern, EMPRISE Software + Consulting GmbH <[email protected]>

1996 1997 1998 1999 2000 2001

Timeline

IBM Standard Widget Toolkit (SWT)

MS .NET Framework

JDK 1.0 mit dem Abstract Windowing Toolkit (AWT)

MS Application Foundation Classes (AFC)

Sun Java Foundation Classes/Swing (JFC)

MS Windows Foundation Classes (WFC)

Page 3: 1 © 2001, Jens Dibbern, EMPRISE Software + Consulting GmbH Alternativen für die Entwicklung von grafischen Oberflächen in Java GI-Regionalgruppenveranstaltung.

3© 2001, Jens Dibbern, EMPRISE Software + Consulting GmbH <[email protected]>

Abstract Windowing Toolkit (AWT)

• Der Beginn von grafischen Oberflächen in Java

• kleinster gemeinsamer Nenner der unterstützten Plattformen

• sehr geringer Umfang (Button, Checkbox, Choice, Label, List, TextArea, TextField)

Page 4: 1 © 2001, Jens Dibbern, EMPRISE Software + Consulting GmbH Alternativen für die Entwicklung von grafischen Oberflächen in Java GI-Regionalgruppenveranstaltung.

4© 2001, Jens Dibbern, EMPRISE Software + Consulting GmbH <[email protected]>

Application Foundation Classes (AFC)

• Microsofts erste GUI Klassenbibliothek für Java

• Basierend auf dem JDK 1.1 plattformunabhängig

• ausgeliefert mit jeder MS Java VM seit dem Internet Explorer 4

• Unterstützung durch Borland und Metrowerks angekündigt

Page 5: 1 © 2001, Jens Dibbern, EMPRISE Software + Consulting GmbH Alternativen für die Entwicklung von grafischen Oberflächen in Java GI-Regionalgruppenveranstaltung.

5© 2001, Jens Dibbern, EMPRISE Software + Consulting GmbH <[email protected]>

Windows Foundation Classes (WFC)

• Microsofts zweite GUI Klassenbibliothek für Java

• fokussiert auf Microsoft Windows

• verbunden mit der Microsoft Java VM

Page 6: 1 © 2001, Jens Dibbern, EMPRISE Software + Consulting GmbH Alternativen für die Entwicklung von grafischen Oberflächen in Java GI-Regionalgruppenveranstaltung.

6© 2001, Jens Dibbern, EMPRISE Software + Consulting GmbH <[email protected]>

Java Foundation Classes (JFC/Swing)

• Von Sun für das JDK 1.1 nachgeliefert

• Bestandteil der Java 2 Plattform

• aufwendig gestaltet mit Pluggable Look & Feels

• unterstützt von den meisten Entwicklungsumgebungen

Page 7: 1 © 2001, Jens Dibbern, EMPRISE Software + Consulting GmbH Alternativen für die Entwicklung von grafischen Oberflächen in Java GI-Regionalgruppenveranstaltung.

7© 2001, Jens Dibbern, EMPRISE Software + Consulting GmbH <[email protected]>

Aufbau von Swing

Java Virtual Machine

Betriebssystem

Swing

AWT

Anwendung

Page 8: 1 © 2001, Jens Dibbern, EMPRISE Software + Consulting GmbH Alternativen für die Entwicklung von grafischen Oberflächen in Java GI-Regionalgruppenveranstaltung.

8© 2001, Jens Dibbern, EMPRISE Software + Consulting GmbH <[email protected]>

Ablauf beim Erzeugen einer Schaltfläche (Swing)

JButton UI Manager UI Defaults DelegateKonstruktor

getUI(button)

getUI(button)

getClassID()

returns

createUI()

setUI(delegate)

installUI(button)

Page 9: 1 © 2001, Jens Dibbern, EMPRISE Software + Consulting GmbH Alternativen für die Entwicklung von grafischen Oberflächen in Java GI-Regionalgruppenveranstaltung.

9© 2001, Jens Dibbern, EMPRISE Software + Consulting GmbH <[email protected]>

Swing Widgets

Page 10: 1 © 2001, Jens Dibbern, EMPRISE Software + Consulting GmbH Alternativen für die Entwicklung von grafischen Oberflächen in Java GI-Regionalgruppenveranstaltung.

10© 2001, Jens Dibbern, EMPRISE Software + Consulting GmbH <[email protected]>

IBM Standard Widget Toolkit (SWT)

• Bestandteil des Eclipse Projekts

• Basis für zukünftige Entwicklungsumgebungen von IBM

• plattformunabhängige API - plattformabhängige Implementierung

• Open Source Software

Page 11: 1 © 2001, Jens Dibbern, EMPRISE Software + Consulting GmbH Alternativen für die Entwicklung von grafischen Oberflächen in Java GI-Regionalgruppenveranstaltung.

11© 2001, Jens Dibbern, EMPRISE Software + Consulting GmbH <[email protected]>

Aufbau von SWT

Java Virtual Machine

Betriebssystem

JFace

SWT

Anwendung

SWT Shared Library

Page 12: 1 © 2001, Jens Dibbern, EMPRISE Software + Consulting GmbH Alternativen für die Entwicklung von grafischen Oberflächen in Java GI-Regionalgruppenveranstaltung.

12© 2001, Jens Dibbern, EMPRISE Software + Consulting GmbH <[email protected]>

Ablauf beim Erzeugen einer Schaltfläche (SWT)

• Dies ist plattformabhängig!

• Im Konstruktor wird über das Java Native Interface (JNI) die systemspezifische Abbildung einer Schaltfläche erzeugt.

• Der Quellcode ist offengelegt, aber nur von erfahrenen Entwicklern für die jeweilige Plattform nachvollziehbar.

Page 13: 1 © 2001, Jens Dibbern, EMPRISE Software + Consulting GmbH Alternativen für die Entwicklung von grafischen Oberflächen in Java GI-Regionalgruppenveranstaltung.

13© 2001, Jens Dibbern, EMPRISE Software + Consulting GmbH <[email protected]>

SWT Widgets

Page 14: 1 © 2001, Jens Dibbern, EMPRISE Software + Consulting GmbH Alternativen für die Entwicklung von grafischen Oberflächen in Java GI-Regionalgruppenveranstaltung.

14© 2001, Jens Dibbern, EMPRISE Software + Consulting GmbH <[email protected]>

Microsoft J# und das .NET Framework

• Bestandteil von Microsofts .NET Initiative

• Java Syntax & API auf dem Stand des JDK 1.1.4

• Nutzt weder Java Bytecode noch eine Java Virtual Machine

• Last but not least:„This is preliminary documentation and subject to change.“

Page 15: 1 © 2001, Jens Dibbern, EMPRISE Software + Consulting GmbH Alternativen für die Entwicklung von grafischen Oberflächen in Java GI-Regionalgruppenveranstaltung.

15© 2001, Jens Dibbern, EMPRISE Software + Consulting GmbH <[email protected]>

Aufbau von J# und dem .NET Framework

Common Language Runtime

Betriebssystem

Anwendung

Framework Class Library

Page 16: 1 © 2001, Jens Dibbern, EMPRISE Software + Consulting GmbH Alternativen für die Entwicklung von grafischen Oberflächen in Java GI-Regionalgruppenveranstaltung.

16© 2001, Jens Dibbern, EMPRISE Software + Consulting GmbH <[email protected]>

Ablauf beim Erzeugen einer Schaltfläche (J# & .NET)

• Dies ist nicht nachvollziehbar, da der Quellcode nicht offengelegt wird.

• Die Annahme eines ähnlichen Ablaufes wie beim SWT wirkt plausibel - große Teile der Framework Class Library werden in C bzw. C++ codiert und in Intermediate Language (MSIL) übersetzt sein.

Page 17: 1 © 2001, Jens Dibbern, EMPRISE Software + Consulting GmbH Alternativen für die Entwicklung von grafischen Oberflächen in Java GI-Regionalgruppenveranstaltung.

17© 2001, Jens Dibbern, EMPRISE Software + Consulting GmbH <[email protected]>

.NET Widgets

Page 18: 1 © 2001, Jens Dibbern, EMPRISE Software + Consulting GmbH Alternativen für die Entwicklung von grafischen Oberflächen in Java GI-Regionalgruppenveranstaltung.

18© 2001, Jens Dibbern, EMPRISE Software + Consulting GmbH <[email protected]>

Was bedeutet „Performance“ für uns

• Ausführungsgeschwindigkeit

• Laufzeit beim Starten

• Hauptspeichernutzung

• Skalierbarkeit

• wahrgenommene Leistung

Page 19: 1 © 2001, Jens Dibbern, EMPRISE Software + Consulting GmbH Alternativen für die Entwicklung von grafischen Oberflächen in Java GI-Regionalgruppenveranstaltung.

19© 2001, Jens Dibbern, EMPRISE Software + Consulting GmbH <[email protected]>

Ein paar Worte zur Ergonomie

• Einfache und natürliche Dialoge• Sprich die Sprache des Benutzers• Belaste das Gedächtnis wenig• Sei konsistent• Gib Rückmeldungen• Klar gekennzeichnete Ausgänge• Stelle Abkürzungen zur Verfügung• Liefere gute Fehlermeldungen• Beuge Fehlern vor

Page 20: 1 © 2001, Jens Dibbern, EMPRISE Software + Consulting GmbH Alternativen für die Entwicklung von grafischen Oberflächen in Java GI-Regionalgruppenveranstaltung.

20© 2001, Jens Dibbern, EMPRISE Software + Consulting GmbH <[email protected]>

Vor- und Nachteile von Swing

+ Ausführliche Dokumentation

+ Breite Unterstützung durch Softwareindustrie

+ Quellcode verfügbar

- aufwendige, „teure“ Architektur

- Nachbildung plattformspezifischer Eigenschaften

Page 21: 1 © 2001, Jens Dibbern, EMPRISE Software + Consulting GmbH Alternativen für die Entwicklung von grafischen Oberflächen in Java GI-Regionalgruppenveranstaltung.

21© 2001, Jens Dibbern, EMPRISE Software + Consulting GmbH <[email protected]>

Regeln für die Benutzung von Swing

• Verstehen & benutzen Sie das verwendete MVC Paradigma

• Default Renderer sind nicht auf Ihre Anwendung abgestimmt

• Verstehen Sie & arbeiten Sie mit Threads

• Ein Profiler kann helfen!

• Das JDK 1.4 hoffentlich auch?

Page 22: 1 © 2001, Jens Dibbern, EMPRISE Software + Consulting GmbH Alternativen für die Entwicklung von grafischen Oberflächen in Java GI-Regionalgruppenveranstaltung.

22© 2001, Jens Dibbern, EMPRISE Software + Consulting GmbH <[email protected]>

Wann setze ich Swing in Projekten ein?

• Jetzt

• Wenn andere Klassenbibliotheken nicht in Frage kommen

Page 23: 1 © 2001, Jens Dibbern, EMPRISE Software + Consulting GmbH Alternativen für die Entwicklung von grafischen Oberflächen in Java GI-Regionalgruppenveranstaltung.

23© 2001, Jens Dibbern, EMPRISE Software + Consulting GmbH <[email protected]>

Vor- und Nachteile von SWT

+ Effiziente, „schnelle“ Architektur

+ Open Source Software

+ Referenzprojekt im Quellcode mitgeliefert

- mangelnde Dokumentation

- Plattformabhängigkeit

Page 24: 1 © 2001, Jens Dibbern, EMPRISE Software + Consulting GmbH Alternativen für die Entwicklung von grafischen Oberflächen in Java GI-Regionalgruppenveranstaltung.

24© 2001, Jens Dibbern, EMPRISE Software + Consulting GmbH <[email protected]>

Regeln für die Benutzung des SWT

• If you created it, you dispose it.

SWT Klassen belegen im Konstruktor Systemressourcen, die explizit freigegeben werden müssen.

• Disposing the parent disposes the children.

Abhängige Objekte werden implizit freigegeben.

Page 25: 1 © 2001, Jens Dibbern, EMPRISE Software + Consulting GmbH Alternativen für die Entwicklung von grafischen Oberflächen in Java GI-Regionalgruppenveranstaltung.

25© 2001, Jens Dibbern, EMPRISE Software + Consulting GmbH <[email protected]>

Wann setze ich SWT in Projekten ein?

• Wenn das Projekt den Einsatz von SWT demonstrieren soll

• Wenn über Personal mit SWT Erfahrung verfügt wird

• Wenn die Unterstützung von anderen Systemen als Windows oder Linux nicht benötigt wird

Page 26: 1 © 2001, Jens Dibbern, EMPRISE Software + Consulting GmbH Alternativen für die Entwicklung von grafischen Oberflächen in Java GI-Regionalgruppenveranstaltung.

26© 2001, Jens Dibbern, EMPRISE Software + Consulting GmbH <[email protected]>

Vor- und Nachteile von J# & .NET

+ Enge Integration in die Windows Plattform

+ Hochwertige Entwicklungsumgebung verfügbar

- Plattformabhängigkeit

- Proprietäre Laufzeitumgebung

- Keine Unterstützung der Java 2 Plattform

- kein RMI

Page 27: 1 © 2001, Jens Dibbern, EMPRISE Software + Consulting GmbH Alternativen für die Entwicklung von grafischen Oberflächen in Java GI-Regionalgruppenveranstaltung.

27© 2001, Jens Dibbern, EMPRISE Software + Consulting GmbH <[email protected]>

Regeln für die Benutzung von J# & .NET

• Es gibt keine Regeln.

• Das nächste Beta Release ist Dein Feind.

• Das erste Final Release ist Dein Freund.

Page 28: 1 © 2001, Jens Dibbern, EMPRISE Software + Consulting GmbH Alternativen für die Entwicklung von grafischen Oberflächen in Java GI-Regionalgruppenveranstaltung.

28© 2001, Jens Dibbern, EMPRISE Software + Consulting GmbH <[email protected]>

Wann setze ich J# & .NET in Projekten ein?

• Wenn ein reiner Windows Client benötigt wird

• Wenn Kenntnisse der Java Syntax vorhanden sind

• Wenn die Gesamtstrategie auf MS .NET geändert wird

• Wenn keine Enterprise Java Beans integriert werden

• Nicht vor dem Final Release von Visual J#

Page 29: 1 © 2001, Jens Dibbern, EMPRISE Software + Consulting GmbH Alternativen für die Entwicklung von grafischen Oberflächen in Java GI-Regionalgruppenveranstaltung.

29© 2001, Jens Dibbern, EMPRISE Software + Consulting GmbH <[email protected]>

Fazit

„Ich hätte gerne eine Java Klassenbibliothek mit der Swing API, die

direkt in das jeweilige Betriebssystem integriert ist, eine

standardkonforme Java Virtual Machine voraussetzt, vorbildlich in

Englisch und Deutsch dokumentiert ist, mindestens MS Windows,

Apple Mac OS X, Linux & Solaris unterstützt, sowie eine

entsprechende Entwicklungsumgebung mit leistungsfähigem

Maskendesigner.“

Page 30: 1 © 2001, Jens Dibbern, EMPRISE Software + Consulting GmbH Alternativen für die Entwicklung von grafischen Oberflächen in Java GI-Regionalgruppenveranstaltung.

30© 2001, Jens Dibbern, EMPRISE Software + Consulting GmbH <[email protected]>

Quellen

• Swing http://java.sun.com/products/jfc/

• Eclipse http://www.eclipse.org/

• J# & .NET http://msdn.microsoft.com/visualj/jsharp/beta.asp

• Jürgen Schlierf, Rudolf Weber: Programmieren mit Swing, Carl Hanser, 1999

• David Flanagan: Java Foundation Classes in a Nutshell, O‘Reilly, 2000


Recommended