Ich arbeite an einem Projekt, das Inter-AppDomain-Intra-Process- und Inter-Process-Intra-Machine-Kommunikation erfordert. Ja ... Ich weiß ... NET Remoting wird weithin als Legacy-Technologie betrachtet, aber ich stehe vor zwei sehr speziellen Problemen und vielleicht ist WCF in diesen Szenarien kein vollständiger Ersatz für NET Remoting.NET Remoting und MarshalByRefObject ist wirklich tot?
1) Inter-AppDomain-Intra-Prozess-Kommunikation
Die Anwendung, die ich beim Start arbeiten und müssen sich auf mehr addins ein suchen und Last. Ich möchte jedes AddIn in einer separaten AppDomain laden. Ich brauche einen Weg, um jede Addin-Instanz in seiner AppDomain zu erstellen und einige Schnittstellenmethoden dieser Instanz zu einem bestimmten Zeitpunkt aufzurufen. Hier ist NET Remoting die einzige Möglichkeit, oder? Darüber hinaus, wenn wir das System.Addins Paradigma anwenden möchten, scheinbar basierend nur NET Remoting- und nicht als veraltet markiert ...
2) Inter-Prozess-intra-Maschine-Kommunikation
Hier kann ich sicher aussetzen aus Meine Anwendung ein WCF-Dienst und rufen Sie diesen Dienst von meinem Client mit Named Pipes.
Was ich wirklich tun möchte, ist ein Objektmodell aus meiner Anwendung verfügbar machen, so dass meine Anwendung von einigen NET-Client automatisiert werden kann, ähnlich wie das OLE/COM-Automatisierungsobjektmodell von Excel ausgesetzt. Jeder COM-Client kann einen Objektverweis auf Excel.Application abrufen und offene Dokumente abfragen, einige neue Dokumente öffnen und so weiter.
Ich denke WCF ist gut, auf eine plattformunabhängige Weise zu kommunizieren. Aber in diesem Fall muss ich nur von Net-Client zu Net-Anwendung auf demselben Computer kommunizieren. Die WCF-Service-Philosophie erlaubt meines Erachtens nicht, ein reiches Objektmodell mit Objekten, Sammlung, Feld, statischem Member, Methodenüberladung zu offenbaren ... Oder liege ich falsch?
Bitte entschuldigen Sie mein schlechtes Englisch und meine vielleicht neue Frage.