Введение в Managed Extensibility Framework Владимир Лисник Software Engineer M. C. Dean
Инструмент позволяющий решать задачи плагинообразности приложения
Композиция Экпорты Импорты
// Импорт всех доступных расширений: // Импорт одного расширения: контракт тип расширения точка импорта
// Экспорт расширения: контракт экспортируемая часть тип расширения
CompositionPart // Явная передача элементов композиции:
каталог объект с точками импорта // Ипользование каталога для композиции:
AggregateCatalog AssemblyCatalog DirectoryCatalog * TypeCatalog DeploymentCatalog ** * Только в.NET Framework ** Только в Silverlight
// Ключевая концепция:
(с)
System.ComponentModel.Composition.dll System.ComponentModel.Composition.Initialization.dll* * Только в Silverlight
// Экспорт: // Импорт:
// MetadataExportAttribute: // Пользовательские атрибуты : наш атрибут (метаданные и экспорт) наш атрибут (метаданные и экспорт) тип метаданных (все свойства должны быть read-only) тип метаданных (все свойства должны быть read-only)
// Точка импорта: // Работа с метаданными:
по умолчанию = false Могут производить рекомпозицию: AggregateCatalog (автоматически) DirectoryCatalog (вызвать Refresh) DeploymentCatalog (автоматически) Могут производить рекомпозицию: AggregateCatalog (автоматически) DirectoryCatalog (вызвать Refresh) DeploymentCatalog (автоматически)
.NET Framework Как отдельная библиотека в.NET 3.5 Поставляется в составе.NET 4.0 Доступен в.NET Framework 4 Client Profile Silverlight Как отдельная библиотека в Silverlight 3 Поставляется в составе Silverlight 4 Silverlight for Windows Phone Не доступно
MS Public License (Проект с открытым исходным кодом)