2012-04-27 1 views
0

현재 응용 프로그램을 작성 중이며 새 기능을 추가하려고합니다.작성 가능한 응용 프로그램은 반드시 플러그인 기반 아키텍처를 의미합니까

하나는 응용 프로그램의 코드를 직접 업데이트하는 것입니다.

또 다른 기능은 새로운 기능이 추가 될 확장 성 계층을 제공하는 것입니다.

플러그인 아키텍처에서 여러 게시물을 읽고 MEF를 사용하여 작성 가능한 앱을 만드는 데있어 2 가지 용어가 실제로 동일한 것을 의미하는지 여부가 다소 혼란 스럽습니다.

또한, 나는 "개방"에 도움이 좋은 디자인 솔루션의 알고 관심 당신은 것입니다 미래에 쉽게 확장 (새로운 선물이 "확장으로"추가 할 수 있습니다)

답변

1

을 허용하는 내 응용 프로그램 포괄적 인 확장 성 프레임 워크를 갖기 위해서는 플러그인 기반 아키텍처가 필요합니다.

그러나 종속성 컨테이너 또는 MEF가 반드시 필요한 것은 아닙니다.

IPlugIn 인터페이스를 정의하고 인터페이스를 구현하는 유형의 어셈블리를 검색하는 것처럼 간단 할 수 있습니다. 그런 다음 유형 인스턴스를 인스턴스화합니다.

+0

문제가 남아 있습니다 - 사용자 정의하고 확장 할 수있는 많은 응용 프로그램 옵션/이벤트를 등록하는 방법. 간단한 IPlugin 인터페이스는 이것을 지원하지 않습니다. –

+0

그게 달려 있습니다. 확장 프로그램이 수반하는 작업을 결정해야합니다. 'IPlugIn'은 어떻게 든 메시지를 호출하는 메뉴를 생성하는'IEnumerable Messages()'메소드를 가질 수 있습니다. 대부분의 플러그인 아키텍처는 논리적으로 호스트/쉘에 맞는 구조로 정의됩니다. –

+0

정확히 내 문제입니다. "플러그인"또는 확장 프로그램이 특정 장소에 맞지 않지만 내 응용 프로그램의 어느 위치 에나 잘 어울릴 수 있어야합니다. 물론 확장하거나 응용 프로그램의 다른 aspets와 상호 작용을위한 다양한 IPlugin 인터페이스 (IPluginUI 등)를 제공 할 수 있습니다. –