2009-04-21 6 views
0

.NET에서 클라이언트와 서버 간의 메시징을위한 기본적인 "배관 작업"을 제공하는 오픈 소스 프로젝트 또는 프레임 워크가 있습니까? 마치 내가 본질적으로 같은 것을 반복해서 쓰는 그런 것들 중 하나 인 것처럼 보입니다. 나는 그저 조금 더 추상적으로 자신을 추상화하고 내 앱의 세부 사항을 다루고 싶습니다. 을 쓰는 대신에 TCP를 통한 메시징을위한 절반 정도의 메커니즘.TCP 메시징 용 .NET 프로젝트

잘하면 WCF보다 작거나 간단한 것입니다. 나는 모든 문제를 해결하려고하지 않는 가벼운 것에 정말로 관심이있다.

+0

hmm은 틈새 시장과 비슷합니다 ... – Mark

+0

WCF가 "모든 문제를 해결"하려고하는 한도 내에서 문제가 해결되지 않는다고 확신합니까? net.tcp 바인딩과 바이너리 직렬화를 사용해 보셨습니까? –

+1

WCF는 참으로 짐승입니다. 그 말은 거기에 많은 입문 자습서가 있습니다. 많은 사람들이 시도하고있는 것과 같은 간단한 작업에 중점을 둡니다. 이것은 실제로 WCF에서 어려운 것은 아닙니다. 멋진 구성이나 작업을 원하지 않는 한 서버/클라이언트 통신에는 특정 특성이 있습니다. – Noldorin

답변

3

통합 또는 수동 코드에서 활성화, 스레딩 모델, 버퍼, 프레임, 보안 및 직렬화와 관련된 문제가 하나 있습니다. 그것은 어떤 언어 나 환경에서도 UDP/TCP 나 config/attribute의 전형적인 동작입니다. 그리고 I/O 작업에서의 광대 한 가능성의 단순성을 서버 나 클라이언트 요구에 따라 조정할 필요가 있습니다.

WCF가 .NET Remoting (원래의 iocp 코드보다 훨씬 느린 관리되는 소켓 코드보다 느림)과 비교하여 너무 부풀어 오르고 속도가 훨씬 느리다는 것에 전적으로 동의합니다. 그러나 이것은 추가 작업이며 위의 코드를 일반 generics 라이브러리 (.NET에서 더 어렵게 만드는 더 강력한 템플릿이 아닌 이상한 방식으로 디자인해야하는 경우 + 인터페이스를 사용하는 것이 중요합니다.)보다 위의 코드를 잘 수행 한 것보다 남자 - 년 몇 가지 정교한 배관과 라 메시지 대기열 (그것은 불가능한 일은 아니지만 imho과 회고는 '일반적으로'할 가치가 절대 ..).

대안은 MSMQ입니다. MS는 점점 더 많은 소프트웨어를 베팅하고 있습니다. 오픈 소스 비트가 절반 이상을 차지하고있어 완전히 필요한 모델을 충족시키지 못합니다. Tibcos, ActiveMQs, 당신이 그것을 이름. 더 낮은 수준으로 내려가더라도, C++ boost :: asio로 간주되는 것은 물론, 모든 것을 고려한 것처럼 모든 것이 최상으로 간주 되기는하지만, 모든 것이 최선입니다. 그리고 그것은 꽤 주목할만한 디자인이므로 시간을 낭비 할 수있는 운동을주의해야합니다.

.NET에서 나는 '오늘'을 추진하고있는 50 스레드 서비스를 채택 할 것입니다. '다시 한 번 유사한 코드'를 사용하고 새로운 개념의 I/O 라이브러리 또는 프레임 워크가 5 년마다 수행 할 때와 같이 다시 나타날 때 도구 모음에 라인을 설치하는 유사한 개념을 찾습니다.

3

WCF에는 많은 너트와 볼트가 내장되어 있습니다. 실제로 실제로 구현하지는 않았지만.

0

Indy.net 프로젝트를 사용해 볼 수도 있습니다.

원래 Delphi로 작성되었지만 이것이 수행해야하는 작업입니다.