# GUI / Frontend welche Lösung ist die Beste?



## OnDemand (25. Okt 2020)

Hallo zusammen,

da wir aktuell kräftig am umstrukturieren sind, schauen wir auch nach evtl. besseren Ansätzen für die GUI/Frontend.

Was haben wir?
Jeder User bekommt einen kleinen Server, auf dem 24/7 ein Progamm läuft welches Herstellerdaten verarbeitet. Wir haben uns für "ein Server je Kunde" entschieden, da sonst der Rechner permanent beim Kunden laufen müsste. Es wäre auch möglich das Programm beim Kunden auf einem eigenen Server zu installieren, aber dann gibts meist Probleme mit der Bandbreite des Kunden. (Programm braucht ewig um Daten vom Hersteller zu holen, System wäre nicht von aussen erreichbar ohne da an der Kundeninfrastruktur zu fummeln usw.)

Die Server-App ist in Spring Boot geschrieben, kann also problemlos  API Endpunkte bereitstellen.

Nun brauchen wir eine Lösung, wie der User das Programm mit einer GUI steuern kann, Daten anzeigen, manipulieren usw. Das Ganze mobil und am Desktop

In unserer aktuellen Version haben wir JSF im Einsatz, mit einem mobilen Template. Wildfly läuft hier auf einem zentralen Server, wo alle User benutzten. Das ist nicht so doll weil es recht viel Last bringt, daher die erste Überlegung wildfly auch auf jedem Kundenserver ein eigenes Frontend zu installieren welches dann über eine subdomain <kdnr>.domain.de erreichbar ist. Bringt aber wieder mehr Aufwand mit sich, wenn Wildfly updated werden muss als Beispiel.

Habt ihr noch andere Ideen für eine GUI? Hab mir auch mal JavaFX angesehen, das wäre ja auch keine schlechte Lösung allerdings bräuchten wir dann noch eine zusätzliche App für Android iOs was doppelte Arbeit mit sich bringt. Da ist die aktuelle Lösung mit einer "Webapp" schon das sinnvollste oder?

Besten Dank und sonnige Grüße


----------



## mrBrown (25. Okt 2020)

Wenn es nicht sehr gute Gründe für eine native Lösung gibt (die ich da nicht sehe), ist Web die bessere Variante.

Und da hast du völlig freie Auswahl, die „beste Lösung“ gibt’s da nicht, vor allem nicht ohne eure Anforderungen und euren Kenntnisstand zu kennen


----------



## OnDemand (25. Okt 2020)

Danke, was mir spontan einfällt was wir evtl brauchen könnten wäre die Kamera, damit man barcodes abscannen kann. Aber da gibts ja auch bluetooth Scanner die dann wie eine Tastatur Eingaben machen können. Das reicht dann auch und bedarf nicht extra einer App.
Dann kommen wir zur nächsten Frage:

welche ist die einfachste Möglichkeit ein frontend zu bauen? Am liebsten würden wir ein html5 Template kaufen, bisschen anpassen. Aber wie kommen die Daten dann dort rein? Bisher kennen wir nur jsf mit beans und co.

Wäre thymeleaf eine Überlegung wert?


----------



## Flown (25. Okt 2020)

Also um im JSF-Umfeld zu bleiben, gibt es Templates - z.B. von PrimeFaces - die auch Templates - nur zum "Ausfüllen" - zur Verfügung stellen und die dort einfach gekauft werden können.


----------



## OnDemand (25. Okt 2020)

Haben wir aktuell im Einsatz von primefaces, nur muss das im application Server laufen welcher ggf. Updated werden muss uns tralala.
Thymeleaf läuft ja quasi direkt in der spring Boot App oder?

überlege grad ob das mit einem embedded tomcat laufen könnte. Dann spart man sich den zusätzlichen application Server.


----------



## mihe7 (25. Okt 2020)

Man kann doch auch JSF in Spring Boot laufen lassen, oder?

EDIT: https://auth0.com/blog/developing-jsf-applications-with-spring-boot/


----------



## mrBrown (25. Okt 2020)

NicoDeluxe hat gesagt.:


> Haben wir aktuell im Einsatz von primefaces, nur muss das im application Server laufen welcher ggf. Updated werden muss uns tralala.
> Thymeleaf läuft ja quasi direkt in der spring Boot App oder?



Wildfly kann jetzt auch mit der Application als jar gepackt werden (https://www.wildfly.org/news/2020/10/19/bootable-jar-2.0-released/), und wenn das keine Möglichkeit ist packt es einfach in ein Docker-Image oä, dann macht’s kaum nen Unterschied.


----------



## OnDemand (25. Okt 2020)

mrBrown hat gesagt.:


> Wildfly kann jetzt auch mit der Application als jar gepackt werden (https://www.wildfly.org/news/2020/10/19/bootable-jar-2.0-released/), und wenn das keine Möglichkeit ist packt es einfach in ein Docker-Image oä, dann macht’s kaum nen Unterschied.



das klingt ja großartig! Danke!


----------

