Hallo,
ich versuche mich gerade in das Thema .NET-Remoting einzuarbeiten. Meine ersten Versuche haben auch funktioniert und ich konnte eine kleine Client-Server-Anwendung damit erstellen.
Nun habe ich aber eine konkrete Aufgabenstellung und stoße nun an die Grenzen meines Wissens. Vielleicht kann mir einer von Euch auf die Sprünge helfen. Derzeit habe ich ein Problem folgendes zu designen bzw. zu implementieren.
Ich möchte über .NET-Remoting eine instanzierte Klasse, welche von MarshalByRef ableitet, zur Verfügung stellen. Das klappt auch soweit. Nun soll diese Klasse eine Methode zur Verfügung stellen, die nach Übergabe verschiedener Parameter vom Client, eine länger dauernde Aktion auf dem Server ausführen soll.
Im einzelnen:*die Methode ließt anhand der Parameter verschieden Datenbanktabellen auf dem Server *die Methode stellt anschließend eine Collection von Dateinamen zusammen *diese Datein, die quer im lokalen Netzwerk verteilt sind, werden dann in ein Verzeichnis auf dem Server kopiert *anschließend wird das komplette Verzeichnis komprimiert und auf eine DVD gebrannt
Nun möchte ich während dieser Aktionen den Client regelmäßig über die aktuelle Aktion inkl. einer Progressbar informieren. Hiermit tue ich mich nun schwer und weis nicht wie ich es lösen soll. Events dieser Klasse kann ich nicht auf dem Client abonieren und somit auch nicht darauf reagieren. Für jeden Tip bin ich dankbar. Liebe Grüße Björn
Verstehe ich das richtig, dass ich also auch auf dem Client ebenfalls eine definierte Klasse, die von MarshalByRef ableitet, instanziere, von dieser Klasse dann die Events abonniere und sie dann dem Server mitteile. Der Server könnte dann wiederum eine Methode dieser Klasse aufrufen die dann den Event auf dem Client auslöst.
Habe ich das so richtig verstanden ??
Kann mir vielleicht mal einer ein gutes Code Beispiel nennen, wo so etwas ähnliches gemacht wird ??
Hi geht das nicht auch per callback?
Auf codeproject gibts doch so chat samples 🙂
MFG
ja, das mit dem callback ist das gleiche prinzip. der client muss immer auch ein objekt auf seiner seite registrieren. uns sich somit auch wie eine server verhalten, nur das im falle vom callback beim aufruf auf dem server gleich ein proxy mitgegeben wird, die dann der server verwenden kann.
im prinzip ist es das selbe nur anders gelöst.
Hey,
danke für Eure Infos. Ich werde dann mal mein Glück versuchen und beim Aufruf der Server Methode ein Proxy vom Client mitzugeben.
Noch eine kleine Frage. Kann jemand ein wirklich gutes Buch empfehlen, welches sich mit dem Thema Client-Server Programmierung und Remoting beschäftigt ?
Gruß Björn