2011-07-20 10 views
1

MEFプラグインを構成する上で正しいアプローチを取るために、各プラグインを個別のアセンブリとして持つことが理にかなっているかどうかについて議論があります。MEFアセンブリを構成する

たとえば、DataProcessorsソリューションがあるとします。このソリューションでは、受け取ったさまざまな種類のデータファイルごとに異なるプロセッサを開発します。各プロセッサーがオンラインになると、この新しいプラグインをMEFカタログに組み込むことができます。しかし、私たちは、VSやビルド環境でのパフォーマンスが低下しているため、約100個のプロジェクトが含まれていることに懸念があります。

私は、これらのプロセッサーのそれぞれを1つのアセンブリーに分離して、そのアセンブリーの責任を限定しておくことが理にかなっていると思います。しかし、コストがあります。

誰かが、あるアプローチが他のアプローチよりもうまくいくかどうかについての経験はありますか?

答えて

2

私の対処しなければならなかった状況は、それぞれのプロジェクトに多くのMEFエクスポートを伴う多くの機能を含む「モジュール」が含まれている点で、あなたとは多少異なります。 私は、別々に配布する予定がある場合や、異なる機能を各クライアントに配布する予定がある場合は、通常、別のアセンブリに分けるだけです。

MEFを使用せずにクラスやアセンブリを構成する際の決定とは異なる方法で扱うべきではないと思います。これらすべてのエクスポートを使用してすべての製品を常にリリースする場合は、それらのすべてを1つのアセンブリに含めます。

私は非常に他の人の意見を聞くことに興味がある!

0

本当に間違った答えはありません。複数のプロセッサを同じアセンブリにバンドルすることも、アセンブリごとの方法を使用することもできます。後者は最大限の柔軟性を提供しますが、前者はおそらく配布に関してはより効率的です。

私はあなたが作成しようとしている更新の頻度を見て、共通の基本データタイプまたはアクションを中心にしてそれらをプロセッサのグループに編成しています。

など。私は、整数プロセッサのアセンブリと、文字列プロセッサの別のアセンブリを持つことができました。

私が言ったように、これを行う正しい方法と間違った方法はありません。

関連する問題