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

Slides:



Advertisements
Ähnliche Präsentationen
PHP Extension und Application Repository
Advertisements

E-Commerce Shop System
Anbindung mobiler Endgeräte über den Terminal Service
Programmieren im Großen von Markus Schmidt und Benno Kröger.
PKJ 2005/1 Stefan Dissmann Vorwoche - Klasse public class Studierende { private String name, vorname, studiengang; private int matNr, semester; private.
Seminar Internetdienste Web 2.0 und Rich Internet Applications (RIA) JavaFX Rainer Scholz.
Übung 5 Mehrstufige Client/Server-Systeme mit Enterprise Java Beans
Datenbankzugriff im WWW (Kommerzielle Systeme)
Spec# Proseminar Assertions im SS 2007 Uni Paderborn Andreas Martens Betreuer: Dipl. Inform. Björn Metzler.
NATURAL Web-Integration 1 / 27/28-Feb-98 TST NATURAL Web-Integration Arbeitskreis NATURAL Süd Theo Straeten SAG Systemhaus GmbH Technologieberater Stuttgart.
Stefanie Selzer - Pascal Busch - Michael Kropiwoda
Java: Objektorientierte Programmierung
Java: Grundlagen der Sprache
Seminar Sommersemester 2002 ASP.NET Andre Margousian.
Cassey - Common Answer Set Evaluation sYstem Jean Gressmann Benjamin Kaufmann Robert Lenk.
Praktikum Entwicklung und Einsatz von Geosoftware I - Sitzung 6 Model-View-Controler als Grundlage für Nutzerschnittstellen Sommersemester 2003 Lars Bernard.
Praktikum Entwicklung und Einsatz von Geosoftware I - Sitzung 7 User Interfaces in Java Sommersemester 2003 Lars Bernard.
Eclipse - Entwicklungsumgebung und mehr ETIS SS05.
AWT – Detailbetrachtung Java 3D – Seminar im Wintersemester 2002/2003 Christian Schneider.
Programmieren mit JAVA
PKJ 2005/1 Stefan Dissmann Rückblick auf 2005 Was zuletzt in 2005 vorgestellt wurde: Klassen mit Attributen, Methoden und Konstruktoren Referenzen auf.
PKJ 2005/1 Stefan Dissmann Zusammenfassung Bisher im Kurs erarbeitete Konzepte(1): Umgang mit einfachen Datentypen Umgang mit Feldern Umgang mit Referenzen.
Introducing the .NET Framework
Brandenburgische Technische Universität Cottbus Program Profiling Andrzej Filipiak Übung Testen von Software SoSe 2006.
Mono und andere freie.NET Implementierungen. Implementierungen Microsoft.NET Framework Win32, Win64? Microsoft.NET Compact Framework WinCE (Mobile, Phone)
Einführung in Visual C++
vidio®, das 100% pure Java Viewing Applet
Ralf KüstersDagstuhl 2008/11/30 2 Ralf KüstersDagstuhl 2008/11/30 3.
Sommersemester 2004 Jan Drewnak Entwicklung und Einsatz von Geosoftware I Praktikum Sitzung 7 Sitzung 7: User Interfaces in Java.
Objektorientierte Modellierung
PRJ 2007/1 Stefan Dissmann Verkettete datenstruktur: Liste Problem: Liste, die eine beliebige Zahl von Elementen verwaltet Operationen: Erzeugen, Anfügen,
AWT und JFC Abstract Windowing Toolkit
Einführung in die Programmiersprache Java
Silverlight Eine Einführung. Agenda 1.Was ist Silverlight? 2.Die Silverlight Philosophie 3.Vorstellung des Szenarios 4.Einführendes Beispiel 5.Konzepte.
Programmiermethodik Übung 6
Betriebssystem Linux Von Sofia & Yasemin WG 12/3.
Präsentation von Alexander Schönfeld
EJB-Applikationsserver
Java und Eclipse.
Consulting and Solutions.NET Vortragsreihe – Vorstellung der Referenten Happy Arts Software Markus Kämmerer IT-Erfahrung seit 1987,
Präsentation von Sonja Pathe
HTML-Editoren Eine Präsentation von Erik Kulisch.
Your name Bedeutung von Internet- Technologien Gruppe 1 Andreas Feuerstein Philipp Hochratner Christian Weinzinger.
Windows Presentation Foundation WS 2013/14 Prof. Dr. Herrad Schmidt
Entwicklung verteilter Anwendungen I, WS 13/14 Prof. Dr. Herrad Schmidt WS 13/14 Kapitel 1 Folie 2 Microsoft.NET Framework: Quelle:
Auslegung eines Vorschubantriebes
Vergleich verschiedener Konzepte für das Software Engineering Praktikum.
Kommunikation mit dem Terminal Achim Sommer FH München FB 07 Informatik/Mathematik Projektstudium Chipkarten SS 2001 Mit freundlicher Unterstützung von.
Das Änderungssystem für TWS Definitionen
Eclipse-Entwicklungsumgebung
Datenanbindung in Webapplikationen
Neuerungen in Java 5/6/7. Stefan Bühler für InfoPoint Überblick Java 5 neue Sprachfeatures Erweiterungen Klassenbibliothek Java 6 Erweiterungen.
Warum IIS? Best of Microsoft Webserver
Projekt Pokémon (CSL) Evaluation Technologien / Entwicklungsumgebungen Schlusspräsentation, Philip Iezzi, BDLI 2.
Untersuchungen zur Erstellung eines
prof. dr. dieter steinmannfachhochschule trier © prof. dr. dieter steinmann Folie 1 vom Montag, 30. März 2015.
VirtualPatt 2000 Interaktives 3D-Schachspiel
Microsoft.NET InfoPoint 8. Juni 2005 Stefan Bühler.
Datenbanken im Web 1.
Microsoft.NET - Plattform Kurzer Überblick Vergleich mit Java Von Thomas Zahn Januar 2001.
IBM® WebSphere Portal, IBM WebSphere Portal solutions, and SOA Composite Applications Overview TIMETOACT Software & Consulting GmbH, Hermann.
Einführung in Java PING e.V. Weiterbildung Andreas Rossbacher 24. März 2005.
Java 2 Enterprise Edition (J2EE) Sascha Baumeister Software Architect Specification Lead JSR086 IBM Deutschland Entwicklung GmbH
Microsoft Silverlight Autor: Christian Pirker. Inhalt Einführung Silverlight Einführung XAML Silverlight 1.0 und 1.1 Silverlight 2.0 Silverlight 3.0 Ausblick.
, Claudia Böhm robotron*SAB Anwendungsentwicklung mit dem Java und XML basierten Framework robotron*eXForms Simple Application Builder.
1 Einführung in Qt von Stephan Hellenbrandt. 2 Inhaltsverzeichnis Einleitung: Motivation Geschichte von Qt Bibliothek Einführung in Qt: Beispiel-Programm.
JAVA - Einführung. © Übersicht Hintergrund und Geschichte Wie sieht ein JAVA Programm aus ? Was ist ein JAVA Programm ? Wie schreibt/übersetzt.
XML-basierte Beschreibungssprachen für grafische Benutzerschnittstellen Seminarvortrag im Studiengang „Scientific Programming“ von Steffen Richter.
Programmiermethodik Übung 7
Ein kurzer Überblick Thomas Karp
 Präsentation transkript:

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

Timeline 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) IBM Standard Widget Toolkit (SWT) MS .NET Framework 1996 1997 1998 1999 2000 2001

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)

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

Windows Foundation Classes (WFC) Microsofts zweite GUI Klassenbibliothek für Java fokussiert auf Microsoft Windows verbunden mit der Microsoft Java VM

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

Aufbau von Swing Anwendung Swing AWT Java Virtual Machine Betriebssystem

Ablauf beim Erzeugen einer Schaltfläche (Swing) JButton UI Manager UI Defaults Delegate Konstruktor getUI(button) getUI(button) getClassID() returns createUI() setUI(delegate) installUI(button)

Swing Widgets

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

Aufbau von SWT Anwendung JFace SWT Java Virtual Machine Betriebssystem SWT Shared Library

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.

SWT Widgets

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

Aufbau von J# und dem .NET Framework Anwendung Framework Class Library Common Language Runtime Betriebssystem

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.

.NET Widgets

Was bedeutet „Performance“ für uns Ausführungsgeschwindigkeit Laufzeit beim Starten Hauptspeichernutzung Skalierbarkeit wahrgenommene Leistung

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

Vor- und Nachteile von Swing Ausführliche Dokumentation Breite Unterstützung durch Softwareindustrie Quellcode verfügbar aufwendige, „teure“ Architektur Nachbildung plattformspezifischer Eigenschaften

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?

Wann setze ich Swing in Projekten ein? Jetzt Wenn andere Klassenbibliotheken nicht in Frage kommen

Vor- und Nachteile von SWT Effiziente, „schnelle“ Architektur Open Source Software Referenzprojekt im Quellcode mitgeliefert mangelnde Dokumentation Plattformabhängigkeit

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.

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

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

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.

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#

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

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