Kommunikation zwischen zwei "unabhängigen" Programmen

  • VB.NET

Es gibt 3 Antworten in diesem Thema. Der letzte Beitrag () ist von ErfinderDesRades.

    Kommunikation zwischen zwei "unabhängigen" Programmen

    Ausgangssituation:
    In unserem Unternehmen sollen alle MySQL Backups und Server Neustarts auf erfolgreiche Ausführung geprüft werden. Sollte etwas nicht ordnungsdgemäß erledigt sein, dann soll z.B. an Teams eine Message gesendet werden.

    Istsituation:
    Ich habe ein Tool geschrieben, welches alle notwendigen Daten von allen Server in eine Datenbank sammelt. Das funktioniert soweit. Nun soll ein Tool entwickelt werden, welches in regelmäßigen Abständen diese Daten prüft und bei Bedarf eine Message über Teams versendet. Diese Prüfungen sollen aber flexibel sein. Dazu habe ich mir überlegt ein Tool zu machen, welches VB Code (Prüfungen) ausführen kann. Dazu habe ich mir eine ScriptEngine geschrieben, welche die "CodeDomProvider" etc. verwendet. Das funktioniert auch soweit, die Scripts werden ausgeführt.

    Mein Problem ist nun, wie kann ich vom ausführbarem VB Code (Prüfungen) einen Event/Message etc. an das Hauptprogramm übergeben/senden. Das Prüfscript (CodeDomProvider) ist ja eigentlich ein eingenständiges Programm, welches mit CodeDomProvider im Memory compiliet wird. Ich möchte nämlich die Messages an Teams vom Hauptprogramm versenden, damit der Code vom Prüfscript nicht zu unübersichtlich/groß wird.

    Vielleicht kann mir da jemand weiterhelfen. Danke.
    @GerhardW Ich werfe da mal Named Pipes in den Raum:
    c-sharpcorner.com/UploadFile/53fd7d/named-pipe-with-C-Sharp/
    docs.microsoft.com/de-de/dotne…nterprocess-communication
    stackoverflow.com/questions/13806153/example-of-named-pipes
    Ich habe selber mal solch ein Beispiel getestet, das funktioniert prima.
    Mach Dir zunächst 2 (zwei) Beispielprogramme, eins mit dem Server, eins mit dem Client.
    Erforsche und implementiere die Funktionalität, dann übernimm sie in Dein Projekt.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    @RodFromGermany danke für die Antwort. Bei dieser Lösung müsste ich aber immer den Clientcode in mein Prüfscript implementieren. Das sollte aber wenn möglich vermieden werden.
    Vielleicht habe ich die Aufgabenstellung auch nur falsch betitelt.
    Ich habe ein Programm, in welchem mittels CodeDOMProvider ein ausführbarer Code im Memory compiliert und ausgeführt wird. Quasi ein Programm im Programm.
    Ich möchte nun vom „Memoryprogramm“ eine Nachricht/Event an das eigentliche Programm senden. Z.B dass das Prüfscript keine Fehler in den Daten gefunden hat.

    ich habe jetzt diesen Link gefunden:
    stackoverflow.com/questions/12…ted-by-csharpcodeprovider

    Muss es erst lesen und prüfen, ob ich es verstehe.
    alsso die Programme sind durchaus überhaupt nicht unabhängig, sondern das eine ruft das andere auf.
    Da kann der Aufrufer mit Leichtigkeit per Kommandozeile Eingaben machen.
    Und das Aufgerufene kann mit Leichtigkeit per Console.Write() Antworten schicken, die der Aufrufer über den OutputStream empfängt.

    Also das wäre keine laufende Kommunikation, aber immerhin ein Input von Parametern und ein Output von Results.