Alle sagen, wie .NET Remoting durch WCF ersetzt wird, aber ich frage mich, wie genau das ist. Ich habe kein offizielles Wort darüber gesehen, dass Remoting veraltet ist, und es scheint mir, dass es sicherlich Szenarien gibt, in denen Remoting sinnvoller ist als WCF. Selbst in Version 4.0 des Frameworks wurde keines der Remoting-bezogenen Objekte oder Methoden veraltet. Nach meinem Verständnis verwendet System.AddIn in den Frameworks 3.5 und 4.0 Remoting.
Hat jemand ein offizielles gegenteiliges Wort?
In dem Artikel Auswählen von Kommunikationsoptionen in .NET (für 3.0, da dies die neueste Version dieses Artikels ist) heißt es:
8 Anwendungsübergreifende Domänenkommunikation
Wenn Sie die Kommunikation zwischen Objekten in verschiedenen Anwendungsdomänen innerhalb desselben Prozesses unterstützen müssen, müssen Sie .NET-Remoting verwenden.
Nun, das ist natürlich nicht korrekt, da WCF sicherlich verwendet werden kann, um Appdomain-Grenzen zu überschreiten, aber gibt es die offizielle Empfehlung für dieses Szenario?
Update: Ich habe Clemens Vasters (der zu dem Team gehört, das Remoting und WCF besitzt) diese Frage geschickt:
Clemens, ich verstehe, dass Sie zu dem Team gehören, das sowohl Remoting als auch wcf besitzt, und ich habe ein paar Fragen, für die ich glaube, dass ich zur Quelle gehen muss.
Zunächst habe ich eine Frage, ob das Remoting nicht mehr funktioniert. Insbesondere haben wir eine ziemlich große Anwendung, die Remoting in großem Umfang für die prozessübergreifende Kommunikation zwischen Prozessen verwendet, und ich habe mich gefragt, ob diese Remoting-Verwendung als "Legacy" betrachtet wird. Wenn ja, werden AppDomain.CreateInstance und Freunde durch etwas anderes ersetzt?
Dies ist seine Antwort:
Remoting ist Teil des .Net Frameworks und wird daher nicht entfernt. COM ist seit Windows NT 3.5 / Windows 95 in Windows und ist nicht verschwunden, und ich sehe auch nicht, dass dies bald verschwindet.
Das heißt, es gibt nur sehr minimale Entwicklungsinvestitionen in Remoting. WCF ist der Nachfolger von Remoting und ersetzt COM / DCOM für verwalteten Code.
Für die prozessübergreifende, domänenübergreifende Kommunikation Remoting ist die native Kommunikationsmethode der CLR. Wenn Sie Leistungsprobleme feststellen, die in kurzer Zeit größere Datenmengen oder sehr viele Nachrichten pumpen, sollten Sie sich WCF und NetNamedPipeBinding genauer ansehen.