내가 작업중인 제품은 플러그 가능한 프레임 워크로 구동되는 견적 엔진을 보유 할 수있는 방식으로 제작해야합니다.플러그인 프레임 워크 - 너무 많은 addin 어셈블리가있을 수 있습니까?
우리는 현재 MAF를 사용하려고 생각하고 있으므로 버전 관리를 위해 호스트와 애드 인 인터페이스를 분리 할 수 있습니다.
그러나 우리는 많은 어셈블리가있을 것이라고 우려합니다. 각 쿼트 엔진 추가 기능에 대해 하나씩 가질 가능성이 있습니다. 앞으로 100 개가 될 수 있으며 여러 버전을 지원해야합니다. 그래서 전체적으로 많은 어셈블리가있을 수 있습니다.
또한 견적 엔진은 WF를 사용하여이를 구동합니다. 즉, 각 추가 기능의 각 AppDomain에는 연결된 워크 플로 런타임이 필요합니다. 이것은 상당히 중량급 인 것처럼 보이지만, 자주 사용되는 addins를 언로드 할 수 있습니다.
좋은 디자인 같습니까? 우리는 또한 addin 유형을로드하기 위해 IOC 컨테이너를 사용하는 단일 AppDomain 솔루션을 살펴 보았습니다. 그러나 수량을 고려할 때 어셈블리를 언로드 할 수 없다는 점에 우려하고 있습니다.
MEF를 말합니까? 그렇다면 다시 태그를 지정할 수 있습니다. – TrueWill
아니요. MAF - Managed Addin Framework은 .NET 3.5의 일부입니다. MEF는 확장 성 프레임 워크이므로 작업중인 AppDomain에 추가 기능을 추가 할 수만 있습니다. MAF의 주요 포인트는 추가 기능이 기본 AppDomain을 독립적으로 보호 할 수있는 격리 된 AppDomain에서 실행할 수 있다는 것입니다. – spooner