[解決済み] 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つの異なるフレームワークです。
関連
-
[解決済み】プラットフォームが同じでも「不正なフォーマットでプログラムを読み込もうとしました。
-
[解決済み] <Database> コンテキストを支えるモデルが、データベース作成後に変更されました。
-
[解決済み] Visual Studioの "ターゲットフレームワーク "が見つからない
-
[解決済み] リファレンスの追加にSystem.Web.Mvcが表示されないのはなぜですか?
-
[解決済み] フレームワークとアーキテクチャの違いは何ですか?[クローズド]
-
[解決済み] Powershell v3 Invoke-WebRequest HTTPSエラー
-
[解決済み] C#のStringとstringの違いは何ですか?
-
[解決済み] .NETでのdecimal, float, doubleの違い?
-
[解決済み] Microsoft Officeをインストールせずに、C#でExcel(.XLSおよび.XLSX)ファイルを作成するにはどうすればよいですか?
-
[解決済み] C#のconstとreadonlyの違いは何ですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】プラットフォームが同じでも「不正なフォーマットでプログラムを読み込もうとしました。
-
[解決済み】警告。同じ依存アセンブリの異なるバージョン間で競合が見つかりました。
-
[解決済み] Microsoft.Practices.ServiceLocationはどこから来たのですか?
-
[解決済み] アセンブリから型を読み込めなかったエラー
-
[解決済み] ServicePointManagerは、*スキームのプロキシをサポートしていません[closed]。
-
[解決済み] WCF エラーの解決。このサービスのメタデータパブリッシングは現在無効になっています。
-
[解決済み] VS2017/2015 で .xproj ファイルを開く方法
-
[解決済み] ファイルまたはアセンブリ 'System.Data.SQLite' をロードできませんでした。
-
[解決済み] .NETにおけるstructとclassの違いは何ですか?
-
[解決済み] .Any() vs .Count() > 0のどちらのメソッドがより良いパフォーマンスを発揮しますか?