Контроль над сторонними подключаемыми компонентами - PullRequest
2 голосов
/ 06 февраля 2012

Мы создаем приложение, которое поддерживает плагины (которые должны импортировать / экспортировать определенные нами интерфейсы), написанные сторонними разработчиками. Мы планируем использовать MEF для обнаружения наличия этих плагинов в указанном каталоге.

Какой уровень контроля я могу наложить на разработчиков плагинов, чтобы минимизировать вероятность того, что плохо написанные компоненты могут вызвать утечки памяти (влияющие на стабильность) и / или перегружать процессор (влияющие на производительность) нашего хост-приложения?

Я использовал такие инструменты, как приложения ANTS для профилирования памяти и производительности, для отслеживания и диагностики проблем, когда они возникают, но это не всегда возможно сделать, учитывая, что приложение может работать в средах, над которыми мы не имеем никакого контроля ,

1 Ответ

0 голосов
/ 07 февраля 2012

Какой уровень контроля я могу наложить на разработчиков плагинов, чтобы минимизировать вероятность того, что плохо написанные компоненты могут вызвать утечки памяти (влияющие на стабильность) и / или перегружать процессор (влияющие на производительность) нашего хост-приложения?

Вам нужно будет загрузить плагины в отдельный дочерний процесс, а затем связаться с этим процессом через WCF или какой-либо другой формой IPC.Таким образом, вы можете отслеживать использование ресурсов и при необходимости убивать плагин.

MEF не поможет вам в этом.Но, возможно, можно было бы написать собственную реализацию ExportProvider, которая обрабатывает часть или все это.

edit : IsolatingCatalog Петра Влодека выглядит многообещающе.

...