.NET 프로세스 간 통신을위한 최선의 선택은 무엇입니까? [닫은]


82

내 컴퓨터에서 실행중인 프로세스와 통신하려면 명명 된 파이프 또는 .NET Remoting을 사용해야합니까?


1
와우, 그냥 기본적으로 같은 질문을했습니다 ... stackoverflow.com/questions/84860/…
Kris Erickson

답변:


58

WCF가 최선의 선택입니다. 또한 지원 서로 다른 전송 메커니즘의 개수 ( 포함 명명 파이프 )와 완전히 구동 구성 될 수있다. WCF를 살펴 보는 것이 좋습니다.

다음은 WCF와 Remoting 성능 비교 를 수행하는 블로그입니다 .

블로그의 인용문 :

WCF와 .NET Remoting은 성능면에서 거의 비슷합니다. 차이가 너무 작아서 (클라이언트 대기 시간 측정) 어느 것이 더 빠른지는 중요하지 않습니다. WCF는 .NET Remoting보다 훨씬 더 나은 서버 처리량을 제공합니다. 완전히 새로운 프로젝트를 시작하려면 WCF를 선택했습니다. 어쨌든 WCF는 Remoting보다 훨씬 더 많은 기능을 수행하며 이러한 모든 기능을 좋아합니다.

WCF 용 MSDN 섹션


1
원격에 찬성하는 추가 증거. Microsoft Remoting / WCF 팀의 누군가 : "Remoting에 들어가는 개발 투자는 매우 적습니다. WCF는 Remoting의 후속 제품입니다." 여기에서 stackoverflow.com/questions/1294494/…
MarkJ


5

프로세스 간 통신을 의미한다면 지금까지 아무런 문제없이 .NET Remoting을 사용했습니다. 두 프로세스가 동일한 시스템에 있으면 통신이 매우 빠릅니다.

명명 된 파이프는 확실히 더 효율적이지만 적어도 기본 응용 프로그램 프로토콜의 설계가 필요하며 이는 실행 가능하지 않을 수 있습니다. Remoting을 사용하면 원격 메서드를 쉽게 호출 할 수 있습니다.


3
명명 된 파이프를 통한 WCF도이를 허용합니다. 그리고 두 프로세스 모두에서 동일한 계약 어셈블리를 사용할 수 있습니다.
Kent Boogaart

3

.NET Framework 2.0의 원격 기능 은 동일한 컴퓨터 내에서 프로세스 간 통신을위한 IPC 채널 을 제공합니다 .


3

.NET Framework 3.0 이상을 사용하는 경우 WCF를 사용합니다. WCF를 사용하면 성능 / 상호 운용성 등의 균형에 따라 다른 바인딩을 사용할 수 있습니다. 당신이 필요합니다.

성능이 중요하지 않고 다른 웹 서비스 기술과의 상호 운용이 필요한 경우 WS-HTTP 바인딩을 사용하는 것이 좋습니다. 귀하의 경우에는 net-tcp 바인딩 또는 명명 된 파이프 바인딩과 함께 WCF를 사용할 수 있습니다. 둘 중 하나가 작동합니다.

내 개인적인 견해는 계약 기반 서비스를 수행하고 개체가 아닌 메시지에 집중할 수 있기 때문에 WCF 접근 방식이 더 깨끗하다는 것입니다 (여기서는 WCF / .NET Remoting의 기본 프로그래밍 모델을 기반으로 일반화합니다). 많은 의미 정보가 손실되거나 명확하지 않기 때문에 와이어를 통해 객체를 보내는 것을 좋아하지 않습니다. WCF를 사용하는 것처럼 메시지를 보내는 것만으로도 통신과 단일 노드가 구성되는 클래스 / 인프라 간의 문제를 쉽게 분리 할 수 ​​있습니다.



1

.Net Remoting은 그 자체로 프로토콜이 아닙니다. 사용할 프로토콜 (SOAP, 명명 된 파이프 등)을 선택할 수 있습니다.


0

.net 원격은 내부 프로세스 통신을 수행하기 위해 .net에 내장되어 있습니다. 이를 사용하면 향후 버전에서 계속 지원하고 향상시킬 수 있습니다. 명명 된 파이프는 .net의 향후 버전에서 향상 될 것이라는 약속을주지 않습니다.


2
원격 기능을 향상시킬 가능성은 거의 없습니다. Remoting / WCF 팀의 누군가 : "Remoting에 들어가는 개발 투자는 매우 적습니다. WCF는 Remoting의 후속 제품입니다." 여기에서 stackoverflow.com/questions/1294494/…
MarkJ
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.