2009-05-21 5 views
3

나는 무엇보다 조언을 많이했습니다..Net Remoting .Net Remoting을 사용하지 않고?

나는 다음과 같은 예를 가지고 :

Appication1.exe 을 - myList에

Application2.exe 객체 가지고 -으로 myList에 액세스하고이를 응용 프로그램 2에서 생성 된 것처럼 객체와 상호 작용해야합니다.

.NET Remoting (예 : 2.0) 또는 WCF 또는 다른 기술 스택을 사용해야합니까? 어떤 프레임 워크가 이것을 지원할 수 있습니까? 장점/단점은 무엇입니까?

더 많은 '도우미'응용 프로그램이므로 개발 팀 외부의 누구도 사용하지 않습니다.

답변

0

나는 resonable choice가 .NET 리모팅을 사용하는 것이라고 생각합니다. Application2에서 웹 서비스를 시작해야 Application1에서 대화 할 수 있습니다. 유일한 단점은 "MyList"에 MarshalByRefObject를 표시해야한다는 것입니다. MSDN은 Remoting이 이제 WCF를 선호하는 legecy (.NET 3.0)라고 말합니다. 그러나 내가 아는 한, Remoting은 앱 간 통신을위한 유일한 게임입니다.

+0

"MyList"도 Serializable이 아니어야합니까? 아니면 그것이 살고있는 클래스/객체? – IAbstract

1

말하기 어렵습니다. WCF는 확실히 가능합니다. App2 로의 데이터 전송을 지원하려면 (밀어 넣기 또는 끌어 오기 모델에서) 두 App을 모두 제어하고 App1을 변경해야합니다. 온 디맨드 데이터 교환이 반드시 필요한 것은 아니라면 데이터베이스를 데이터 전송 방법으로 간주 할 수 있습니다. App1에서 일부 데이터를 데이터베이스에 이미 쓰는 경우 그런 다음 App2가 필요로하는 데이터를 가져올 수 있습니다. 교환이 자주 발생하지 않는다면 파일 시스템을 사용할 수도 있습니다. 목록을 순차적으로 나열하고 App2로 가져옵니다. (나는 단지 당신이 dev 툴을 이미 존재하는 것으로 끌어들이는 것처럼 보이기 때문에 그렇게 제안한다).

Remoting은 어려운 구현 및 배포 문제로 어려움을 겪고있는 오래된 기술입니다. WCF는 훨씬 깔끔하고 구현하기 쉽습니다. 그래서, 둘 사이에 있다면, 나는 확실히 리모컨을 통해 WCF를 권하고 싶습니다.

8

응용 프로그램에 대한 자세한 내용을 알지 못해 말하기가 어렵지만 개인적으로이 시나리오에서는 WCF를 사용하지 않습니다. WCF는 매우 무거운 파이프 라인을 가지고 있으며 설치 및 사용에 많은 노력이 필요합니다. API는 웹 서비스에 중점을두고 있으며, 이는 귀하의 경우에 과도한 것으로 보입니다. 마이크로 소프트는 WCF가 리모팅을 더 이상 지원하지 않기 때문에 리모트를 대체한다고 주장하지만, 둘 다 사용하면 WCF가 동종 애플리케이션 내에서 데이터를 옮기는 데있어서 리모팅만큼 좋지 않다고 말할 수 있습니다.

그러나 한 가지 응용 프로그램에서 다른 응용 프로그램으로 데이터를 이동하는 데 수십 가지 방법이 있으며 모두 모두 장단점이 있습니다. 이 모든 방법에 대한 자세한 설명은이 설명의 범위를 벗어납니다. 사용 시나리오에 대한 세부 정보를 추가 할 수 있습니까? 이 목록에 어떤 종류의 데이터가 있는지, 얼마나 큰지, 어디에서 왔는지, 어떤 종류의 수정이 이루어 졌는지, App 1에서 변경 사항을 확인해야하는지, App 2에서 다른 곳으로 데이터를 보내겠습니까? 완료 ... 등

3

나는 응용 프로그램 1이 프로덕션 응용 프로그램이라고 가정하고 응용 프로그램 2는 개발 전용 보조 응용 프로그램입니다. 이 경우 응용 프로그램 2와 관련된 응용 프로그램 1의 추가 오버 헤드를 최소화하거나 제거해야합니다. 따라서 매우 무거운 WCF는 옵션으로 제거해야합니다. 또한 Remoting은 오버 헤드를 추가합니다.

개체를 직렬화 할 수 있습니다. 아마도 XML이 이에 적합할까요?

이 질문에 너무 많은 변수가있어 완전히 대답 할 수 없습니다. 신청 1과 신청 2에 대한 자세한 정보를 제공 할 수 있습니까? 그들은 어디에서 뛰는가? 관심이있는 객체를 자주 변경합니까? 그들은 국가를 어떻게 보존합니까?

+0

Remoting 또는 WCF의 오버 헤드없이 목록에 액세스하는 가장 논리적 인 방법 인 것으로 보입니다. app1에 목록을 Xml 또는 Binary 포맷터로 간단하게 직렬화하십시오. – IAbstract