it-swarm-ko.tech

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

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

81
mrbradleyt

WCF가 최선의 선택입니다. 여러 가지 다른 전송 메커니즘 ( 포함명명 된파이프 )를 지원하며 구성을 완전히 제어 할 수 있습니다. WCF를 살펴 보는 것이 좋습니다.

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

블로그의 인용문 :

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

WCF의 MSDN 섹션

58
Eric Schoonover

단일 시스템 인 경우 Named Pipes는 더 나은 성능을 제공하며 WCF뿐만 아니라 원격 인프라 로 구현할 수 있습니다. 또는 System.IO.Pipes 를 직접 사용할 수도 있습니다.

15
Mark Cidade

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

명명 된 파이프는 확실히 더 효율적이지만 최소한 기본 응용 프로그램 프로토콜을 설계해야하는데 이는 불가능할 수도 있습니다. 원격을 사용하면 원격 메소드를 쉽게 호출 할 수 있습니다.

5
Dario Solera

.NET Framework 3.0 이상을 사용하는 경우 WCF를 사용합니다. WCF를 사용하면 퍼포먼스/인터롭 등의 트레이드 오프에 따라 다른 바인딩을 사용할 수 있습니다. 당신이 필요합니다.

성능이 중요하지 않고 다른 웹 서비스 기술과의 상호 운용이 필요한 경우 WS-HTTP 바인딩을 사용하려고합니다. 귀하의 경우, net-tcp 바인딩 또는 named-pipe 바인딩과 함께 WCF를 사용할 수 있습니다. 작동해야합니다.

개인적으로 WCF 접근 방식은 계약 중심 서비스를 수행하고 객체가 아닌 메시지에 초점을 맞출 수 있으므로 더 깨끗합니다. 많은 의미 정보가 손실되거나 명확하지 않기 때문에 와이어를 통해 객체를 보내는 것을 좋아하지 않습니다. WCF를 사용하는 것처럼 메시지를 보내는 것만으로도 통신과 단일 노드로 구성된 클래스/인프라 간의 문제를 쉽게 구분할 수 있습니다.

3
Jason Olson

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

3
icelava

WCF는 또한 유연성을 제공합니다. 일부 구성 (바인딩)을 변경하면 동일한 컴퓨터에서 IPC 대신) 다른 컴퓨터에서 동일한 서비스를 사용할 수 있으므로 코드가 유연하게 유지됩니다.

2
Vikram I Code

.Net remoting은 그 자체로는 프로토콜이 아닙니다. SOAP, named-pipes 등 사용할 프로토 타입을 선택할 수 있습니다.

1
Joel Coehoorn

.net remoting은 내부 프로세스 통신을 위해 .net에 내장되어 있습니다. 당신이 그것을 사용한다면, 그들은 계속해서 지원하고 향후 버전에서 향상시킬 것입니다. 명명 된 파이프는 향후 버전의 .net에서 향상된 기능을 보장하지 않습니다.

0
kemiller2002