4

.net MEF (Managed Extensibility Framework) と MAF (System.AddIn) の両方を読みましたが、オンライン レビューで混乱しました。

MEF は MAF より新しく、より魅力的に見えますが。MEF を使用して拡張機能を .NET アプリケーションにリンクする方法がわかりません。たとえば、MAF では、以下を含む拡張ロジック全体 (アドイン) を開発できます。

  • メイン dll、たとえば X.dll
  • X.dll によって参照されるすべての dll
  • データベース、一部のテキストファイルなど、X.dll が必要とする外部リソース

その後、ホストは X.dll 内のメソッドを呼び出すだけで、結果を待つことができます。

一方、MEF では、すべての DLL を「プラグイン」などの同じフォルダーに配置する必要があります。したがって、X.dll を検出してリンクするには、「プラグイン」にある必要があります。ホストからの着信要求を完了するために X.dll が必要とするリソースは?

私の本当の質問は次のとおりです。あるチームが、他のチームによって開発された拡張機能に依存するか、単にインターネットからダウンロードしてインストールすることによって処理機能を拡張できるホスト アプリケーションを設計する場合、MEF はそのようなプロジェクトで効果的なテクノロジですか? または、チームは MAF に固執する必要がありますか?

PS:私の質問は、セキュリティの観点からどちらが優れているかではありません...など.テキストのコーパスとヒューリスティック データベースを必要とするスペル チェッカー拡張機能。これら 2 つのリソースは拡張機能に必要ですが、ホスト自体には必要ありません。

さらに、前の例で、X.dll を実行するために Y.dll が必要な場合、y.dll は拡張子ではないため、単純に両方の dll を「Plugins」フォルダに入れることはできません。

4

0 に答える 0