¿El .NET Remoting realmente está en desuso?

Todos dicen cómo .NET Remoting está siendo reemplazado por WCF, pero me pregunto cuán exacto es eso. No he visto ninguna palabra oficial de que Remoting se esté desaprobando, y me parece que hay ciertamente escenarios en los que el Remoting tiene más sentido que WCF. Ninguno de los objetos o métodos relacionados con Remoting se ha desaprobado, incluso en la versión 4.0 del marco. También entiendo que System.AddIn en los marcos 3.5 y 4.0 usa Remoting.

¿Alguien tiene alguna palabra oficial de lo contrario?

En el artículo, Elección de opciones de comunicación en .NET (para 3.0, ya que 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 usar .NET remoto.

Ahora bien, eso, por supuesto, no es exacto, ya que WCF ciertamente puede usarse para cruzar los límites del dominio de aplicación, pero ¿está dando la recomendación oficial para ese escenario?

Actualización: Envié a Clemens Vasters (que estaba en el equipo que posee Remoting y WCF) esta pregunta:

Clemens, entiendo que perteneces al equipo que posee tanto remoting y wcf, y tengo un par de preguntas que creo que necesito ir a la fuente.

Primero, tengo una pregunta acerca de si la comunicación remota se va o no. Específicamente, tenemos una aplicación bastante grande que utiliza la comunicación remota de forma extensiva para la comunicación en tiempo real entre procesos, 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 otra cosa?

Esta es su respuesta:

Remoting 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 se ha ido y tampoco creo que vaya a desaparecer pronto.

Dicho esto, hay una inversión de desarrollo muy mínima en Remoting. WCF es el sucesor de Remoting y suplanta COM / DCOM para código administrado.

Para comunicación en proceso entre aplicaciones, comunicación remota es la forma nativa de comunicación del CLR. Si observa problemas de rendimiento al bombear grandes cantidades de datos o muchos mensajes en poco tiempo, debería considerar seriamente WCF y NetNamedPipeBinding.

Llamarlo una tecnología heredada es una descripción más precisa.

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

Este tema es específico de una tecnología heredada que se conserva para compatibilidad con versiones anteriores con aplicaciones existentes y no se recomienda para nuevos desarrollos. Las aplicaciones distribuidas ahora deben desarrollarse utilizando Windows Communication Foundation (WCF).

Actualización: WCF no distingue entre inter / intra / process / inter / intra-appdomain. Si está utilizando una comunicación de máquina única en WCF, utiliza conductos con nombre; su uso debería proporcionar un buen rendimiento en prácticamente todos los escenarios realistas.

Para una comparación de rendimiento de varias tecnologías de comunicación distribuidas, consulte aquí .

Sí. Remoting está en desuso … y es oficial de Microsoft. Aquí está el enlace:

.NET Remoting

La primera línea del artículo dice en negrita:

Este tema es específico de una tecnología heredada que se conserva para compatibilidad con versiones anteriores con aplicaciones existentes y no se recomienda para nuevos desarrollos. Las aplicaciones distribuidas ahora deben desarrollarse utilizando Windows Communication Foundation (WCF).

Pensé que la verborrea estaba ‘obsoleta’, pero aparentemente se refieren a ella como ‘legado’

Clemens Vasters, el líder técnico del 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 usa la comunicación interna de manera interna, pero podrías intentar enviar la pregunta a Clemens … Estoy seguro de que sabe la respuesta.

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

Remoting Cross AppDomains Este tema es específico de una tecnología heredada que se conserva para compatibilidad con versiones anteriores con aplicaciones existentes y no se recomienda para nuevos desarrollos. Las aplicaciones distribuidas ahora deben desarrollarse utilizando Windows Communication Foundation (WCF).

Entonces WCF debería usarse también para dominios de aplicación cruzada.