Java Swing und ADF

MVC macht Migration möglich

Martin Künkele


Java Swing ist nicht tot, wie manche glauben machen möchten. Ganz im Gegenteil, mit Java Release 6 wurde ein neues Look and Feel (Nimphus) angekündigt. Auch an der Performance wurde gearbeitet. Java Swing ist höchstens etwas in die Jahre gekommen. Man vermisst einige Merkmale, die man z. B. bei ADF sozusagen frei Haus bekommt:

TaskflowsMulti-Channel-Clients insbesondere für mobile Geräte (Smartphones bzw. PDAs)Visuelles DesignDeklarative Entwicklung

Es gibt seitens des Herstellers von ADF keine Werkzeugunterstützung für eine Migration von ADF Swing nach ADF Faces. Vor ADF 11c wurde von Oracle die Möglichkeit angeboten, auch Swing-Anwendungen mit dem JDeveloper zu entwickeln. Dieses ADF Swing wurde mit ADF 11c als deprecated gekennzeichnet [1], [2]. Derzeit ist noch nicht sicher, ob ADF Swing in ADF 12c noch enthalten sein wird. Da es nicht sehr viele Kunden gibt, die ADF Swing einsetzen, ist der Bedarf nach einer Migrationslösung entsprechend gering.

Wegen der großen Architekturunterschiede zwischen Swing und JSF/ADF Faces ist eine automatische Migration ebenfalls schwer zu realisieren. Allerdings gibt es auch eine gute Nachricht für diejenigen, die bereits auf ADF Swing gesetzt haben: Die so genannten Business Services – dazu werden wir noch kommen – können verwendet werden. Nur die Oberfläche muss neu entwickelt werden.

MVC als Gemeinsamkeit

Auch wenn die beiden Technologien weit auseinander liegen, gibt es doch Gemeinsamkeiten. Zunächst beanspruchen beide, das MVC-Entwurfsmuster umzusetzen. MVC steht für Model, View und Controller. Eine Anwendung, die auf diesem Muster aufbaut, unterscheidet folgende drei Schichten:

Modellschicht, in der der Zugang zur Datenquelle und die Geschäftslogik angesiedelt sindView, in der Komponenten für die Benutzerinteraktion gespeichert werden undController, der als Bindeglied zwischen diesen beiden Schichten arbeitet

Diese Trennung hat sich bewährt. Es ist die Frage, welche Unterschiede es zwischen der Realisierung des MVC-Patterns bei Java Swing bzw. bei Oracle ADF gibt.

MVC bei Java Swing

Bei Java Swing bauen die einzelnen Komponenten mehr oder weniger auf dem MVC-Pattern auf. Die ersten Prototypen von Swing folgten dem klassischen MVC, in dem Model, View und Controller sauber getrennt waren. Unter praktischen Gesichtspunkten wurde vom Swing-Team bald erkannt, dass die Trennung von View und Controller nicht wirklich gut funktionierte: Zu eng sind diese beiden Schichten miteinander verzahnt, insbesondere bei der Steuerung der D...

Java Swing und ADF

MVC macht Migration möglich

Martin Künkele


Java Swing ist nicht tot, wie manche glauben machen möchten. Ganz im Gegenteil, mit Java Release 6 wurde ein neues Look and Feel (Nimphus) angekündigt. Auch an der Performance wurde gearbeitet. Java Swing ist höchstens etwas in die Jahre gekommen. Man vermisst einige Merkmale, die man z. B. bei ADF sozusagen frei Haus bekommt:

TaskflowsMulti-Channel-Clients insbesondere für mobile Geräte (Smartphones bzw. PDAs)Visuelles DesignDeklarative Entwicklung

Es gibt seitens des Herstellers von ADF keine Werkzeugunterstützung für eine Migration von ADF Swing nach ADF Faces. Vor ADF 11c wurde von Oracle die Möglichkeit angeboten, auch Swing-Anwendungen mit dem JDeveloper zu entwickeln. Dieses ADF Swing wurde mit ADF 11c als deprecated gekennzeichnet [1], [2]. Derzeit ist noch nicht sicher, ob ADF Swing in ADF 12c noch enthalten sein wird. Da es nicht sehr viele Kunden gibt, die ADF Swing einsetzen, ist der Bedarf nach einer Migrationslösung entsprechend gering.

Wegen der großen Architekturunterschiede zwischen Swing und JSF/ADF Faces ist eine automatische Migration ebenfalls schwer zu realisieren. Allerdings gibt es auch eine gute Nachricht für diejenigen, die bereits auf ADF Swing gesetzt haben: Die so genannten Business Services – dazu werden wir noch kommen – können verwendet werden. Nur die Oberfläche muss neu entwickelt werden.

MVC als Gemeinsamkeit

Auch wenn die beiden Technologien weit auseinander liegen, gibt es doch Gemeinsamkeiten. Zunächst beanspruchen beide, das MVC-Entwurfsmuster umzusetzen. MVC steht für Model, View und Controller. Eine Anwendung, die auf diesem Muster aufbaut, unterscheidet folgende drei Schichten:

Modellschicht, in der der Zugang zur Datenquelle und die Geschäftslogik angesiedelt sindView, in der Komponenten für die Benutzerinteraktion gespeichert werden undController, der als Bindeglied zwischen diesen beiden Schichten arbeitet

Diese Trennung hat sich bewährt. Es ist die Frage, welche Unterschiede es zwischen der Realisierung des MVC-Patterns bei Java Swing bzw. bei Oracle ADF gibt.

MVC bei Java Swing

Bei Java Swing bauen die einzelnen Komponenten mehr oder weniger auf dem MVC-Pattern auf. Die ersten Prototypen von Swing folgten dem klassischen MVC, in dem Model, View und Controller sauber getrennt waren. Unter praktischen Gesichtspunkten wurde vom Swing-Team bald erkannt, dass die Trennung von View und Controller nicht wirklich gut funktionierte: Zu eng sind diese beiden Schichten miteinander verzahnt, insbesondere bei der Steuerung der D...

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