© Excellent backgrounds/Shutterstock.com
Java Magazin
Sanfte Migration von Swing ins Web

Die goldene Brücke

Das Web als neue Run-anywhere-Plattform ist gesetzt. Viele Unternehmen haben jedoch in der Vergangenheit in integrierte Anwendungen mit Desktoptechnologien investiert, wie Java Swing oder Microsoft WPF. In diesem Artikel wird ein Architekturansatz vorgestellt, der eine schrittweise Migration mit parallelem Betrieb und nahtloser Integration von neuen und alten Bestandteilen ermöglicht.

Thomas Kruse


Video: Von Swing nach JavaFX

Java-Desktopanwendungen wurden vor dem Aufkommen von JavaFX klassischerweise mit Swing implementiert. Swing bietet ein betriebssystemunabhängiges API und eine reichhaltige Komponentenbibliothek, mit der sich Geschäftsanwendungen gut umsetzen lassen. In Abbildung 1 ist eine typische Java-Swing-Desktopanwendung zu sehen. Sie besteht aus einer Navigation und einem Formularbereich. Die Navigation erlaubt den Zugriff auf alle Anwendungsfälle, z. B. alles rund um Verträge. Statt einer Schnellnavigation könnte der Einstieg auch über ein Menü erfolgen. Im Formularbereich wird der jeweilige Anwendungsfall zur Verfügung gestellt. Im Anschluss an den Formularbereich sind unten verknüpfte Anwendungsfälle zu sehen.

Die Vorteile dieser Integration zeigen sich neben der starken Vernetzung der Daten und Anwendungsfälle auch an Punkten, die auf den ersten Blick weniger offensichtlich sind. Es ist lediglich eine Anmeldung erforderlich, und die Bedienkonzepte sind einheitlich. Außerdem gibt es einen gemeinsamen Kontext, in dem aggregierte Daten angezeigt werden können, z. B. auf der Kundenseite, wenn ein Mahnverfahren läuft.

Abb. 1: Eine integrierte Desktopanwendung mit Swing bietet eine starke Vernetzung der Daten und Anwendungsfälle

Das User Interface im Swing Client ist sowohl für die grafische Aufbereitung als auch für die View-Logik verantwortlich. Oft fällt es schwer, die Grenzen zwischen Geschäftslogik und View-Logik scharf zu trennen, da beide ineinander greifen. Bei einer sauberen Trennung von Verantwortlichkeiten befindet sich auf dem Swing Client lediglich der Teil der Geschäftslogik, der eng mit der Darstellung verbunden ist. Im Beispiel könnte dies eine farbige Markierung von Feldern sein, die Daten mit Validierungsfehlern enthalten. Je nach Art der Validierung ist diese als Teil der reinen Geschäftslogik auf dem Server zu finden. Um die User Experience zu verbessern, kann auch ein Teil im Client redundant implementiert sein.

Zur Umsetzung des User Interface mit View-Logik kommt in der Regel das Entwurfsmuster Model View Controller (MVC) zum Einsatz: Swing-Komponenten selbst sind intern bereits nach dem MVC-Muster aufgebaut, aber auch bei dem übergreifenden Design von grafischen Anwendungen hat sich der Einsatz des MVC-Musters bewährt. Es gilt daher zwischen MVC auf Anwendungsebene und auf Komponentenebene zu differenzieren.

Bei Swing erfolgt die Integration verschiedener Anwendungsteile durch entsprechende Implementierung der...

Java Magazin
Sanfte Migration von Swing ins Web

Die goldene Brücke

Das Web als neue Run-anywhere-Plattform ist gesetzt. Viele Unternehmen haben jedoch in der Vergangenheit in integrierte Anwendungen mit Desktoptechnologien investiert, wie Java Swing oder Microsoft WPF. In diesem Artikel wird ein Architekturansatz vorgestellt, der eine schrittweise Migration mit parallelem Betrieb und nahtloser Integration von neuen und alten Bestandteilen ermöglicht.

Thomas Kruse


Video: Von Swing nach JavaFX

Java-Desktopanwendungen wurden vor dem Aufkommen von JavaFX klassischerweise mit Swing implementiert. Swing bietet ein betriebssystemunabhängiges API und eine reichhaltige Komponentenbibliothek, mit der sich Geschäftsanwendungen gut umsetzen lassen. In Abbildung 1 ist eine typische Java-Swing-Desktopanwendung zu sehen. Sie besteht aus einer Navigation und einem Formularbereich. Die Navigation erlaubt den Zugriff auf alle Anwendungsfälle, z. B. alles rund um Verträge. Statt einer Schnellnavigation könnte der Einstieg auch über ein Menü erfolgen. Im Formularbereich wird der jeweilige Anwendungsfall zur Verfügung gestellt. Im Anschluss an den Formularbereich sind unten verknüpfte Anwendungsfälle zu sehen.

Die Vorteile dieser Integration zeigen sich neben der starken Vernetzung der Daten und Anwendungsfälle auch an Punkten, die auf den ersten Blick weniger offensichtlich sind. Es ist lediglich eine Anmeldung erforderlich, und die Bedienkonzepte sind einheitlich. Außerdem gibt es einen gemeinsamen Kontext, in dem aggregierte Daten angezeigt werden können, z. B. auf der Kundenseite, wenn ein Mahnverfahren läuft.

Abb. 1: Eine integrierte Desktopanwendung mit Swing bietet eine starke Vernetzung der Daten und Anwendungsfälle

Das User Interface im Swing Client ist sowohl für die grafische Aufbereitung als auch für die View-Logik verantwortlich. Oft fällt es schwer, die Grenzen zwischen Geschäftslogik und View-Logik scharf zu trennen, da beide ineinander greifen. Bei einer sauberen Trennung von Verantwortlichkeiten befindet sich auf dem Swing Client lediglich der Teil der Geschäftslogik, der eng mit der Darstellung verbunden ist. Im Beispiel könnte dies eine farbige Markierung von Feldern sein, die Daten mit Validierungsfehlern enthalten. Je nach Art der Validierung ist diese als Teil der reinen Geschäftslogik auf dem Server zu finden. Um die User Experience zu verbessern, kann auch ein Teil im Client redundant implementiert sein.

Zur Umsetzung des User Interface mit View-Logik kommt in der Regel das Entwurfsmuster Model View Controller (MVC) zum Einsatz: Swing-Komponenten selbst sind intern bereits nach dem MVC-Muster aufgebaut, aber auch bei dem übergreifenden Design von grafischen Anwendungen hat sich der Einsatz des MVC-Musters bewährt. Es gilt daher zwischen MVC auf Anwendungsebene und auf Komponentenebene zu differenzieren.

Bei Swing erfolgt die Integration verschiedener Anwendungsteile durch entsprechende Implementierung der...

Neugierig geworden?


    
Loading...

Angebote für Teams

Für Firmen haben wir individuelle Teamlizenzen. Wir erstellen Ihnen gerne ein passendes Angebot.

Das Library-Modell:
IP-Zugang

Das Company-Modell:
Domain-Zugang