Remoting ohne Interfaces
(Nsoft/Samples/Remoting1:
- eine Klasse/Objekt (: MarshalByRefObject) kann direkt remote instanziiert und verwendet werden
- Übertragung von Objektreferenzen vom Server zum Client ist möglich
- das remote-fähige Objekt (Klasse) ist gleichzeitig der lokale Stube, die Assembly muss deshalb beim Client und beim Server vorliegen
- Das Remoting wird über die App.confug konfiguriert
- die Lebenszeit im Server wird durch Timing überwacht, ggf muss der GC explizit aufgerufen werden, um aubgelaufene Objekte zulöschen
Beispiele
Ich habe mal mit remoting etwas rumgespielt (aus Microkernel): 5 Mini-Projekte
- RemotableType (Logik)
- Host (Remoting-Server als Console)
- WebHost (als IIS Remoting-Service)
- Client (Remoting-Client als Console)
- WebClient (Remoting-Client als Webapp)
Alle möglichen Kombinationen funktionieren:
- Host.exe starten bzw. IIS virtuelles Verzeichnis einrichten
- Client.exe starten bzw. default.aspx unter VS im Browser anzeigen
die URLs für IIS-Host und Console-Host sind unterschiedlich, Client muss entsprechend umkonfiguriert werden
- Remotefähige Objekte kann man immer auch local verwenden ohne im Programmcode zu ändern (!), es gibt im Client-config lediglich eine Einstellung, wo das Bootstrapper-Objekt liegt (lokal oder url). Einzigste Vorraussetzung ist das Ableiten von MarshalByRefObject.
- Natürlich kann und sollte man mit Interfaces arbeiten. Man muss aber nicht. Diese Variante ohne Interfaces bietet aber die Möglichkeit, unbekannte finale remote-Klassen über den TypeDescriptior erforschen zu können (siehe PassedType2).
Wir arbeiten mit Software von http://www.campus21.de.
Verantwortlich für angezeigte Daten ist der Webdomain-Eigentümer laut Impressum.