Слайд 2Что такое MEF?
Инструмент позволяющий решать задачи плагинообразности приложения
![Что такое MEF? Инструмент позволяющий решать задачи плагинообразности приложения](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/473432/slide-1.jpg)
Слайд 4Импорт
// Импорт всех доступных расширений:
// Импорт одного расширения:
контракт
контракт
тип расширения
тип расширения
точка импорта
точка импорта
![Импорт // Импорт всех доступных расширений: // Импорт одного расширения: контракт контракт](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/473432/slide-3.jpg)
Слайд 5Экспорт
// Экспорт расширения:
контракт
экспортируемая часть
тип расширения
![Экспорт // Экспорт расширения: контракт экспортируемая часть тип расширения](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/473432/slide-4.jpg)
Слайд 6Композиция
CompositionPart
CompositionPart
// Явная передача элементов композиции:
![Композиция CompositionPart CompositionPart // Явная передача элементов композиции:](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/473432/slide-5.jpg)
Слайд 7Композиция
каталог
объект с точками импорта
// Ипользование каталога для композиции:
![Композиция каталог объект с точками импорта // Ипользование каталога для композиции:](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/473432/slide-6.jpg)
Слайд 8Каталоги
AggregateCatalog
AssemblyCatalog
DirectoryCatalog *
TypeCatalog
DeploymentCatalog **
* Только в .NET Framework
** Только в Silverlight
![Каталоги AggregateCatalog AssemblyCatalog DirectoryCatalog * TypeCatalog DeploymentCatalog ** * Только в .NET](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/473432/slide-7.jpg)
Слайд 9Обзор архитектуры
// Ключевая концепция:
![Обзор архитектуры // Ключевая концепция:](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/473432/slide-8.jpg)
Слайд 10Обзор архитектуры
(с) http://mef.codeplex.com/wikipage?title=Architecture&referringTitle=Documentation
![Обзор архитектуры (с) http://mef.codeplex.com/wikipage?title=Architecture&referringTitle=Documentation](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/473432/slide-9.jpg)
Слайд 11Где обитает?
System.ComponentModel.Composition.dll
System.ComponentModel.Composition.Initialization.dll*
* Только в Silverlight
![Где обитает? System.ComponentModel.Composition.dll System.ComponentModel.Composition.Initialization.dll* * Только в Silverlight](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/473432/slide-10.jpg)
Слайд 12PartCreationPolicyAttribute
// Экспорт:
// Импорт:
![PartCreationPolicyAttribute // Экспорт: // Импорт:](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/473432/slide-11.jpg)
Слайд 13Метаданные экспортов
// MetadataExportAttribute:
// Пользовательские атрибуты :
1.
2.
3.
наш атрибут
(метаданные и экспорт)
тип метаданных
(все свойства
![Метаданные экспортов // MetadataExportAttribute: // Пользовательские атрибуты : 1. 2. 3. наш](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/473432/slide-12.jpg)
должны быть read-only)
Слайд 14Доступ к метаданным
Lazy
// Точка импорта:
// Работа с метаданными:
![Доступ к метаданным Lazy // Точка импорта: // Работа с метаданными:](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/473432/slide-13.jpg)
Слайд 15Рекомпозиция
по умолчанию = false
Могут производить рекомпозицию:
AggregateCatalog (автоматически)
DirectoryCatalog (вызвать Refresh)
DeploymentCatalog
![Рекомпозиция по умолчанию = false Могут производить рекомпозицию: AggregateCatalog (автоматически) DirectoryCatalog (вызвать Refresh) DeploymentCatalog (автоматически)](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/473432/slide-14.jpg)
(автоматически)
Слайд 16Доступность
.NET Framework
Как отдельная библиотека в .NET 3.5
Поставляется в составе .NET 4.0
Доступен в
![Доступность .NET Framework Как отдельная библиотека в .NET 3.5 Поставляется в составе](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/473432/slide-15.jpg)
.NET Framework 4 Client Profile
Silverlight
Как отдельная библиотека в Silverlight 3
Поставляется в составе Silverlight 4
Silverlight for Windows Phone
Не доступно
Слайд 17Лицензия
MS Public License
(Проект с открытым исходным кодом)
![Лицензия MS Public License (Проект с открытым исходным кодом)](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/473432/slide-16.jpg)
Слайд 18Ресурсы
http://mef.codeplex.com/
http://blogs.msdn.com/b/gblock/archive/tags/mef/
http://blogs.msdn.com/b/nblumhardt/archive/tags/mef/
![Ресурсы http://mef.codeplex.com/ http://blogs.msdn.com/b/gblock/archive/tags/mef/ http://blogs.msdn.com/b/nblumhardt/archive/tags/mef/](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/473432/slide-17.jpg)