Todo el mundo está diciendo cómo .NET Remoting está siendo reemplazado por WCF, pero me pregunto qué tan preciso es eso. No he visto ninguna palabra oficial de que Remoting esté siendo desaprobado, y me parece que ciertamente hay escenarios en los que Remoting tiene más sentido que WCF. Ninguno de los métodos o objetos relacionados con Remoting ha quedado obsoleto, incluso en la versión 4.0 del marco. También tengo entendido que System.AddIn en los marcos 3.5 y 4.0 usa Remoting.
¿Alguien tiene alguna palabra oficial que indique lo contrario?
En el artículo, Elegir opciones de comunicación en .NET (para 3.0, ya que esa es la última versión de ese artículo), dice:
8 Comunicaciones de dominio entre aplicaciones
Si necesita admitir la comunicación entre objetos en diferentes dominios de aplicación dentro del mismo proceso, debe utilizar la comunicación remota .NET.
Ahora, eso, por supuesto, no es exacto, ya que WCF ciertamente se puede usar para cruzar los límites del dominio de aplicación, pero ¿está dando la recomendación oficial para ese escenario?
Actualización: le envié a Clemens Vasters (que estaba en el equipo propietario de Remoting y WCF) esta pregunta:
Clemens, tengo entendido que está en el equipo que posee tanto el control remoto como el wcf, y tengo un par de preguntas por las que creo que necesito ir a la fuente.
Primero, tengo una pregunta sobre si la comunicación remota va a desaparecer. Específicamente, tenemos una aplicación bastante grande que utiliza la comunicación remota ampliamente para la comunicación entre dominios de aplicaciones en el proceso, y me preguntaba si este uso de la comunicación remota se considera "heredado". Si es así, ¿AppDomain.CreateInstance y sus amigos serán reemplazados por algo más?
Esta es su respuesta:
La comunicación remota es parte de .Net Framework y, como tal, no va a desaparecer. COM ha estado en Windows desde Windows NT 3.5 / Windows 95 y no ha desaparecido y tampoco veo que eso desaparezca pronto.
Dicho esto, hay una mínima inversión en desarrollo para Remoting. WCF es el sucesor de Remoting y reemplaza COM / DCOM para código administrado.
Para comunicación en proceso, entre aplicaciones y dominios, la comunicación remota es la forma nativa de comunicación de CLR. Si observa problemas de rendimiento al bombear grandes cantidades de datos o muchos mensajes en poco tiempo, debe analizar seriamente WCF y NetNamedPipeBinding.
Respuestas:
Llamarla tecnología heredada es una descripción más precisa.
http://msdn.microsoft.com/en-us/library/72x4h507%28VS.85%29.aspx
Actualización: WCF no distingue entre inter / intra / process / inter / intra-appdomain. Si está utilizando la comunicación de una sola máquina en WCF, utiliza canalizaciones con nombre; su uso debería ofrecer un buen rendimiento en prácticamente todos los escenarios realistas.
Para una comparación de rendimiento de varias tecnologías de comunicación distribuida, consulte aquí .
fuente
Si. La comunicación remota está en desuso ... y es oficial de Microsoft. Aquí está el enlace:
.NET Remoting
La primera línea del artículo dice en negrita:
Pensé que la verborrea estaba 'desaprobada' pero aparentemente se refieren a ella como 'legado'
fuente
Si desea migrar a .NET Core, debe encontrar otra solución para Remoting de todos modos:
Fuente: https://docs.microsoft.com/en-us/dotnet/core/porting/libraries#remoting
fuente
Clemens Vasters, el líder técnico de Microsoft .NET Service Bus (que significa tanto Remoting como WCF) habla sobre WCF vs. Remoting en esta publicación del foro . Para resumir la publicación, termina recomendando WCF sobre Remoting.
No estoy seguro de si .NET 4.0 utiliza la comunicación remota internamente, pero podría intentar enviarle la pregunta a Clemens ... Estoy seguro de que conoce la respuesta.
fuente
Creo que ahora (2015) está bastante claro incluso para dominios de aplicaciones cruzadas: https://msdn.microsoft.com/en-us/library/vstudio/ms180984(v=vs.100).aspx
Entonces WCF también debería usarse para dominios de aplicaciones cruzadas.
fuente