Усі говорять, як .NET Remoting замінюється WCF, але мені цікаво, наскільки це точно. Я не бачив жодного офіційного слова про те, що Remoting припиняє свою діяльність, і мені здається, є, звичайно, сценарії, коли Remoting має більше сенсу, ніж WCF. Жоден з об’єктів або методів, пов’язаних із віддаленням, не застарів, навіть у версії 4.0 фреймворку. Я також розумію, що System.AddIn у фреймворках 3.5 та 4.0 використовує Remoting.
Хтось має якесь офіційне слово про протилежне?
У статті Вибір параметрів спілкування у .NET (для 3.0, оскільки це остання версія цієї статті) зазначено:
8 Зв’язок між доменами між додатками
Якщо вам потрібно підтримувати зв'язок між об'єктами в різних доменах додатків в рамках одного процесу, ви повинні використовувати віддалене управління .NET.
Це, звичайно, не точно, оскільки WCF, безсумнівно, може бути використаний для перетину меж домену додатків, але чи дає це офіційну рекомендацію щодо цього сценарію?
Оновлення: Я надіслав Клеменсу Вастерсу (який був членом команди, що володіє Remoting та WCF) наступне запитання:
Клеменс, я розумію, що ти в команді, яка володіє і віддаленням, і wcf, і у мене є кілька питань, на які, я вважаю, мені потрібно звернутися до джерела.
По-перше, у мене є питання про те, чи не відключається віддалення. Зокрема, у нас є досить великий додаток, який широко використовує віддалене керування для взаємодії між додатками в процесі роботи, і мені було цікаво, чи вважається таке використання віддаленого доступу "спадщиною". Якщо так, чи буде AppDomain.CreateInstance та друзів замінено чимось іншим?
Це його відповідь:
Віддалення є частиною .Net Framework, і як таке воно не зникає. COM був у Windows з Windows NT 3.5 / Windows 95 і нікуди не зник, і я теж не бачу, що це скоро зникне.
Тим не менш, у Remoting є дуже мінімальні інвестиції у розвиток. WCF є наступником Remoting і замінює COM / DCOM для керованого коду.
Віддалене віддалене спілкування в режимі взаємодії між доменами - це рідний спосіб спілкування CLR. Якщо ви стикаєтесь із проблемами продуктивності, які за короткий час перекачують більший обсяг даних або дуже багато повідомлень, вам слід серйозно поглянути на WCF та NetNamedPipeBinding.