Ist .NET Remoting wirklich veraltet?



Answers

Ja. Remoting ist veraltet ... und es ist offiziell von Microsoft. Hier ist der Link:

http://msdn.microsoft.com/en-us/library/72x4h507%28VS.85%29.aspx

Die erste Zeile in dem Artikel sagt in Fettschrift:

Dieses Thema bezieht sich auf eine Legacy-Technologie, die aus Gründen der Abwärtskompatibilität mit vorhandenen Anwendungen beibehalten wird und nicht für Neuentwicklungen empfohlen wird. Verteilte Anwendungen sollten jetzt mit der Windows Communication Foundation (WCF) entwickelt werden.

Ich dachte, das Wort wäre "veraltet", aber anscheinend bezeichnen sie es als "Vermächtnis"

Question

Alle sagen, dass .NET Remoting durch WCF ersetzt wird, aber ich frage mich, wie genau das ist. Ich habe kein offizielles Wort gesehen, dass Remoting veraltet ist, und es scheint mir, dass es durchaus Szenarien gibt, in denen Remoting mehr Sinn macht als WCF. Keines der Remoting-bezogenen Objekte oder Methoden wurde veraltet, auch nicht in der Version 4.0 des Frameworks. Es ist auch mein Verständnis, dass System.AddIn in den 3.5 und 4.0 Frameworks Remoting verwendet.

Hat jemand ein offizielles Wort für das Gegenteil?

In dem Artikel Auswählen von Kommunikationsoptionen in .NET (für 3.0, da das die neuste Version des Artikels ist) besagt 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 Anwendungsgrenzen zu überschreiten, aber gibt es die offizielle Empfehlung für dieses Szenario?

Update: Ich schickte Clemens Vasters (der im Team von Remoting und WCF war) diese Frage:

Clemens, ich verstehe, dass Sie zu dem Team gehören, das sowohl remoting als auch wcf besitzt, und ich habe ein paar Fragen, von denen ich glaube, dass ich zur Quelle gehen muss.

Zuerst habe ich eine Frage, ob Remoting weggeht. Insbesondere haben wir eine ziemlich große Anwendung, die Remoting für prozessübergreifende Cross-Appdomain-Kommunikation ausgiebig verwendet, und ich habe mich gefragt, ob diese Verwendung von Remoting als "Vermächtnis" angesehen wird. Wenn ja, werden AppDomain.CreateInstance und Freunde durch etwas anderes ersetzt?

Dies ist seine Antwort:

Remoting ist Teil des .Net-Frameworks und als solches geht es nicht weg. COM ist in Windows seit Windows NT 3.5 / Windows 95 gewesen und ist nicht weggegangen und ich sehe nicht, dass das bald weggehen wird.

Allerdings fließen in Remoting nur sehr geringe Entwicklungsinvestitionen ein. WCF ist der Nachfolger von Remoting und ersetzt COM / DCOM für verwalteten Code.

Für In-Process-, Cross-Appdomain-Kommunikation Remoting ist die native Kommunikationsweise der CLR. Wenn Leistungsprobleme auftreten, bei denen größere Datenmengen oder sehr viele Nachrichten in kurzer Zeit gepumpt werden, sollten Sie sich WCF und NetNamedPipeBinding genauer ansehen.




Ich denke, jetzt (2015) ist es sogar für Anwendungsbereiche klar: https://msdn.microsoft.com/en-us/library/vstudio/ms180984(v=vs.100).aspx

Remoting-Cross-Anwendungsdomänen Dieses Thema bezieht sich auf eine ältere Technologie, die aus Gründen der Abwärtskompatibilität mit vorhandenen Anwendungen beibehalten wird und nicht für Neuentwicklungen empfohlen wird. Verteilte Anwendungen sollten jetzt mit der Windows Communication Foundation (WCF) entwickelt werden.

Dann sollte WCF auch für Anwendungsbereiche verwendet werden.




Links