1. ホーム
  2. .net

[解決済み] MEFとMAFの選択 (System.AddIn)

2022-04-23 21:37:17

質問

Managed Extensibility Framework (MEF) と Managed AddIn Framework (MAF, aka System.AddIn) は、非常によく似たタスクを達成するように思われます。このStack Overflowの質問によると。 MEFはSystem.Addinの代わりになるものですか? 同時に使用することも可能です。

どのような場合に、一方と他方を使い分けるのでしょうか?どのような場合に両方を一緒に使うことを選ぶのでしょうか?

解決方法は?

これらの選択肢を評価した結果、私が出した結論は以下の通りです。

MAFは真のアドオンフレームワークです。 アドオンを完全に分離し、別のアプリドメイン内で動作させることも可能です。これにより、アドオンがクラッシュしても、アプリケーションがダウンすることはありません。また、アドオンを、あなたが与えた契約以外の何かに依存しないようにするための、非常に完全な方法を提供します。 実際、コントラクトアダプタをバージョンアップすることで、メインアプリをアップグレードしている間に古いアドオンとの後方互換性を提供することができます。 これは素晴らしいことですが、アプリのドメインをまたぐために支払わなければならない重い代償を伴います。 この代償は、スピードと、送受信できるタイプの柔軟性で支払わなければなりません。

MEFはディペンデンシーインジェクションに近いもので、発見しやすいという利点もあります。(この点については空白を描いています)。 MAFが持っている分離の程度はMEFにはありません。これらは2つの異なるもののための2つの異なるフレームワークです。