2012-02-06 1 views
2

타사 개발자가 작성한 플러그인을 지원하는 응용 프로그램 (우리가 정의한 특정 인터페이스를 가져 오거나 내 보내야 함)을 빌드하고 있습니다. MEF를 사용하여 지정된 디렉토리에서 이러한 플러그인의 존재를 감지 할 계획입니다.타사 플러그인 구성 요소 제어

잘못 작성된 구성 요소가 호스트 응용 프로그램의 메모리 누수 (안정성에 영향을 미침) 또는 프로세서 성능 저하 (성능 저하)를 야기 할 수있는 가능성을 최소화하기 위해 플러그인 개발자에게 어떤 수준의 제어 권한을 부여 할 수 있습니까?

저는 ANTS 메모리 및 성능 프로파일 링 응용 프로그램과 같은 도구를 사용하여 문제가 발생했을 때이를 추적하고 진단하지만, 응용 프로그램이없는 환경에서 응용 프로그램이 실행될 수 있다는 점을 고려하면 항상 가능하지는 않습니다 제어.

답변

0

악의적으로 작성된 구성 요소가 호스트 응용 프로그램의 메모리 누수 (안정성에 영향을 미침) 또는 프로세서 사용 (성능 저하)을 일으킬 수있는 가능성을 최소화하기 위해 플러그인 개발자에게 어떤 수준의 제어 권한을 부여 할 수 있습니까?

별도의 하위 프로세스에 플러그인을로드 한 다음 WCF 또는 다른 형태의 IPC를 통해 해당 프로세스와 통신해야합니다. 그렇게하면 자원 사용을 모니터하고 필요한 경우 플러그인을 종료 할 수 있습니다.

MEF가 도움이되지 않습니다. 그러나 아마도 그 중 일부 또는 전부를 처리하는 자신의 ExportProvider 구현을 작성하는 것이 가능할 수도 있습니다.

편집 : IsolatingCatalog은 Piotr Włodek의 전망이 유망합니다.

+0

덕분에 응답 - 나는 내 요구 사항을 충족하는지 확인하는 모습을해야합니다. – pete757

+0

IsolatingCatalog에 대한 정보는 유용했지만 (응용 프로그램에서) 성능 비용이 교차 프로세스 또는 교차 appDomain 방식을 배제 할 수 있습니다. – pete757