Welches Framework, bzw. welche Bibliothek am besten nutzen?



  • Schönen Morgen euch,

    ich möchte mir ein wenig mehr Sprachvielfalt beibringen, deswegenen habe ich geplant, mein nächstes Projekt auf mehreren Programmiersprachen auszulegen. Um es kurz zusammen zu fassen, es geht um eine TCP Client/Server Anwendung. Der Client ist in der lage, seinen Zwischenspeicher mit anderen Geräten innerhalb seines Accounts zu synchronisieren. Ob das jetzt Texte, oder Dateien sind spiel keine Rolle. Die Verbindung soll via SSL verschlüsselt werden, zusätzlich hat der Client die Möglichkeit, Dateien separat nochmals mit AES zu verschlüsseln, falls der Client meint, dass der Server nicht zu wissen braucht, was in den Dateien drinne steht.

    Ursprünglich wollte ich das ganze beidseitig (Windows Desktop PC) in C# umsetzen, was definitiv kein Problem darstellen würde. Nun habe ich mich entschlossen, den Server in C++ zu entwickeln, einfach aus reiner Interesse. Bin in C++ nicht komplett hilflos, habe früher ne Zeit lang in dieser Sprache entwickelt.

    Anforderungen der Servers:

    • Verwalten mehrere Clientes
    • Zugriff auf eine lokale MYSQL-Datenbank
    • TCP-Verbindung via. SSL
    • Password-Validierung mit BCRYPT

    Im grunde also ein einfacher TCP-Server. Der Server sollte eine Oberfläche besitzen, mit dieser kann ich den Server konfigurieren, Server starten/stoppen, Logging/Monitoring verwalten kann.

    Nun stellt sich die Frage, was für Frameworks und Bibliotheken eignen sich am besten. Ursprünglich dachte ich, dass ich alles in QT implementiere.
    Da habe ich teilweiße sogar hier im Forum gelesen, dass QT ein menge OverHead mit sich bringt und wenn man QT nutzen soll, dann lediglich nur für die UI. Da meine UI aber sehr geringe Anforderungen hat, wäre hier QT ebenfalls Oversized, meiner Meinung nach. Habe jetzt gedacht, dass ich die Business in Boost implementiere, dieses scheint ja von vielen empfohlen worden zu sein. Nun, mit was mache ich die GUI? Oder kann ich bedenkenlos alles in QT implementieren?

    Wäre nett, wenn mir jemand ein Paar Tipps geben könnte.

    Grüße Marcel



  • Wenn es dir darum geht, die Sprache C++ zu erlernen, solltest du auch die Sprachmittel verwenden und nicht eine Bibliothek, die weit davon abstrahiert. Leider gibt es bisher in C++ keine Socketimplementierung. Stattdessen wird direkt mit dem Betribessystem(-C)-API gearbeitet. Allerdings ist AFAIK boost.asio die Grundlage für eine zukünftige Statndardimplementierung. Daher müsste die Wahl auf boost fallen.

    Ich habe keine Ahnung, von welchem "Overhead" in Qt die Rede ist. Das ist halt das Problem mit "ich habe gehört" Fragen. Wenn du zur Oberflächenprogrammierung Qt einsetzt, kannst du es auch überall verwenden.



  • Du könntest zur Einbindung der Mehrsprachigkeit, jeweils modulare Sprachdateien einlesen lassen. Entweder TXT oder XML Dateien. Naja so hätte ich das zumindest als Nichtfachmann gemacht...



  • PALone schrieb:

    Du könntest zur Einbindung der Mehrsprachigkeit, jeweils modulare Sprachdateien einlesen lassen. Entweder TXT oder XML Dateien. Naja so hätte ich das zumindest als Nichtfachmann gemacht...

    Vorher bitte die Frage lesen. Hier geht es um alles außer um eine Lokalisierung.

    Grüße Marcel



  • Zum Thema Qt und "Overhead", gibt es hier einen interessanten Artikel:

    http://qt-project.org/doc/qt-4.8/templates.html



  • Oj Sh** Sorry 😮



  • signal-slot syntax mit function pointern ist inzwischen möglich
    http://qt-project.org/wiki/New_Signal_Slot_Syntax

    @repac3r
    Ich würde Dir zu Qt oder zu POCO raten, schau nach wo das meiste von Dir unterstützt wird und verwende dann die Bibo. Halte die Anzahl der Dependencies gering.


Anmelden zum Antworten