Todo mundo está dizendo como o .NET Remoting está sendo substituído pelo WCF, mas estou me perguntando o quão preciso isso é. Eu não vi nenhuma palavra oficial que o Remoting está sendo preterido, e parece-me que certamente existem cenários onde o Remoting faz mais sentido do que o WCF. Nenhum dos objetos ou métodos relacionados ao Remoting se tornou obsoleto, mesmo na versão 4.0 do framework. Também é meu entendimento que System.AddIn nas estruturas 3.5 e 4.0 usam Remoting.
Alguém tem alguma palavra oficial em contrário?
No artigo, Escolhendo opções de comunicação em .NET (para 3.0, já que é a versão mais recente desse artigo), ele afirma:
8 Comunicações de domínio entre aplicativos
Se você precisar oferecer suporte à comunicação entre objetos em diferentes domínios de aplicativo dentro do mesmo processo, deverá usar o .NET Remoting.
Agora, isso, é claro, não é preciso, já que o WCF pode certamente ser usado para cruzar os limites do appdomain, mas está dando a recomendação oficial para esse cenário?
Atualização: Enviei a Clemens Vasters (que fazia parte da equipe proprietária do Remoting e WCF) esta pergunta:
Clemens, entendo que você está na equipe que controla o remoting e o wcf, e tenho algumas perguntas que acho que devo responder à fonte.
Em primeiro lugar, tenho uma pergunta sobre se a comunicação remota está indo embora. Especificamente, temos um aplicativo bastante grande que usa remoting extensivamente para comunicação entre appdomain em processo, e eu queria saber se esse uso de remoting é considerado "legado". Em caso afirmativo, AppDomain.CreateInstance e amigos serão substituídos por outra coisa?
Esta é a resposta dele:
Remoting é parte do .Net Framework e, como tal, não vai desaparecer. COM está no Windows desde o Windows NT 3.5 / Windows 95 e não foi embora, e também não vejo isso em breve.
Dito isso, há um investimento mínimo de desenvolvimento para o Remoting. WCF é o sucessor do Remoting e suplanta COM / DCOM para código gerenciado.
Para comunicação em processo, entre appdomain O Remoting é a forma nativa de comunicação do CLR. Se você estiver vendo problemas de desempenho bombeando grandes quantidades de dados ou muitas mensagens em pouco tempo, você deve dar uma olhada séria no WCF e no NetNamedPipeBinding.