MicrosoftのManaged Extensibility Framework (MEF)(リンク)は、CodePlexで利用可能なオープンソース(MS-PL) .NETアプリケーション構成フレームワークである。MEFは、プラグインモデルのアスペクトおよびコントロールコンテナの反転を提供する。
現在MEFは開発途中であり、まだアルファであるが、その目的はアプリケーションやコンポーネントのさらなる再利用を可能にすることである。その概念はア プリケーションの「静的なコンパイルから動的な構成」へとシフトすることである。コントロールコンテナの従来の反転は、適切に定義されたニーズへの本質的なフォーカスで使用される。このクラスは、ロガーおよびトランザクション背景を必要とする。MEFは、プラグインプロバイダにより類似している。拡張可能 性ポイントを公開するという外部のフォーカスがある。
MEF Source Code Preview 4は、ダウンロードで利用可能である(リンク)。Preview 4リリースノートは以下のとおりである。
- 診断上の改善 - 構成上のエラーが発生した場合、エラーメッセージに詳細が表示される。
- ライフタイム(作成)ポリシーの改善 - インポーターは、注入されたオブジェクトに対し特定の作成ポリシーを要求することができる。廃棄不要で、共用でないオブジェクトは、コンテナが廃棄される 前にガベージコレクションされ、いつまでも持続しているバグを修正する。
- AllowNonPublicCompositionAttributeの除去 - 私的および内部メンバが、つねに注入される。
- 名前空間のクリーンアップ - 2つの新たな名前空間がSystem.ComponentModel.Compositionの下に追加されている。.Hostingおよび.Primitivesである。「ホスティングには、ExportProvider、 CompositionContainerおよびカタログなどのホストアプリケーションによってのみ一般的に使用されるタイプがある。プリミティブには、ComposablePart、ImportDefinitionおよびExportDefinitionなどカスタムプログラミングモデルを実装するためのタイプがある」。
- タイプ名のクリーンアップ - 多くのタイプ名が短縮されている。その結果、突然変更が起こる。
- ComposablePartCatalogおよび関連するタイプがSystem.ComponentModel.CompositionからSystem.ComponentModel.Compositioni.Primitivesに移行された。
- AttributedTypesPartCatalogがTypeCatalogに改名された。
- AttributedAssemblyPartCatalogがAssemblyCatalogに改名された。
- DirectoryPartCatalogがDirectoryCatalogに改名された。
- AggregatingComposablePartCatalogがAggregateCatalogに改名された。
- Catalog Cachingの拡張可能性APIが、内的になった。
- サンプルアプリケーションがアップデートされた。
- Meflook - Outlookのようなクライアント
- Meftris - プラグインとしての形状を持つテトリスのようなゲーム
- Extensible File Explorer - 拡張可能ビュー、お気に入りファイルビューアーおよびシェルサービス搭載のファイルエクスプローラ
開発にManaged Extensibility Frameworkは、.NET Framework 3.5およびVisual Studio 2008を必要とする。