Discussion:
GUI fuer Java
(zu alt für eine Antwort)
Peter Dunkel
2015-12-24 17:51:48 UTC
Permalink
Hallo!
Nach etlichen Jahren will ich mal wieder eine kleine Warenwirtschaft
schreiben (die letzte ist schon 25 Jahre her).

Beruflich entwickle ich Backend-Services bei Banken und Versicherungen
in Java oder COBOL.

In den letzten Jahren durfte ich mit einigen Java-GUIs bei Banken
arbeiten (Bank21, OSPlus, ...), ich suche aber etwas einfacheres.

Swing sollte es nicht sein, SWT wohl auch nicht, bei GWT weiss ich nicht
genau, wie es damit weiter geht.

Ich dachte an HTML5 und etwas JavaScript fuer kleine Interaktionen.

Von Grund auf zu entwickeln macht auch keinen Spass, also suche ich ein
aktuelles Framework.

Der Client soll beim Server einen WebService aufrufen, bekommt eine
HTML5 Seite, dort findet die Eingabe durch den Benutzer statt, und es
gibt einen OK-Button, dann wird ein anderer WebService aufgerufen.

Der WebService selber ist kein Problem, wenn ich "nur" XML austausche,
ich brauche aber ein "huebsches" HTML.

Am Liebsten waere mir etwas, was aus dem XML aus dem WebService plus
einem StyleSheet etwas baut und anschliessend aus der HTML-Seite wieder
ein XML extrahiert.

Sollte auf einem Tomcat (oder aehnliches) laufen. Geht um 2 bis 5
Benutzer, alle im lokalen Netzwerk.

Hat jemand fuer mich ein "Stichwort"?

Besten Dank
Peter
Stefan Ram
2015-12-25 02:58:30 UTC
Permalink
Post by Peter Dunkel
Sollte auf einem Tomcat (oder aehnliches) laufen. Geht um 2 bis 5
Benutzer, alle im lokalen Netzwerk.
Wenn Du etwas auf Tomcat laufen lassen willst, warum
erwähnst Du dann eingangs überhaupt Swing?

Du willst anscheinend auf dem Server in Java schreiben, OK.
Ein beliebtes Framework dafür heißt ja wohl »Java EE 7«,
aber das weißt Du selber, wenn Du Tomcat erwähnst.

Was den Klienten anbelangt:

Viele Webbrowser können ohnehin schon XML mit CSS
darstellen, HTML ist nicht unbedingt nötig. Oder Du kannst
(X)HTML5 und XML mischen, Browser validieren ja nun nicht ;-).

Deinen Klienten kannst Du doch dann hervoragend mit JavaScript
schreiben, da brauchst Du doch nicht unbedingt Java.
DOM-Transformationen sollten auch mit JavaScript gehen.
Und es gibt natürlich auch noch Ajax.

Bitte bei eventuellen Antworten klarstellen, wann Du etwas
zur Server-Programmierung schreibst und wann zur Klienten-
Programmierung.

Der Vollständigkeit halber sei noch erwähnt: Die heutige
GUI-Bibliothek für Java von Oracle heißt »JavaFX«. Sie
erfüllt aber vielleicht nicht alle Zugänglichkeitsanforderungen
für Büroanwendungen. Die heute am häufigsten eingesetzte
GUI-Bibliothek für Java heißt aber vielleicht »Android«.

Hier noch ein Zitat aus einem Posting, das ich vor wenigen
Wochen in eine anderen Newsgroup schickte. Es ist ganz
interessant, wie heute in Java GUIs programmiert werden ...

There is a tool called »AsciidocFX« that will convert your
ASCIIdoc into a nice book:

watch?v=2goMtz_vdtM

This Java application contains a text editor.

And this is what I learned: This is how you write a text
editor in Java in 2015: You include a WebView that is based
on WebKit. The editor then is actually Ace (ace.c9.io), i.e.,
it is written in JavaScript. Actually, the Java program is
a thin container. All the actual work is done by JavaScript
(scripts).

Statistics:

*.java files of AsciidocFx, octets add up to: 572 Kibioctets
*.js* files of AsciidocFx, octets add up to: 11.45 Mebioctets

JavaScript - the future of Java!

First, write your application in JavaScript.

Then, if you want a single cross-platform »executable file«,
add a thin container in Java.
Peter Dunkel
2015-12-26 02:44:14 UTC
Permalink
Post by Stefan Ram
Post by Peter Dunkel
Sollte auf einem Tomcat (oder aehnliches) laufen. Geht um 2 bis 5
Benutzer, alle im lokalen Netzwerk.
Wenn Du etwas auf Tomcat laufen lassen willst, warum
erwähnst Du dann eingangs überhaupt Swing?
Hallo Stefan,

Danke für Deine Antwort.
Warenwirtschaft bedeutet Datenbank, und von den Fat-Clients sind wir ja
gluecklicherweise weg.
Also Datenbank auf dem Server (Rechner), dort laeuft dann neben der
Zugriffsschicht auch die Fachliche Schicht, dort werden die Eingaben
validiert etc., bevor es schreibende Zugriffe auf die Datenbank gibt.

Der Client (Software), also das GUI, laeuft auf anderen Rechnern.
Die Verbindung koennten WebServices oder ein MessageServices (muss ja
nicht sofort IBM MQS heissen) sein, RMI oder aehnliches scheint mir
nicht mehr sinvoll.

Mein Problem ist, wie "mache" ich aus dem XML oder was auch immer, das
der WebService an den Client liefert, ein vernünftiges GUI.
Dem Benutzer ein XML vorzusetzen, in dem er editieren soll, ist wohl
nicht optimal.
Die GUIs, die ich bei den Banken kennengelernt habe, sind meist um die
15 Jahre alt, beruhen also auf Swing, der Client ist eine
Java-Applikation. Nur sieht man von diesem Swing nur noch wenig, das
meiste ist gekapselt. Mein aktueller Kunden verwendet ein gut
gekapseltes GWT. Der Austausch mit dem Server passiert meist über einem
IBM MQ Server.
Post by Stefan Ram
Viele Webbrowser können ohnehin schon XML mit CSS
darstellen, HTML ist nicht unbedingt nötig. Oder Du kannst
(X)HTML5 und XML mischen, Browser validieren ja nun nicht ;-).
Wie schon gesagt, einen Server zu bauen, der HMTL oder was auch immer an
einen WebBrowser liefert, ist eine Fingerübung. Aber es sollen Daten
erfasst und dabei schon vorvalidiert werden (in einem Datums-Feld hat
"Hugo" nicht zu suchen, das Sterbe-Datum darf nicht in der Zukunft
liegen, ...).
Post by Stefan Ram
Deinen Klienten kannst Du doch dann hervoragend mit JavaScript
schreiben, da brauchst Du doch nicht unbedingt Java.
DOM-Transformationen sollten auch mit JavaScript gehen.
Und es gibt natürlich auch noch Ajax.
Stimmt, also schreibe ich ein passendes Framework in JavaScript.
Nur, diese Arbeit möchte ich mir nicht antun, da suche ich etwas
fertiges, wo ich ggf. noch Anpassungen durchführen kann.

Wir reden von um die 50 bis 100 Eingabemasken.

An JavaFX hatte ich auch schon gedacht. Aber irgendwie setzt es sich
nicht durch.

SWT war auch eine Idee, als ich vor einigen Jahren für ein Eclipse
Plugin einige Dialoge schreiben durfte, hatte ich das gefühlt, es beisst.

JSP oder ähnliches sind sicher auch eine Idee, aber den Aufbau der
Masken will ich auf dem Client durchführen. Ein Server, der an den
WebServer auf den gleichen Rechner WebServices liefert, die dann in
WebServer in HTML umgewandelt werden, und der Server behält die
Sessions, nicht meine Idee.

Ich möchte auf dem Server nur Zustandslose Services bauen.

Der Benutzer sendet via Client-Anwendung einen Request (mit Anmeldedaten
des Benutzers) an den Server und bekommt einen Response,
zwischenzeitlich vergisst der Server alles. Diesen Response stellt die
Client-Anwendung dar, der Anwender kann editieren und schickt
anschliessend die Daten der Maske als Request an den Server.
Ob die Client-Anwendung selber das GUI darstellt, oder es ein Service
auf dem Client-Rechner ist, der dann einen WebBrowser aufruft, will ich
spaeter entscheiden.

Gruss
Peter
Stefan Ram
2015-12-26 03:34:40 UTC
Permalink
Post by Peter Dunkel
Mein Problem ist, wie "mache" ich aus dem XML oder was auch immer, das
der WebService an den Client liefert, ein vernünftiges GUI.
Für Swing gibt es ja Software von Karsten Lentzsch, die
vielleicht einige Punkte erleichtern kann.

Prinzipiell kann man in JavaScript einen Rahmen schreiben,
der mit Ajax XML vom Server holt und dann das XML durch
DOM-Transformationen in eine HTML5-Eingabemaske einschließlich
JavaScript umwandelt. Aber das ist natürlich auch Arbeit.

Es gibt aber vielleicht Frameworks in diese Richtung:

en.wikipedia.org/wiki/Smartclient
www.jformer.com
en.wikipedia.org/wiki/Bindows
en.wikipedia.org/wiki/Wakanda_(software)
trentrichardson.com/2008/11/25/impromptu-an-ajax-form-framework/
intelligentbee.com/blog/2015/01/19/symfony-2-forms-and-ajax/
agileadam.com/2014/11/drupal-ajax-framework-with-repeated-form/

. Ich kenne mich da aber nicht aus, das war nur das Ergebnis
einer einfachen Suchmaschinen-Anfrage.
Gunter Herrmann
2015-12-26 16:58:41 UTC
Permalink
Post by Peter Dunkel
Post by Stefan Ram
Post by Peter Dunkel
Sollte auf einem Tomcat (oder aehnliches) laufen. Geht um 2 bis 5
Benutzer, alle im lokalen Netzwerk.
Wenn Du etwas auf Tomcat laufen lassen willst, warum
erwähnst Du dann eingangs überhaupt Swing?
Hallo Stefan,
Danke für Deine Antwort.
Warenwirtschaft bedeutet Datenbank, und von den Fat-Clients sind wir ja
gluecklicherweise weg.
Also Datenbank auf dem Server (Rechner), dort laeuft dann neben der
Zugriffsschicht auch die Fachliche Schicht, dort werden die Eingaben
validiert etc., bevor es schreibende Zugriffe auf die Datenbank gibt.
Der Client (Software), also das GUI, laeuft auf anderen Rechnern.
Die Verbindung koennten WebServices oder ein MessageServices (muss ja
nicht sofort IBM MQS heissen) sein, RMI oder aehnliches scheint mir
nicht mehr sinvoll.
Mein Problem ist, wie "mache" ich aus dem XML oder was auch immer, das
der WebService an den Client liefert, ein vernünftiges GUI.
Dem Benutzer ein XML vorzusetzen, in dem er editieren soll, ist wohl
nicht optimal.
Die GUIs, die ich bei den Banken kennengelernt habe, sind meist um die
15 Jahre alt, beruhen also auf Swing, der Client ist eine
Java-Applikation. Nur sieht man von diesem Swing nur noch wenig, das
meiste ist gekapselt. Mein aktueller Kunden verwendet ein gut
gekapseltes GWT. Der Austausch mit dem Server passiert meist über einem
IBM MQ Server.
Post by Stefan Ram
Viele Webbrowser können ohnehin schon XML mit CSS
darstellen, HTML ist nicht unbedingt nötig. Oder Du kannst
(X)HTML5 und XML mischen, Browser validieren ja nun nicht ;-).
Wie schon gesagt, einen Server zu bauen, der HMTL oder was auch immer an
einen WebBrowser liefert, ist eine Fingerübung. Aber es sollen Daten
erfasst und dabei schon vorvalidiert werden (in einem Datums-Feld hat
"Hugo" nicht zu suchen, das Sterbe-Datum darf nicht in der Zukunft
liegen, ...).
Post by Stefan Ram
Deinen Klienten kannst Du doch dann hervoragend mit JavaScript
schreiben, da brauchst Du doch nicht unbedingt Java.
DOM-Transformationen sollten auch mit JavaScript gehen.
Und es gibt natürlich auch noch Ajax.
Stimmt, also schreibe ich ein passendes Framework in JavaScript.
Nur, diese Arbeit möchte ich mir nicht antun, da suche ich etwas
fertiges, wo ich ggf. noch Anpassungen durchführen kann.
Wir reden von um die 50 bis 100 Eingabemasken.
An JavaFX hatte ich auch schon gedacht. Aber irgendwie setzt es sich
nicht durch.
SWT war auch eine Idee, als ich vor einigen Jahren für ein Eclipse
Plugin einige Dialoge schreiben durfte, hatte ich das gefühlt, es beisst.
JSP oder ähnliches sind sicher auch eine Idee, aber den Aufbau der
Masken will ich auf dem Client durchführen. Ein Server, der an den
WebServer auf den gleichen Rechner WebServices liefert, die dann in
WebServer in HTML umgewandelt werden, und der Server behält die
Sessions, nicht meine Idee.
Ich möchte auf dem Server nur Zustandslose Services bauen.
Der Benutzer sendet via Client-Anwendung einen Request (mit Anmeldedaten
des Benutzers) an den Server und bekommt einen Response,
zwischenzeitlich vergisst der Server alles. Diesen Response stellt die
Client-Anwendung dar, der Anwender kann editieren und schickt
anschliessend die Daten der Maske als Request an den Server.
Ob die Client-Anwendung selber das GUI darstellt, oder es ein Service
auf dem Client-Rechner ist, der dann einen WebBrowser aufruft, will ich
spaeter entscheiden.
Gruss
Peter
Habe mal einen Blick auf Vaadin. Du programmierst in Java, Vaadin
erzeugt daraus Java code für Backend und Java Script für Frontend.
Es benutzt intern GWT Elemente. Die Programmierung ist ähnlich Swing, es
erfordert aber keinen lokalen Java Client. Ich habe vor einigen Jahren
mal privat etwas damit gespielt und es hat mir gefallen.

Zu einer Nutzung im beruflichen Feld ist es nicht gekommen.

Beste Grüße aus dem warmen (30° C) Florida

Gunter in Orlando
Bonita Montero
2015-12-29 15:08:10 UTC
Permalink
Dann musst Du HTML5 und JavaScript lernen und ein JS-Toolkit einsetzen,
also sowas wie jquery-UI, oder qooxdoo.
--
http://facebook.com/bonita.montero/

---
Diese E-Mail wurde von Avast Antivirus-Software auf Viren geprüft.
https://www.avast.com/antivirus
Lesen Sie weiter auf narkive:
Loading...