2 Projekte in C# .Net 2003 einbinden und verknüpfen



  • Hi,

    also ich habe 2 verschiedene Projekte (ein "vb" Projekt und ein
    "cs" Projekt) in die Solution von "Microsoft Visual C#.Net"
    eingebunden. Wie kann ich mit den einen Projekt das andere Aufrufen ?
    Weil bis jetzt kann ich entweder nur das ein oder nur das andere
    Aufrufen und Ausführen. Wie kann ich da eine Verküpfung im Code herstellen
    sodass ich gegenseitig Werte übergeben kann usw. ?

    Gruss
    Luchan



  • Was Du also brauchst ist das eine Applikation als Remote-Server arbeiten tut.

    Da habe ich folgenden Link im Netz gefunden basiert auf .NET 2.0 aber die Namensräume die Du dafür brauchst gibts so auch im .NET 1.1

    http://quickstart.developerfusion.co.uk/QuickStart/howto/doc/Remoting/firstserver.aspx

    und unter Codeproject www.codeproject.com

    kannste dort mal mit folgenden Schlüssel suchen:

    Remote Server Object

    ---------------------------------------------------------------------------

    Grundsätzlich könntest Du aber auch in eine der beiden beiden Anwendung
    aber auch einen Thread einbauen der auf einen Socket lauscht!

    Im Client verbindest Du Dich dann mit der Anwendung und schickst Daten über den Socket zum Server.

    ---------------------------------------------------------------------------

    Noch eine andere Möglichkeit wäre sicherlich auch mit dem Programm
    "Winspector Spy" das laufende Programm was man automatisieren möchte zu untersuchen. Dabei bekommt man raus wie die Klassennamen der einzelnen GUI-Elemente heissen.

    Dann kann man per Sendmessage Nachrichten zu diesen Elementen schicken.
    Also Buttonklicks aus anderen Anwendung heraus in anderen Anwendungen simulieren,
    Textboxen aus anderen Anwendung füllen. Das funktioniert dann aber nur lokal auf deinem Desktoprechner. Wobei ersteres und zweites auf TCP aufsetzt und Netzwerkweit funktioniert.

    ------------------------------------------------------------------------------

    Und dann gäbe es noch das Stichwort COM-Server/Client. Das müsste man in einer oder beiden Anwendungen implementieren.
    Such mal in deiner MSDN unter COM-Interop

    Das wären jetzt so die 4 Dinge die ich Dir nennen kann

    P.S.: Oh da fällt mir auch noch was anderes ein weil es ja zu Verteilten Anwendungen gehört was Du machen willst.

    Such Dir mal Infos zu "WebServices". Wenn Du auf Deiner Maschine den IIS laufen hast und der funktioniert kannst damit auch lokal arbeiten. Dann könntest Du ein WebService-Projekt aufsetzen was Du auf deinem IIS laufen lässt.
    In einem 2. Projekt nimmst Du einen Verweis (Webverweis) auf. Dann kannst Du diesen Dienst in einem anderen Projekt nutzen. Kannst den WebService den Du baust als Vermittler fuer deine 2 Anwendungen auslegen.

    Wie Du siehst man hat mal wieder kunterbunte Auswahl.



  • Vielen Dank für deine umfangreiche Antwort, vorallem mitten in der Nacht.
    Also ich versuche gerade deine erste Variante zu nehmen:

    "Was Du also brauchst ist das eine Applikation als Remote-Server arbeiten
    tut.

    Da habe ich folgenden Link im Netz gefunden basiert auf .NET 2.0 aber die
    Namensräume die Du dafür brauchst gibts so auch im .NET 1.1

    http://quickstart.developerfusion.co.uk/QuickStart/howto/doc/Remoting/firstserver.aspx
    "

    Aber hier habe ich das Problem das ich die Remoting.dll nicht finden kann welches ich als Reference noch einbinden muss für
    "using System.Runtime.Remoting.Channels.Tcp;", obwohl ich das "NET Compact Framework 2.0 Redistributable" installiert habe.
    Habe schon das Laufwerk dannach durchsuchen lassen.
    Wie kann ich die sonst bekommen ?

    Deine zweite variante klingt auch interresant nur weiss ich nicht wie das geht,
    bzw. was ich da machen soll.

    "Grundsätzlich könntest Du aber auch in eine der beiden beiden Anwendung
    aber auch einen Thread einbauen der auf einen Socket lauscht!

    Im Client verbindest Du Dich dann mit der Anwendung und schickst Daten
    über den Socket zum Server."

    Gruss
    Luchan



  • Weil Du sagtest Du nutzt zwar .NET 2.0 aber hast Die remoting.dll nicht

    versuch erstmal die 3 using-Klauseln ins Projekt zu packen

    using System.Runtime.Remoting;
    using System.Runtime.Remoting.Channels;
    using System.Runtime.Remoting.Channels.Tcp;
    

    Wenn er die Konsolenanwendung oder die Windowsapplikation daraufhin ohne zu meckern kompilliert ist entsprechende Dll auch vorhanden.

    Ansonsten musst Du die Dir über die Projektansicht per "Verweis hinzufügen"
    selbst ins Projekt holen! Hast Du den Verweis gemacht sollten auch die using-Klauseln funktionieren.

    Desweiteren könntest Du die Dll per Windowssuche finden Dir das Verzeichnis merken. Dieses Verzeichnis dann im Dialog "Verweis hinzufügen" unter dem Button "Durchsuchen" manuell einstellen. Und dann wieder usings im Code machen.

    jo jetzt bin icherstmal am Ende mit dem berüchtigten Latein 🙂



  • Danke erstmal für dein Antwort.
    Ich habe ja schon meine Laufwerke durchsucht wg der dll wie ich schrieb. Sonst
    hätte ich sie schon so eingebunden, wie ich auch meine eigenen dlls sonst
    so eingebunden habe.
    Deine 3 using-Anweisung sind ja schon mit drin in den Bsp. von dein Link.

    Jedenfalls habe ich ein conversion-tool-demo gefunden (max. 1000 Zeilen, habe
    ja weinger) womit ich das vb- projekt in ein c#-projekt umgewandelt habe,
    musste noch 5 Änderungen dann manuell machen und nun läuft es erstmal so
    wie es unter vb läuft. Muss es aber erst noch heute Abend mit meiner FireWire Kamera testen, dann weiss ich es ganz genau ob es geklappt hat, weil die
    habe ich jetzt nicht hier.

    Luchan



  • So, habe nun das konvertierte VB-Projekt, welches nun ein C#-Projekt, ist auch mit meiner Firewire Kamera getestet und es läuft alles super.
    Habe jetzt hier zu Hause auch nach der Remoting.dll gesucht und gefunden unter:

    C:/WINDOWS/Microsoft.NET/Framework/v2.0.50727/System.Runtime.Remoting.dll

    Aber auf den Rechner in meiner Firma war das def. nicht zu finden. Obwohl ich Administratorrechte habe weiss ich nicht ob da noch andere Einschränkungen der IT
    der Firma da gelten das da Server Anwendungen nicht zugelassen sind, oder was auch immer.
    Jedenfalls kann ich nun alles in ein C# Projekt anfertigen, was ja ideall für mich nun ist.

    Trotzdem danke für deine Mühen.
    Gruss Luchan



  • Na dann ist doch alles Sahne 👍


Anmelden zum Antworten