2009-04-22 6 views
2

私は2つの主要コンポーネント+他のDLLをアプリケーション持っている:プラグインをロードする責任はどの層にありますか?

  1. コアDLLなど
  2. DIのために必要となる(すべてのコア機能を持って)
  3. GUI
  4. 第三党と完全に独立したDLLを

今、私はプラグインのサポートを実装しています。

これらのプラグインをロードする責任は、どのDLLにありますか? GUIまたはコアDLL?

私はMEFを使用しているため、どこに貼り付けるのかはよく分かりません。

答えて

2

答えは、アプリケーション内でパーツ(MEF用語を使用)がどのように使用されているかによって異なります。私は部品がどのようにレバレッジされているかに応じてコンテナを作成して塗りつぶします。

例:

あなたは、私がアプリケーション内のGUI層はそれらをロードし、コンテナを管理すると思うだろうGUIのためのビューが含まれているパーツを作成する場合。

私はクライアントアプリケーションプラグインのために構築したアプリケーションフレームワークを持っていますが、そこにはアプリケーション用の部品を読み込む静的なアプリケーションマネージャクラスがありますが、私のコアで使用されているコンテナ論理。この2つの目的は完全に異なっています。その中には、後で簡単にスワップアウトできるようにするための中心的な概念と、アプリにドロップインされて利用可能なときにクライアント機能を拡張するUIプラグインがあるためです。

また、これらは異なるアプローチでロードされています。コアは特定のルールを使用して起動するときだけで、もう1つはディレクトリ(プラグイン)からすべてをロードしています。

0

おそらくプラグインになるビジネスロジックなので、Core DLLと思うでしょう。

関連する問題