Web GUI realisieren



  • Hai,
    Ich bin in Sachen Web-Entwicklung absoluter Neuling, und brauche ein paar Anhaltspunkte. Ich muss eine komplexe UI und Funktionalität als Webinterface realisieren, das man nach dem Modell IP:Port anspricht.

    Bin ich hier mit PHP an der richtigen Adresse? Oder soll ich etwas anderes verwenden?
    (Ich habe mit PHP einfache Erfahrungen gesammelt und Formulare zusammengeschrieben, daher frage ich.)
    Ich bin letztlich gezwungen ein UI-Framework wie Qt zu verwenden, und habe keine Erfahrung damit widgets oder Ähnliches in ein html Umfeld zu integrieren.
    Ich habe mir auch mal Python angeguckt, aber dort das selbe Problem.

    Kennt sich jemand damit aus/hat link zu dem Thema?



  • ich hatte dafuer mal http://www.webtoolkit.eu/wt benutzt, es ist recht nett, hat aber boost dependancies (ist also nicht so sehr lightweight wie es sein koennte).

    so ganz zufrieden bin ich damit aber nicht, waere also auch in alternativen interesiert fuer web-ui.



  • 🙄

    Der TE fragt erstmal, ob er bei PHP an der richtigen Adresse ist und du schlägst gleich wt vor?
    Irgendwie hab ich das Gefühl, dass der TE noch keine Ahnung hat 😉 z.B. "das man nach dem Modell IP:Port anspricht." find ich irgendwie wenig konstruktiv, erst recht, wenn man schon von Web GUI spricht.
    Also, ja, PHP geht, wt geht auch. Willst du bei C++ bleiben? Wenn du das nicht unbedingt willst oder musst, gibts wohl bessere Sprachen fürs Web. PHP wär eine Möglichkeit, ist sehr verbreitet, aber nicht wirklich schön oder elegant. Python wär eine schönere Sprache. Da gibts auch verschiedene Web Frameworks dafür (für PHP natürlich auch). Wenn du doch bei C++ bleiben musst/willst, wär wt wohl eins der ausgereifteren Frameworks, so wirklich toll fand ichs aber auch nicht. Geht halt nicht so elegant mit C++, bei Templates bietet sich eher eine dynamische Sprache an. Also, klär erstmal die Anforderungen und die Voraussetzungen und dann entscheide dich, was du machen willst.



  • Mechanics schrieb:

    Also, klär erstmal die Anforderungen und die Voraussetzungen und dann entscheide dich, was du machen willst.

    Bitte. ich habe sehr klar beschrieben was ich tun möchte.

    Mir ist egal wie ich es realisieren kann, ich kann jedwede Sprache on the fly lernen, und mit jeder Bibliothek arbeiten.

    Ich hatte wie im OP beschrieben Schwierigkeiten konkrete Lösungen für den Fall zu finden, die Klassen und Funktionen die ich in Python Modulen einbinden kann, auf eine Weboberfläche zu bringen. PyQt an sich war kein Problem.
    Ich kenne es aus PHP per echo html code auszuspucken, aber meine Kenntnisse reichten nicht weit genug um Klassen aus Frameworks, die UI elemente darstellen, auf einer Seite zu platzieren.
    Daher kam ich her.

    Aber da ich am Anfang bin kann ich auch die C++ route nehmen - wenn du also noch was weißt...

    @rapso: Vielen Dank. Sieht sehr gut aus.
    es scheint dass ich also mit Wt per

    WServer server(argv[0]);
    server.setServerConfiguration(argc, argv, WTHTTP_CONFIGURATION);
    [...]
    

    einen server aufstelle der dann im Browser angesprochen werden kann, äquivalent zu wenn ich zum Beispiel apache für php nutze und dann das dokument im Browser aufrufe?



  • randa schrieb:

    Bitte. ich habe sehr klar beschrieben was ich tun möchte.

    Also ich hab's nicht verstanden. Macht aber nix, ist ja dein Projekt, nicht meins 😉

    ps:

    randa schrieb:

    Ich bin letztlich gezwungen ein UI-Framework wie Qt zu verwenden, und habe keine Erfahrung damit widgets oder Ähnliches in ein html Umfeld zu integrieren.

    Das geht so auch nicht. Du kannst nicht einfach Qt oder eine andere Desktop GUI Library nehmen, damit eine GUI basteln und mit ein paar Zeilen dann HTML Code daraus machen, so dass ne Web-Anwendung draus wird.
    Dafür gibt es eigene Frameworks.



  • Vergbiss bitte das echo in PHP. Da gibts auch Frameworks, z.B. Symfony oder Yii.

    Es kann dir nicht egal sein, das ist eine sehr wichtige Entscheidung. Da lohnt es sich, etwas Zeit zu investieren und sich die Alternativen genauer anzuschauen, bevor man einfach anfängt.



  • Mechanics schrieb:

    🙄

    Der TE fragt erstmal, ob er bei PHP an der richtigen Adresse ist und du schlägst gleich wt vor?

    ich dachte QT impliziert dass er kein php nimmt, sondern es als alternative sieht.

    c++ wird in vielen web applikationen benutzt, Facebook, deutsche boerse um zwei zu nennen und wenn man c++ kann (was ich implizit ansah), ist es damit eventuell schneller als andere sprachen zu lernen (was ich aus meiner eigenen erfahrung sage).

    ich weiss nicht was daran so schlimm ist dass du dich daran so hochziehst.



  • randa schrieb:

    es scheint dass ich also mit Wt per

    WServer server(argv[0]);
    server.setServerConfiguration(argc, argv, WTHTTP_CONFIGURATION);
    [...]
    

    einen server aufstelle der dann im Browser angesprochen werden kann, äquivalent zu wenn ich zum Beispiel apache für php nutze und dann das dokument im Browser aufrufe?

    ich glaube das ist nicht ganz die vorgehensweise, schaut dir mal das minimale hello world beispiel an:
    http://www.webtoolkit.eu/wt/src/hello



  • Mechanics schrieb:

    Vergbiss bitte das echo in PHP. Da gibts auch Frameworks, z.B. Symfony oder Yii.

    ah, vielen Dank.

    hustbaer schrieb:

    Dafür gibt es eigene Frameworks.

    Was benutzen die denn um die Ui zu zeichnen?


  • Mod

    randa schrieb:

    hustbaer schrieb:

    Dafür gibt es eigene Frameworks.

    Was benutzen die denn um die Ui zu zeichnen?

    Die generieren entsprechendes HTML, normalerweise mit massivem Einsatz von CSS. Oft auch in Zusammenspiel mit eventuellen Fähigkeiten des Browsers, Vektorgrafiken darzustellen (SVG, HTML5, ...). Nützt dir diese Antwort etwas? Wohl kaum, denn du scheinst fast schon mit Absicht die falschen Fragen zu stellen. Warum fragst du nicht, wie diese Frameworks heißen? Willst du etwa wirklich selber nachprogrammieren, wofür andere hunderte oder tausende von Programmiererjahren gebraucht haben, um die verschiedensten Technologien halbwegs sauber unter einen Hut zu bekommen (aus Sicht des GUI-Programmierers), um damit eine halbwegs reaktive GUI erstellen zu können (aus Sicht des Anwenders)? Denkst du, es wäre damit getan, wie bei einer nicht-Web GUI ein paar GUI-Elemente zu definieren und mit Ereignissen zu verknüpfen? Wie soll das funktionieren? Dieses Abstraktionsniveau hast du nur, wenn du eben ein solches Web-GUI-Framework benutzt, weil die den ganzen komplizierten Kram (Wie kommt Rückmeldung vom Browser zum Server? Wie kommt Rückmeldung vom Server zum Browser? Wie erzeugt man die GUI? Wie erzeugt man sie effizient, ohne andauernd neu zu laden? Was, wenn der Browser ein IE 6 ist? Was, wenn der Browser in Wirklichkeit ein Webcrawler ist, der auf einem System mit 36 Bit großen Bytes, EBCDIC-Zeichensatz und mixed Endianess läuft?) weg kapseln. Selbst dann ist es immer noch sehr verschieden von klassischen UI-Frameworks wie Qt, einfach weil das Umfeld (Client-Server System) derart anders ist.

    All das wurde im Prinzip schon angedeutet in den anderen Antworten, besonders hustbaers, aber hier hast du es noch mal ausgeschrieben.



  • SeppJ schrieb:

    Willst du etwa wirklich selber nachprogrammieren, wofür andere hunderte oder tausende von Programmiererjahren gebraucht haben

    Statt hundert fragen zu fragen und Annahmen zu machen warte doch erstmal auf eine Antwort.

    Denkst du, es wäre damit getan, wie bei einer nicht-Web GUI ein paar GUI-Elemente zu definieren und mit Ereignissen zu verknüpfen

    exakt das erwarte ich. Irgendwer wird schon anbieten, nach Qt Modell mal eben ein paar Widgets zu platzieren und Events zu handhaben. Und wenn nicht dann wird es halt Wt, weil das dem Modell recht nahe kommt.

    Welche weiteren Fragen sich für mich überhaupt stellen ist erst klar wenn ich Framework kenne und was geschrieben habe und schon tiefer ins Projekt eingedrungen bin.

    Nützt dir diese Antwort etwas? Wohl kaum

    Selbstverständlich. Alle Kochen scheinbar nur mit Wasser, was im Notfall bedeutet ich kann es auch auf das Level runterbringen.



  • randa schrieb:

    Mir ist egal wie ich es realisieren kann, ich kann jedwede Sprache on the fly lernen, und mit jeder Bibliothek arbeiten.

    Endlich mal ein richtiger Held hier und nicht nur so Schlaffies.


  • Mod

    randa schrieb:

    SeppJ schrieb:

    Willst du etwa wirklich selber nachprogrammieren, wofür andere hunderte oder tausende von Programmiererjahren gebraucht haben

    Statt hundert fragen zu fragen und Annahmen zu machen warte doch erstmal auf eine Antwort.

    Die Frage, die du gestellt hast, macht nur Sinn, wenn du das wirklich vor hast:

    Nützt dir diese Antwort etwas? Wohl kaum

    Selbstverständlich. Alle Kochen scheinbar nur mit Wasser, was im Notfall bedeutet ich kann es auch auf das Level runterbringen.

    Also hatte ich Recht mit meiner Vermutung. Lass dich bloß nicht abhalten. Es sagt ja bloß jeder, dass du dir das viel zu einfach vorstellst. Die haben ja alle keine Ahnung.

    ~PS: Kennt ihr dieses seltsame Gefühl von Genugtuung, wenn man jemanden dabei zusieht, wie er, entgegen aller Warnungen, etwas gegen die Wand fährt?~



  • rapso schrieb:

    ich weiss nicht was daran so schlimm ist dass du dich daran so hochziehst.

    Hab ich nicht, ist vielleicht falsch rübergekommen. Das 🙄 bezog sich auf die ganze etwas schwammig und seltsam formulierte Frage und zusätzlich auf deine sehr spezifische Antwort, die nicht darauf einging, dass die Frage gar nicht so eindeutig war.



  • SeppJ schrieb:

    Warum fragst du nicht, wie diese Frameworks heißen?

    wenn du frameworks hast die besser sind als Wt und wie QT erlauben c++ applikationen zu schreiben die lediglich die UI in den browser schieben, waere ich dir sehr dankbar lieber SeppJ wenn du sie mir nennen wuerdest. Wt ist nicht opimal, aber was besseres, trotz einiges an suchen, hab ich bisher nicht gefunden.

    (btw. gibt es zZ eine zeitschrift, hab den namen vergessen, die einen ueberblick ueber c++ web frameworks bietet, aber ein wenig biased da es von einem entwickler von einem der frameworks ist und entsprechend kurzatmig werden die anderen frameworks zusammengefasst. findet man sicher am kiosk.)

    edit: https://cplusplusinweb.files.wordpress.com/2014/08/cover_entwickler_5_2014_edit.png



  • Mechanics schrieb:

    rapso schrieb:

    ich weiss nicht was daran so schlimm ist dass du dich daran so hochziehst.

    Hab ich nicht, ist vielleicht falsch rübergekommen. Das 🙄 bezog sich auf die ganze etwas schwammig und seltsam formulierte Frage und zusätzlich auf deine sehr spezifische Antwort, die nicht darauf einging, dass die Frage gar nicht so eindeutig war.

    hab zuviele trolle gesehen, deswegen antworte ich moeglichst stumpf positiv und so hilfreich es geht oder garnicht. ansonsten faehrt man weniger kompetente leute unnoetig an (und es hilft niemandem) oder gibt trollen eine genugtuung (wenn man das gegenteil moechte).



  • rapso schrieb:

    deswegen antworte ich moeglichst stumpf positiv und so hilfreich es geht oder garnicht. ansonsten faehrt man weniger kompetente leute unnoetig an (und es hilft niemandem) oder gibt trollen eine genugtuung (wenn man das gegenteil moechte).

    Gute Einstellung 👍
    Vielleicht schaffe ich es mal das zu übernehmen. Wenigstens meistens 🙂



  • rapso schrieb:

    SeppJ schrieb:

    Warum fragst du nicht, wie diese Frameworks heißen?

    wenn du frameworks hast die besser sind als Wt und wie QT erlauben c++ applikationen zu schreiben die lediglich die UI in den browser schieben, waere ich dir sehr dankbar lieber SeppJ wenn du sie mir nennen wuerdest. Wt ist nicht opimal, aber was besseres, trotz einiges an suchen, hab ich bisher nicht gefunden.

    (btw. gibt es zZ eine zeitschrift, hab den namen vergessen, die einen ueberblick ueber c++ web frameworks bietet, aber ein wenig biased da es von einem entwickler von einem der frameworks ist und entsprechend kurzatmig werden die anderen frameworks zusammengefasst. findet man sicher am kiosk.)

    Die Zeitschrift heisst Entwicklermagazin (Ausgabe 5.14) und das Framework, welches so biased dargestellt wird ist Tntnet. Das ist auch eine Möglichkeit, Webapplikationen zu entwickeln. Und meines erachtens die beste 😃 . Aber meine Meinung ist natürlich extrem biased 😉 .



  • hab es auch gerade ergooglet und meinen oberen poste editiert gehabt.

    ich finde die eroerterungen zu eurem framework ja auch gut, es ist nur schade dass die meisten anderen mit einem absatz abgeklatscht werden. z.B. Wt, was doch recht gut ist und wo in dem absatz eigentlich nichts negatives zu steht wird hat nichtmal ein hello-world listing bekommen, dabei ist es (IMHO) das beste framework wenn man UI lastige dinge machen moechte. tntnet scheint performanter und sicherer zu sein, aber sowas wird mangels gegenueberstellung garnicht deutlich im artikel. als ich die zeitschrift kaufte hatte ich nur mal die erste seite angelesen und gehofft gehabt das der artikel qualitativ der gleichen spur bis zum ende folgt.



  • An tntnet hab' ich auch gedacht.
    Aber passt das auf die Frage hier? Ich kenn' das Ding nicht wirklich - kann man damit so ähnlich arbeiten wie mit klassischen Desktop GUI Frameworks?

    Wobei ... ich kenne sowieso kein Web GUI Framework mit dem man wie mit klassischen Desktop GUI Frameworks arbeiten könnte, das nicht zugleich auch ziemlich ... schlecht ist. Also speziell: langsam.


Log in to reply