Все говорят, что .NET Remoting заменяется WCF, но мне интересно, насколько это точно. Я не встречал официального сообщения о том, что удаленное взаимодействие устарело, и мне кажется, что существуют сценарии, в которых удаленное взаимодействие имеет больше смысла, чем WCF. Ни один из объектов или методов, связанных с удаленным взаимодействием, не объявлен устаревшим даже в версии 4.0 платформы. Я также понимаю, что System.AddIn в фреймворках 3.5 и 4.0 использует удаленное взаимодействие.
Есть ли у кого-нибудь официальное заявление об обратном?
В статье Выбор параметров связи в .NET (для 3.0, поскольку это последняя версия этой статьи) говорится:
8 Обмен данными между приложениями
Если вам нужно поддерживать связь между объектами в разных доменах приложений в рамках одного процесса, вы должны использовать удаленное взаимодействие .NET.
Конечно, это неверно, поскольку WCF, безусловно, можно использовать для пересечения границ доменов приложений, но дает ли он официальную рекомендацию для этого сценария?
Обновление: я отправил Клеменсу Вастерсу (который был в команде, владеющей удаленным взаимодействием и WCF) этот вопрос:
Клеменс, я понимаю, что вы входите в команду, которая владеет как удаленным взаимодействием, так и wcf, и у меня есть пара вопросов, которые, как мне кажется, мне нужно задать источнику.
Во-первых, у меня вопрос о том, исчезнет ли удаленное взаимодействие. В частности, у нас есть довольно большое приложение, которое широко использует удаленное взаимодействие для внутрипроцессного взаимодействия между доменами приложений, и мне было интересно, считается ли такое использование удаленного взаимодействия «устаревшим». Если да, будут ли заменены AppDomain.CreateInstance и друзья на что-то другое?
Это его ответ:
Удаленное взаимодействие является частью .Net Framework и никуда не денется. COM присутствует в Windows со времен Windows NT 3.5 / Windows 95 и никуда не делся, и я не думаю, что он исчезнет в ближайшее время.
Тем не менее, в Remoting вкладываются минимальные инвестиции. WCF является преемником удаленного взаимодействия и заменяет COM / DCOM управляемым кодом.
Для внутрипроцессного взаимодействия между доменами удаленное взаимодействие - это собственный способ взаимодействия среды CLR. Если вы наблюдаете проблемы с производительностью при перекачивании больших объемов данных или очень большого количества сообщений за короткое время, вам следует серьезно взглянуть на WCF и NetNamedPipeBinding.