2009-09-14 3 views
0

내가 작업중인 제품은 플러그 가능한 프레임 워크로 구동되는 견적 엔진을 보유 할 수있는 방식으로 제작해야합니다.플러그인 프레임 워크 - 너무 많은 addin 어셈블리가있을 수 있습니까?

우리는 현재 MAF를 사용하려고 생각하고 있으므로 버전 관리를 위해 호스트와 애드 인 인터페이스를 분리 할 수 ​​있습니다.

그러나 우리는 많은 어셈블리가있을 것이라고 우려합니다. 각 쿼트 엔진 추가 기능에 대해 하나씩 가질 가능성이 있습니다. 앞으로 100 개가 될 수 있으며 여러 버전을 지원해야합니다. 그래서 전체적으로 많은 어셈블리가있을 수 있습니다.

또한 견적 엔진은 WF를 사용하여이를 구동합니다. 즉, 각 추가 기능의 각 AppDomain에는 연결된 워크 플로 런타임이 필요합니다. 이것은 상당히 중량급 인 것처럼 보이지만, 자주 사용되는 addins를 언로드 할 수 있습니다.

좋은 디자인 같습니까? 우리는 또한 addin 유형을로드하기 위해 IOC 컨테이너를 사용하는 단일 AppDomain 솔루션을 살펴 보았습니다. 그러나 수량을 고려할 때 어셈블리를 언로드 할 수 없다는 점에 우려하고 있습니다.

+0

MEF를 말합니까? 그렇다면 다시 태그를 지정할 수 있습니다. – TrueWill

+0

아니요. MAF - Managed Addin Framework은 .NET 3.5의 일부입니다. MEF는 확장 성 프레임 워크이므로 작업중인 AppDomain에 추가 기능을 추가 할 수만 있습니다. MAF의 주요 포인트는 추가 기능이 기본 AppDomain을 독립적으로 보호 할 수있는 격리 된 AppDomain에서 실행할 수 있다는 것입니다. – spooner

답변

0

각 AppDomain 및 어셈블리는 약간의 오버 헤드를 추가하지만 특정 제한을 알지 못합니다.

할 수있는 것은 테스트 (예 : 100, 250, 1000, ...으로 작업 해보고 다양한 효과를 내기 위해 매우 유사한 유사하지만 많은 어셈블리를 생성하는 코드를 작성하여 테스트하는 것)입니다.

+0

감사합니다. 몇 가지 테스트를 실행하고 단일 AppDomain 모델 (IOC 사용) 또는 다중 AppDomain 모델 (MAF 사용)을 통해 성능이 더 좋은지 확인합니다. 결과에 따라 질문을 업데이트하겠습니다. – spooner

관련 문제