Я не знаю ни одного официального руководства, которое называет преемника для DCOM, но .NET имеет две платформы, которые могут заменить использование DCOM. Это WCF и .NET Remoting.
WCF может использоваться в качестве замены для всех функций транспорта, предоставляемых DCOM, и других. Если вы находитесь в ситуации, когда вы не можете использовать .NET 3.0 или более новые версии; у вас есть только удаленное взаимодействие .NET. Обе платформы в .NET позволяют вам выполнять вызовы и передавать управление выполнением хостам в других потоках, процессах и компьютерах. Удаленное взаимодействие, вероятно, должно было стать заменой DCOM, и оно также может обрабатывать почти все транспортные функции, но адаптация не была такой большой.
В целом, большинство людей предпочитают WCF сейчас, потому что все четко определено и есть множество функций для управления аспектами вызовов, совершаемых через WCF. Регулярное удаленное взаимодействие .NET в настоящее время несколько не используется, потому что вам нужно будет управлять информацией о типах данных по обеим сторонам провода, что не является значительным улучшением нагрузки по сравнению с DCOM. Кроме того, он не имеет транспорта с разделяемой памятью, поэтому связь между потоками и процессами настраивается только с использованием связи на основе сокетов и зависит от ограничений производительности сокетов петли.
Что касается общих сценариев, которые вы упоминаете, почти любое приложение может быть доступно для подключения к другим приложениям через WCF или Remoting. Большинство сложных вопросов связано с взаимодействием с размещенными компонентами в веб-приложениях. Как правило, это обычно не делается - звонки исходят от них, но редко принимаются вне веб-активности http / https. Управление безопасностью и идентификацией также может быть сложным, но значительно улучшено по сравнению с настройкой на основе конфигурации DCOM.
В целом, как WCF, так и .NET Remoting значительно лучше, чем DCOM. Их проще в настройке и обслуживании, и они не испытывают тех же трудностей при регистрации, что и компоненты COM для использования в DCOM. Кроме того, вы получаете внутренние преимущества, такие как естественные исключения библиотек для условий отказа в .NET; в то время как в DCOM вам придется беспокоиться о корректной обработке неудачной доставки и тайм-аутов в коде приложения. Одно это должно значительно сократить объем кода, который вы должны написать для обработки таких условий, и с помощью асинхронных вызовов вы также можете отказаться от длительной операции, когда захотите. Это довольно сложно сделать хорошо в DCOM.