GUI Web Frontend für C++ Backend



  • Guten Morgen,

    Immer mehr GUIs werden ja für die Darstellung in einem Browser entworfen. Was für Frameworks würde ihr nutzen um einen C++ Backend mit einer Web-GUI zu steuern?
    Welche Schnittstellen kommen in Frage(REST)?
    Wie performant ist das im Gegensatz zu Qt zum Beispiel?
    Was für Lösungen gibt es um gleich eine Browser-Engine wie Webkit mitzuliefern in seiner App?



  • Nach kurzer Recherche werde ich wohl mit dem Framework Electron anfangen. Ich bin für weitere Vorschläge, Hinweise, Links zu Best Practice etc. aber dankbar. Ein anderer Kandidat den ich mir danach anschauen werde ist React Native.

    Eine Frage die sich mit zusätzlich stellt ist das Deployment. Was ist da zur Zeit angesagt, Docker?



  • Ein Framework für was? Ich hätte eigentlich gedacht, dir geht es um das Backend. Aber Electron und React Native sind Frontend "Frameworks" (ich weiß nicht, ob man Electron als Framework bezeichnen kann). Frontend Frameworks gibt es sowieso viele, das hat auch kaum was mit dem Backend zu tun.



  • Mir geht es darum meinen C++ Code nicht per Qt Oberfläche zu bedienen, sondern auf ein Web Frontend zu setzen, vielleicht kam das in meinem Titel nicht richtig rüber. Konkret, habe ich einen kleinen Softsynthesizer programmiert und würde gerne weg von Qt und hin zu einer Web GUI.

    Mit Node.js habe ich heute schon rumprobiert und da kann man schön eigenen C++ Code als Modul für kompilieren und dann per Javascript ansprechen. Fehlt nur die Entscheidung für eine GUI.



  • Ich habe das schon verstanden.
    Nur wäre für mich hier die interessantere Frage gewesen, wie du die Services in C++ schreibst. Deswegen habe ich erst vermutet, dass du nach einem entsprechenden C++ Framework gefragt hättest.
    Das Frontend Framework ist ja erstmal uninteressant, die gibt es wie Sand am Meer, und die sind unabhängig davon, was im Backend eingesetzt wird.

    Im übrigen würde ich dir raten, das Vorhaben nicht zu unterschätzen 😉 Ich bin so oder so kein Fan von Webanwendungen, und sinnvoll finde ich das jetzt auch nicht gerade. Du hast sowieso einen lokalen C++ Teil, d.h. du sparst dir eigentlich weder was beim Deployment, noch hilft es was in Bezug auf Plattformunabhängigkeit. Dafür wirst du aber vermutlich sehr viel mehr Aufwand haben, als die GUI mit Qt zu schreiben.



  • @Mechanics sagte in GUI Web Frontend für C++ Backend:

    sehr viel mehr Aufwand

    Achso, an der Stelle könntest du übrigens auch was anderes in Betracht ziehen. Statt auf eine komplett getrennte GUI in Electron oder ähnliches zu setzen, könntest du auch den Browser in deiner Anwendung hosten, und den "direkt" mit deiner Anwendung kommunizieren lassen. Immer noch viel Aufwand, aber je nach Anwendungsfall könnte das um einiges einfacher umzusetzen sein.



  • Wie ich das genau umsetzen will, weiß ich noch gar nicht. War jetzt erst Mal eine Idee und ein wenig Recherche in der Richtung und dann halt die Frage an die Experten hier.

    Hintergrund ist Wunsch nach Plattformunabhänigkeit was die GUI angeht. Ob das überhaupt möglich und auch praktikabel ist, steht auf einem anderen Blatt.

    Wahrscheinlich hat du recht, dass das alles viel umständlicher werden wird, als wenn ich einfach bei Qt bleibe. Ich habe nur so das Gefühl dass sich Apps immer mehr auf eine HTML, CSS, JS hin lenken, indem sie halt Sachen wie Electron, React Native und so einsetzen.

    Ich bin ja noch in der Umschlungen zum Fachinformatiker Anwendungsentwicklung und will jetzt das vermehrt lernen was auch von der Industrie gefordert wird und weiß echt nicht in welche Richtung ich gehen soll.



  • @Computerwelt sagte in GUI Web Frontend für C++ Backend:

    Ich habe nur so das Gefühl dass sich Apps immer mehr auf eine HTML, CSS, JS hin lenken, indem sie halt Sachen wie Electron, React Native und so einsetzen.

    Ja, ist so. Von dem her ist deine Idee nicht schlecht, damit lernst du schon etwas, was du vermutlich später brauchen wirst.

    Nur gefallen tut mir diese ganze Entwicklung halt nicht. Es gibt durchaus viele Anwendungsfälle, wo das Sinn macht. Aber es gibt auch viele, wo es keinen Sinn macht, aber trotzdem gemacht wird, "weil andere das auch machen". Das was du machst wäre für mich ein Fall, wo das eigentlich keinen Sinn macht, außer halt als Übungsprojekt.



  • Es wäre auch mehr ein Übungsprojekt um zu schauen wie das alles so zusammen funktioniert. Den Softwaresynth habe ich als ProbeProjekt für C++ mit Qt genommen um ein Ziel zu haben. Fertig ist alles ja nicht. Ich bin jetzt weder in C++ noch in Qt zum Profi dadurch geworden, aber habe erste Erfahrungen sammeln können. Man stolpert ja immer von einem Fehler zum nächsten und hangelt sich so durch bis es zu einem Ergebnis kommt mit dem man zufrieden ist.

    Ich würde mich nur gern auf was spezialisieren was Zukunft hat. Noch bin ich am Anfang meiner Umschulung, aber Mitte nächsten Jahre geht mein Praktikum los und da will ich auch gleich in die richtige Richtung suchen. C++ und Qt wäre aber auch ok. C# werden wir noch in der Umschulung ausgiebig haben, also könnte ich da dann zusätzlich Grundkenntnisse vorweisen. Obwohl ja die Sprache an sich unwichtiger ist als das gesamte Konzept der Software-Entwicklung verstanden zu haben und auch umsetzen zu können.

    Wenn ich mir die ganzen Webentwicklung anschaue, wird mir schlecht. Wer soll da noch durchblicken bei den ganzen Technologien und Frameworks?



  • @Computerwelt sagte in GUI Web Frontend für C++ Backend:

    Wer soll da noch durchblicken bei den ganzen Technologien und Frameworks?

    Aus meiner Sicht ist das meiste dasselbe in Grün...
    Zumindest aus meiner Sicht ist das alles aber recht uninteressant... Ich werde sicher nicht mehr als Frontend-Entwickler (im Web) arbeiten, dafür bin ich schon zu alt und zu teuer. Ich verfolg zwar mit, was sich da tut, und kenn mich mit vielen Technologien grob aus, muss mich aber nicht bis ins letzte Detail auskennen. Und im Backend Bereich hat sich für mich nicht soo viel geändert.



  • Vielleicht sollte ich mich auch mehr auf den Backend spezialisieren, bin ja auch nicht mehr der jüngste.



  • Schau dir Wt mal an. Ist sehr nah an qt dran.



  • https://cutelyst.org/ wäre auch eine variante das nimmt dir den großteil des boilerplate codes ab für die Erstellung einer Web-API (z.b. REST)



  • Danke für die Tipps.


Log in to reply