developer tip

.NET Remoting은 정말 더 이상 사용되지 않습니까?

optionbox 2020. 9. 4. 07:10
반응형

.NET Remoting은 정말 더 이상 사용되지 않습니까?


모두가 .NET Remoting이 WCF로 대체되는 방식을 말하고 있지만 그것이 얼마나 정확한지 궁금합니다. Remoting이 더 이상 사용되지 않는다는 공식적인 단어를 본 적이 없으며 Remoting이 WCF보다 더 의미있는 시나리오가있는 것 같습니다. Remoting 관련 개체 또는 메서드는 프레임 워크 버전 4.0에서도 더 이상 사용되지 않습니다. 3.5 및 4.0 프레임 워크의 System.AddIn이 Remoting을 사용한다는 것도 저의 이해입니다.

반대로 공식적인 말이있는 사람이 있습니까?

기사에서는 .NET에서 통신 옵션 선택 (즉,이 문서의 최신 버전의로, 3.0)를, 그 상태 :

8 교차 애플리케이션 도메인 통신

동일한 프로세스 내에서 서로 다른 응용 프로그램 도메인에있는 개체 간의 통신을 지원해야하는 경우 .NET Remoting을 사용해야합니다.

물론 WCF를 사용하여 appdomain 경계를 넘을 수 있기 때문에 물론 정확하지는 않지만 해당 시나리오에 대한 공식 권장 사항을 제공합니까?

업데이트 : Clemens Vasters (Remoting 및 WCF를 소유 한 팀)에게이 질문을 보냈습니다.

클레멘스, 당신이 remoting과 wcf를 모두 소유하고있는 팀이라는 걸 이해하고, 소스로 가야 할 몇 가지 질문이 있습니다.

먼저 원격 기능이 사라지는 지 여부에 대한 질문이 있습니다. 특히, 프로세스 내 교차 앱 도메인 통신을 위해 원격을 광범위하게 사용하는 다소 큰 애플리케이션이 있는데,이 원격 사용이 "레거시"로 간주되는지 궁금합니다. 그렇다면 AppDomain.CreateInstance 및 친구가 다른 것으로 대체됩니까?

이것이 그의 대답입니다.

Remoting은 .Net Framework의 일부이므로 사라지지 않습니다. COM은 Windows NT 3.5 / Windows 95 이후로 Windows에 있었으며 사라지지 않았으며 곧 사라지지 않을 것입니다.

즉, Remoting에 들어가는 개발 투자는 매우 적습니다. WCF는 Remoting의 후속 제품으로 COM / DCOM을 관리 코드로 대체합니다.

In-process의 경우 앱 도메인 간 통신 원격은 CLR의 기본 통신 방법입니다. 단시간에 많은 양의 데이터 또는 매우 많은 메시지를 펌핑하는 성능 문제가 발생하는 경우 WCF 및 NetNamedPipeBinding을주의 깊게 살펴 봐야합니다.


이를 레거시 기술이라고 부르는 것이 더 정확한 설명입니다.

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

이 항목은 기존 응용 프로그램과의 역 호환성을 위해 유지되는 레거시 기술에 한정되며 새로운 개발에는 권장되지 않습니다. 이제 WCF (Windows Communication Foundation)를 사용하여 분산 응용 프로그램을 개발해야합니다.

업데이트 : WCF는 inter / intra / process / inter / intra-appdomain을 구분하지 않습니다. WCF에서 단일 컴퓨터 통신을 사용하는 경우 명명 된 파이프를 사용합니다.이를 사용하면 거의 모든 실제 시나리오에서 좋은 성능을 얻을 수 있습니다.

다양한 분산 통신 기술의 성능 비교는 여기를 참조하십시오 .


예. Remoting은 더 이상 사용되지 않으며 Microsoft에서 공식적으로 제공합니다. 링크는 다음과 같습니다.

.NET Remoting

기사의 첫 번째 줄은 굵게 표시되어 있습니다.

이 항목은 기존 응용 프로그램과의 역 호환성을 위해 유지되는 레거시 기술에 한정되며 새로운 개발에는 권장되지 않습니다. 이제 WCF (Windows Communication Foundation)를 사용하여 분산 응용 프로그램을 개발해야합니다.

나는 말이 '사용되지 않음'이라고 생각했지만 분명히 '레거시'라고 언급했습니다.


.NET Core로 마이그레이션하려면 어쨌든 Remoting에 대한 다른 솔루션을 찾아야합니다.

.NET Remoting은 문제가있는 아키텍처로 확인되었습니다. 더 이상 지원되지 않는 교차 AppDomain 통신에 사용됩니다. 또한 Remoting에는 유지 관리 비용이 많이 드는 런타임 지원이 필요합니다. 이러한 이유로 .NET Remoting은 .NET Core에서 지원되지 않으며 향후 지원을 추가 할 계획이 없습니다.

출처 : https://docs.microsoft.com/en-us/dotnet/core/porting/libraries#remoting


Microsoft .NET Service Bus의 기술 책임자 인 Clemens Vasters (즉, Remoting과 WCF 모두를 의미) 가이 포럼 게시물 에서 WCF와 Remoting에 대해 이야기 합니다. 게시물을 요약하기 위해 그는 Remoting보다 WCF를 권장합니다.

.NET 4.0이 내부적으로 원격 기능을 사용하는지 확실하지 않지만 Clemens에게 질문을 보낼 수 있습니다. 그가 답을 알고 있다고 확신합니다.


이제 (2015) 교차 응용 프로그램 도메인에서도 매우 명확하다고 생각합니다. https://msdn.microsoft.com/en-us/library/vstudio/ms180984(v=vs.100).aspx

원격 AppDomains 간이 항목은 기존 응용 프로그램과의 이전 버전과의 호환성을 위해 유지되는 레거시 기술에 한정되며 새로운 개발에는 권장되지 않습니다. 이제 WCF (Windows Communication Foundation)를 사용하여 분산 응용 프로그램을 개발해야합니다.

그런 다음 교차 응용 프로그램 도메인에도 WCF를 사용해야합니다.

참고 URL : https://stackoverflow.com/questions/1294494/is-net-remoting-really-deprecated

반응형