Mahlzeit, ich arbeite zur Zeit daheim an einem Kommandozeilentool, was jetzt schon recht umfangreich ist. Das Tool ist interaktiv, d.h. es stellt einen Prompt zur Verfügung. Der Nutzer kann durch Eingabe von Befehlen und Parametern bestimmte Funktionen abrufen. Kann man wohl vergleichen mit dem gdb im cli-Modus. Nun würde ich dieses Tool gerne um eine GUI erweitern. Im Linux/Unix Umfeld wird man ja immer derart geimpft, Front- und Backend zu trennen. Dementsprechend überlege ich nun auch, diese Gui als eigenständiges Programm zu implementieren, was eben die Funktionalität meines Tools benutzt. Wie sollte ich da Vorgehen? Interprozesskommunikation mittels Pipes? Sockets? Der gdb nutzt ja Tcp/Ip, auch wenn Server und Client auf der selben Maschine laufen. Wär das auch für mich ein Ansatz? Wie sollte die Kommunikation zwischen den Prozessen ablaufen? ASCII-Interface? Das ist ja auch etwas, was einem im Unix-Umfeld immer eingetrichtert wird. Vorteil den ich bei einem ASCII-Interface über Sockets/Pipes sehe: die Kommandos die normal der Nutzer eingibt werden von der Gui generiert. Der Output des Tools wird von der Gui geparst und visualisiert. Nur wenige Änderungen am Tool nötig, da es diesem relativ egal ist ob die Kommands aus einem Socket oder aus cin kommen. Sollte ich bei diesem Ansatz ein Protokoll zur Kommunikation nutzen oder wirklich nur den Output parsen? Eine andere Möglichkeit wäre die Gui direkt ins Tool zu integrieren. Weiß nicht ob das designtechnisch besser ist. Der Insight-Debugger machts ja so. Im Gegensatz zum ddd "benutzt" Insight nicht den gdb, sondern hat diesen direkt integriert. So würde ich mir das Geparse sparen. Stattdessen könnte der Gui-Code direkt Funktionen des Tools aufrufen anstatt Kommandos in eine Pipe/Socket zu schreiben. Vorschläge? Meinungen? Erfahrungen? Danke fürs Lesen & schönen Freitag!
Trennung von Front- und Backend heißt nicht zwangsläufig, daß beide in unterschiedlichen Prozessen ablaufen müssen. Du kannst genausogut Deine Kommandos im selben Prozeß einfach aufrufen.
oder eine dll mit der Backend und 2 Programm fürs Frontend. Diese binden dann nur die dll ein.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.