2009-05-22 1 views
5

우리는 현재 다음 응용 프로그램에 CAB 또는 MEF를 사용하고 있습니다. 형제 제어 통신을 위해 이벤트 중개가 어떻게 처리되는지에 대한 코드 플렉스에 대한 예제를 보지 못했을 것입니다. MEF에서 상호 제어 통신은 어떻게 작동합니까?MEF (Managed Extensibility Framework) vs. 복합 UI 응용 프로그램 블록 (CAB)

또한 CAB 프레임 워크에 대한 추가 구성 요소를 제공하는 Infragistics를 사용할 계획입니다. Infragistics 컨트롤은 MEF에 얼마나 잘 통합됩니까?

전반적으로 MEF는 엄청나게 큰 15,000 시간의 엄격한 개발, 적용을 추구 할 가치가 있습니까?

답변

8

내가 틀릴 수도 있지만 MEF에는 어떤 이벤트 중개가 있다고 생각하지 않습니다. ioc 컨테이너와 비슷한 일반적인 작성 엔진이지만보다 일반적인 플러그인 및 응용 프로그램 확장 성 솔루션을위한 것입니다. 반면에 CAB과 Prism은 UI 구성 요소로 구성된 복합 애플리케이션을 허용하는 UI 프레임 워크입니다. UI 구성 요소는 서로 통신하고 다른 UI 구성 요소의 활동에 응답해야 할 가능성이 높으므로 기본 프레임 워크는 UI 구성 요소간에 이벤트를 발생 (pub/sub)하기위한 메커니즘을 제공해야합니다.

6

MEF와 WPF 및 MVVM 패턴을 사용하는 경우 일반적으로 파트는 ViewModel 클래스 및 View 클래스 (예 : DataTemplates 등)를 내 보냅니다. 뷰는 ViewModel에 바인딩되고 종속성 속성 및 명령을 사용하여 앞뒤로 통신합니다. 따라서 파트 A가 파트 B와 통신해야하는 경우 파트 A는 파트 B의 ViewModel에 대한 참조를 가져올 수 있으며 메서드 호출을 앞뒤로 할 수 있습니다. 파트 A는 파트 B의 이벤트 등을위한 이벤트 핸들러를 등록 할 수도 있습니다.

2

. "일반적인"pub/sub 모델은 흥미로운 것 같지만 드물게 필요했습니다. 디커플링 메시지를 원하면 MEF를 사용하여 계약 IMessage를 정의한 다음 구현을 내 보낸 다음 필요한 곳으로 가져옵니다. 강력한 형식의 메시지 인 경우 직접 말하고 직접 메시지를 보내야합니다.