2012-02-06 1 views
2

サードパーティの開発者が作成したプラグイン(私たちが定義した特定のインターフェイスをインポート/エクスポートする必要があります)をサポートするアプリケーションをビルドしています。 MEFを使用して、指定されたディレクトリにこれらのプラグインが存在するかどうかを検出する予定です。サードパーティのプラグインコンポーネントを制御する

誤って書き込まれたコンポーネントがメモリリークを引き起こす(安定性に影響を与える)、またはホストアプリケーションのプロセッサ(性能に影響を及ぼす)の可能性を最小限に抑えるために、プラグイン開発者にどのようなレベルの制御を課すことができますか?

ANTSメモリやパフォーマンスプロファイリングアプリケーションなどのツールを使用して、問題が発生したときにその問題を追跡して診断しましたが、アプリケーションがない環境でアプリケーションが実行されている可能性があるコントロール。私はひどく書かれたコンポーネントがメモリリークを引き起こす可能性があります可能性を最小限に抑えるために、プラグインの開発者に課すことができるコントロールのどのレベル

答えて

0

(安定性に影響を与える)、および/または当社のホスト・アプリケーションのプロセッサ(影響を与えるパフォーマンスを)独り占め?

プラグインを別の子プロセスにロードしてから、WCFまたは他の形式のIPCを介してそのプロセスと通信する必要があります。そうすれば、リソースの使用状況を監視し、必要に応じてプラグインを強制終了することができます。

MEFはこれを手助けしません。しかし、おそらく、その一部またはすべてを処理する独自のExportProvider実装を記述することは可能かもしれません。

編集IsolatingCatalogは、PiotrWłodek氏が期待しています。

+0

返答いただきありがとうございます。私のニーズを満たしているかどうかを見ていきます。 – pete757

+0

IsolatingCatalogについての情報は役に立ちましたが(私のアプリケーションでは)パフォーマンスコストがクロスプロセスまたはクロスappDomainアプローチを排除する可能性があると思われます。 – pete757