Einfacher Weg von wxWidgets Desktop-App zu WebApp ?

Plattformunabhängige GUIs mit wxWidgets.
Antworten
fehir
User
Beiträge: 3
Registriert: Dienstag 30. Juli 2019, 14:00

Erstmal Hallo zusammen, das hier ist mein erster Beitrag hier im Forum, also bereits jetzt schon einmal sry für etwaige Formulierungsungenauigkeiten oder Ähnliches, bin immer offen für Feedback :)

Kurz zur Situation: Ich studiere BWL im Master an einer TU und arbeite als SHK an einem Lehrstuhl und habe nun einen Software "Prototypen" übergeben bekommen, welcher vor einiger Zeit erstellt wurde und an dem seitdem immer mal wieder gebastelt und gearbeitet wurde.
Die Oberfläche wurde mit wxWidgets erstellt. Ich selbst habe mir die Grundlagen von Python angeeignet, bisher lag mein Interesse jedoch eher im Bereich Statistik, Data Science, Machinelearning etc. habe also noch garkeine Erfahrung mit GUIs etc.

Die Frage die jetzt an mich herangetragen wurde ist, ob es einen "einfachen und schnellen" Weg gibt, die vorhandene Desktopanwendung in eine Webanwendung zu überführen.

Ich habe mich schon so weit schlau gemacht, dass wxWidgets natürlich eigentlich kein WebFramework ist und Django oder Flask die populärsten Frameworks für die Erstellung von WebApps unter Python sind.

Meine Frage wäre nun, ob es einen Weg gäbe, den bestehenden Code umkompliziert in eine WebApp umzuwandeln/einzubinden o.Ä.
Wäre die einzige Alternative, das gesamte Projekt noch einmal in einem neuen Framework komplett neu aufzusetzen?

Bin Dankbar für jegliche Infos, Tipps und Hinweise :)

Noch eine Info, falls dies eine Rolle spielt: Die Daten werden in einer MySQL-Datenbank abgelegt, die bei Programmstart durch die Bibliothek "sqlite3" initialisiert wird.

Besten Dank für eure Hilfe und viele Grüße,

Felix
__deets__
User
Beiträge: 14493
Registriert: Mittwoch 14. Oktober 2015, 14:29

Nein. So einen Weg gibt es nicht. Wenn du Glueck hast sind die entscheidenden Teile der App die etwas machen wie zB einen Algorithmus ueber Daten durchrechnen oder sowas gut gekapselt und lassen sich wiederverwenden. Doch ansonsten ist es eine Neuentwickung.

Und wenn die Daten mit sqlite3 initialisiert werden, dann ist das ganz entschieden NICHT MySQL, sonden SQLite. Beides sind SQL-Datenbanken, wenn das der Terminus Technicus sein sollte, den du suchst.
fehir
User
Beiträge: 3
Registriert: Dienstag 30. Juli 2019, 14:00

Okay schonmal vielen Dank für das Feedback.
Dann hab ich bezüglich der Datenbanken schonmal den ersten Fehler in der Dokumentation meines Vorgängers gefunden und etwas dazu gelernt :D
Welches Skill-Level braucht man denn so um eine WebApp zu bauen, also kann man sich auch als Anfänger reinarbeiten, oder eher was für Fortgeschrittene?
Waren die Infos die ich bez. Flask & Django (dann in Verbindung mit WSGI?) gefunden habe denn soweit korrekt oder was würdet ihr als Webframework empfehlen?

Danke euch.

Felix
__deets__
User
Beiträge: 14493
Registriert: Mittwoch 14. Oktober 2015, 14:29

Ohne zu wissen was die App jetzt macht, und ohne dann auch noch zu wissen, wie GENAU man das per Web-Anwendung dann umsetzen will, kann man zur Komplexitaet nix belastbares sagen. Wenn das eine Semesterarbeit werden soll, behaupte ich: klappt nicht. Sowas schafft man sich fachfremd nicht mal so eben nebenbei drauf. Aber ich lasse mich da auch gerne eines besseren belehern, letztlich bringt dir eine Antwort ja auch eh nix - oder sagst du deinem Prof "so'n Typ im Internet hat behauptet das klappt nicht, lassen wir es sein?".
__deets__
User
Beiträge: 14493
Registriert: Mittwoch 14. Oktober 2015, 14:29

Und zum Web Framework: das passt prinzipiell. Viel interessanter ist die Frage wie die Oberfläche aussehen soll. React.js singlepage oder Stulle HTML wir zu Opas Zeiten?
Benutzeravatar
__blackjack__
User
Beiträge: 13003
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

Nicht ganz ernst gemeinter Vorschlag: Falls `wxWidgets` gegen Gtk3 gebaut wurde, könnte man natürlich versuchen das Broadway-Backend zu verwenden: https://developer.gnome.org/gtk3/stable ... adway.html 😇

Einziger Knackpunkt den ich bei der Rahmenwerkfrage sehe, ist dass das Django-ORM soweit ich weiss ein bisschen schlechter mit bereits vorhandenen Datenbanken klarkommt, weil es bestimmte Voraussetzungen/Konventionen erwartet.
“Most people find the concept of programming obvious, but the doing impossible.” — Alan J. Perlis
fehir
User
Beiträge: 3
Registriert: Dienstag 30. Juli 2019, 14:00

Ganz grob: Mitarbeiterbeurteilungen bez. deren Kompetenzen werden als Excel importiert, abgelegt und ausgewertet bez. des Fit zu bestimmten Kompetenzmustern verschiedener Positionen die hinterlegt sind. Dann können ein paar Auswertung vorgenommen werden: Zu welcher Rolle passt der MA, welche MA haben ähnliche Kompetenzprofile etc. und dazu noch ein paar graphische Darstellungen der Auswertungsergebnisse.
oder sagst du deinem Prof "so'n Typ im Internet hat behauptet das klappt nicht, lassen wir es sein?
Ganz so würde ich es nicht formulieren haha :lol: Nein geht einfach um eine Aufwandsschätzung mit den Ressourcen die der Lehrstuhl aktuell hat. Aber vertraue da durchaus euren Einschätzungen.

Bez. HTML vs. React: Wie bereits beschrieben hat die Software eher wenig Funktionen und ist auch für eine reine unternehmensinterne Anwendung gedacht, also was die Optik angeht bestehen keine erhöhten Ansprüche. Habe mich mit dem Thema aber noch nicht näher beschäftigt, meint ihr denn mit HTML kann man sich garnichtmehr blicken lassen?

Bez. der Datenbank: Die Software wird noch nicht genutzt und ist aktuell nur mit ganz wenigen Probedatensätzen bestückt, sollte man es beispielsweise mit Django neu aufsetzen wäre es auch kein Problem die bestehenden Daten zu verwerfen.
__deets__
User
Beiträge: 14493
Registriert: Mittwoch 14. Oktober 2015, 14:29

Rein unternehmensintern hat ja aber nichts mit schlechter Funktion zu tun. Design ist ja eines, aber die Leute erwarten schon drag&drop zum Datei hochladen. Und Excel ist ja sehr flexibel, wieviel Aufwand muss denn darein gesteckte werden mit all dem Unsinn klarzukommen, den die Benutzer da hochladen wollen? Und woher kommen die Kompetenzprofile? Wer pflegt die, was ist DAS wiederum fuer eine Oberflaeche? Und da es sich um hochsensible Personaldaten handelt, wer regelt denn die Behandlung nach DSVGO? Unser HR-Tool ist fuer sowas vorbereitet & verblindet Daten nach einem einstellbaren Zeitraum. Und wer darf da zugreifen? Einfach jeder, so dass ich mitbekomme, das Kollege Karl Arsch wirklich so inkompetent ist, wie ich ihn mir immer vorgestellt habe? Sollten da also Benutzerkonten hinter stehen, woher kommen die? Wer administriert die? Sollen die integriert werden in die hauseigene IT, zB den active directory server? Oder muessen die Admins jeden Nutzer von Hand pflegen? Da kommt Freude bei denen auf! Und wenn die Daten sensibel sind, und geschuetzt, das ist ja auch nicht geschenkt, dass das dann auch nicht einfach umgangen werden kann. Macht man da einen Audit, oder hofft man einfach das beste? Wie wird die Anwendung ausgeliefert? Unter welchen Systemen soll sie laufen? Gibt es ein Benutzerhandbuch oder sonstige begleitende Unterlagen? Wer schreibt die?

Und und und und. Wenn du mich fragst, wie lange ICH dazu brauche, dann brauche ich Antworten auf alle diese und noch viel mehr Fragen. So ein Pflichtenheft ist ja nicht umsonst ein paar dutzend Seiten lang. Sowas ist schon schwer genug bei dem Projekt, an dem ich konkret arbeite. Danach multipliziert man das dann noch mit Faktor 5-10, weil du eben kein Programmierer bist, und dann landen wir bei vielen, vielen Monden.
Benutzeravatar
__blackjack__
User
Beiträge: 13003
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

Na dann würde ich sagen ist Django geeignet. Und ich würde da auch erst einmal bei einer ”klassischen” Webseite bleiben, sonst hast Du halt auch noch JavaScript und irgendein passendes Rahmenwerk an der Backe.

Bleibt die Frage ob Du Dir das zutraust und was letztlich gemacht werden muss, also wie viel von dem Prototypen mit GUI tatsächlich (wieder)verwendbar ist. Das kannst Du am Ende nur selbst abschätzen. Vielleicht könntest Du Dich auch erst einmal in Django einarbeiten, ob und wie gut Du damit klar kommst. Da wäre dann die Frage ob dafür Zeit vorgesehen ist, vor der Entscheidung ob das Projekt für Dich umsetzbar ist und/oder ob das was ist, was Du in Deiner Freizeit machen würdest.
“Most people find the concept of programming obvious, but the doing impossible.” — Alan J. Perlis
Antworten