Wszyscy mówią, w jaki sposób .NET Remoting jest zastępowany przez WCF, ale zastanawiam się, jak dokładne jest to. Nie widziałem żadnego oficjalnego słowa, że Remoting jest przestarzały i wydaje mi się, że z pewnością istnieją scenariusze, w których Remoting ma więcej sensu niż WCF. Żaden z obiektów ani metod związanych z obsługą zdalną nie został uznany za przestarzały, nawet w wersji 4.0 platformy. Rozumiem również, że System.AddIn we frameworkach 3.5 i 4.0 używa Remotingu.
Czy ktoś ma jakieś oficjalne słowo, że jest inaczej?
W artykule Wybieranie opcji komunikacji w .NET (dla wersji 3.0, ponieważ jest to najnowsza wersja tego artykułu), stwierdza:
8 Komunikacja domeny między aplikacjami
Jeśli potrzebujesz obsługiwać komunikację między obiektami w różnych domenach aplikacji w ramach tego samego procesu, musisz korzystać z usług zdalnych .NET.
To oczywiście nie jest dokładne, ponieważ WCF z pewnością można wykorzystać do przekraczania granic domeny aplikacji, ale czy daje oficjalną rekomendację dla tego scenariusza?
Aktualizacja: Wysłałem Clemensowi Vastersowi (który był w zespole, który jest właścicielem Remotingu i WCF) to pytanie:
Clemens, rozumiem, że należysz do zespołu, który jest właścicielem zarówno usług zdalnych, jak i WCF, i mam kilka pytań, które moim zdaniem powinny znaleźć się w źródle.
Po pierwsze, mam pytanie, czy zdalny dostęp odchodzi. Konkretnie, mamy dość dużą aplikację, która intensywnie wykorzystuje usługi zdalne do komunikacji między domenami w trakcie procesu, i zastanawiałem się, czy to użycie zdalnej komunikacji jest uważane za „starsze”. Jeśli tak, czy AppDomain.CreateInstance i przyjaciele zostaną zastąpieni czymś innym?
Oto jego odpowiedź:
Usługi zdalne są częścią .Net Framework i jako takie nie znikają. COM był w systemie Windows od czasu Windows NT 3.5 / Windows 95 i nie zniknął i nie sądzę, żeby w najbliższym czasie zniknął.
To powiedziawszy, inwestycje w Remoting są bardzo minimalne. WCF jest następcą komunikacji zdalnej i zastępuje model COM / DCOM dla kodu zarządzanego.
W przypadku komunikacji między aplikacjami w procesie Komunikacja zdalna to natywny sposób komunikacji środowiska CLR. Jeśli widzisz problemy z wydajnością pompowania większych ilości danych lub bardzo wielu komunikatów w krótkim czasie, powinieneś poważnie przyjrzeć się WCF i NetNamedPipeBinding.