Является ли .NET Remoting действительно устаревшим?

Все говорят, что .NET Remoting заменяется WCF, но мне интересно, насколько это точно. Я не видел официального слова о том, что Remoting устарел, и мне кажется, что есть сценарии, где Remoting имеет больше смысла, чем WCF. Ни один из объектов или методов, связанных с Remoting, не устарел, даже в версии 4.0 фреймворка. Также я понимаю, что System.AddIn в фреймворках 3.5 и 4.0 использует Remoting.

Есть ли у кого-нибудь официальное слово об обратном?

В статье Выбор параметров связи в .NET (для версии 3.0, как и последняя версия этой статьи), она заявляет:

8 Передача доменных имен между приложениями

Если вам необходимо поддерживать связь между объектами в разных доменах приложения в рамках одного и того же процесса, вы должны использовать удаленную передачу .NET.

Теперь это, конечно, неточно, поскольку WCF, безусловно, может использоваться для пересечения границ домена, но дает ли он официальную рекомендацию для этого сценария?

Обновление: я отправил Clemens Vasters (который был в команде, которая владеет Remoting и WCF), на этот вопрос:

Клеменс, я понимаю, что вы в команде, которая владеет как удаленными, так и wcf, и у меня есть несколько вопросов, которые, я считаю, мне нужно пойти в источник.

Во-первых, у меня вопрос о том, уходит ли дистанцирование. В частности, у нас есть довольно большое приложение, которое широко использует удаленно для межпроцессорной коммуникации внутри процесса, и мне было интересно, считается ли это использование удаленных объектов "наследием". Если да, будет ли AppDomain.CreateInstance и друзей заменены чем-то еще?

Это его ответ:

Remoting является частью .NET Framework и, как таковой, он не уходит. COM был в Windows с Windows NT 3.5/Windows 95 и не ушел, и я тоже не вижу этого в ближайшее время.

Тем не менее, очень мало инвестиций в развитие происходит в Remoting. WCF является преемником Remoting и вытесняет COM/DCOM для управляемого кода.

В процессе обработки, междоменное общение. Remoting - это собственный способ общения на CLR. Если вы видите проблемы с производительностью, которые накапливают большие объемы данных или очень много сообщений за короткое время, вы должны серьезно взглянуть на WCF и NetNamedPipeBinding.

Ответ 1

Признание его устаревшей технологией является более точным описанием.

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

Этот раздел посвящен наследию технологии, которая сохраняется для обратная совместимость с существующими приложений и не рекомендуется для нового развития. распределенный приложения должны быть разработаны используя связь Windows Фонд (WCF).

Обновление: WCF не проводит различия между inter/intra/process/inter/intra-appdomain. Если вы используете однокомпонентную связь в WCF, вы используете именованные каналы - использование должно обеспечивать хорошую производительность практически во всех реалистичных сценариях.

Для сравнения производительности различных технологий распределенной связи см. здесь.

Ответ 2

Да. Remoting устарел... и он официально от Microsoft. Здесь ссылка:

.NET Remoting

Первая строка в статье выделена жирным шрифтом:

Этот раздел посвящен устаревшей технологии, которая сохраняется для обратной совместимости с существующими приложениями и не является рекомендуется для новой разработки. Распределенные приложения должны теперь разрабатываться с использованием Windows Communication Foundation (WCF).

Я думал, что словосочетание "устарело", но, по-видимому, они называют его "наследием"

Ответ 3

Clemens Vasters, технический ведущий для Microsoft.NET Service Bus (что означает как Remoting, так и WCF), говорит о WCF и Remoting в this форума. Чтобы обобщить сообщение, он заканчивает рекомендацию WCF о Remoting.

Я не уверен, что .NET 4.0 использует удаленный доступ внутри, но вы можете попробовать отправить Клеменсу вопрос... Я уверен, что он знает ответ.

Ответ 4

Я думаю, что сейчас (2015) это совершенно ясно даже для кросс-приложения домены: https://msdn.microsoft.com/en-us/library/vstudio/ms180984(v=vs.100).aspx

Remoting Cross AppDomainsЭта тема относится к наследию технологии, которая сохраняется для обратной совместимости с существующими приложений и не рекомендуется для новой разработки. распределенный приложения теперь должны быть разработаны с использованием Windows Communication Фонд (WCF).

Затем WCF также должен использоваться для доменов с перекрестными приложениями.