Введение в MEF

19
Managed Extensibility Framework Владимир Лисник Software Engineer M. C. Dean

Transcript of Введение в MEF

Page 1: Введение в MEF

Managed Extensibility Framework

Владимир Лисник

Software EngineerM. C. Dean

Page 2: Введение в MEF

Инструмент позволяющий решать задачи плагинообразности приложения

Page 3: Введение в MEF

Композиция

Экпорты

Импорты

Page 4: Введение в MEF

// Импорт всех доступных расширений:

// Импорт одного расширения:контракт

контракт

тип расширения

тип расширения

точка импорта

точка импорта

Page 5: Введение в MEF

// Экспорт расширения:

контракт

экспортируемая часть

тип расширения

Page 6: Введение в MEF

CompositionPart CompositionPart

// Явная передача элементов композиции:

Page 7: Введение в MEF

каталог

объект с точками импорта

// Ипользование каталога для композиции:

Page 8: Введение в MEF

AggregateCatalog AssemblyCatalog DirectoryCatalog * TypeCatalog DeploymentCatalog **

* Только в .NET Framework** Только в Silverlight

Page 9: Введение в MEF

// Ключевая концепция:

Page 10: Введение в MEF

(с) http://mef.codeplex.com/wikipage?title=Architecture&referringTitle=Documentation

Page 11: Введение в MEF

System.ComponentModel.Composition.dllSystem.ComponentModel.Composition.Initialization.dll*

* Только в Silverlight

Page 12: Введение в MEF

// Экспорт:

// Импорт:

Page 13: Введение в MEF

// MetadataExportAttribute:

// Пользовательские атрибуты :

1.

2.

3.

наш атрибут (метаданные и экспорт)

тип метаданных(все свойства должны

быть read-only)

Page 14: Введение в MEF

// Точка импорта:

// Работа с метаданными:

Page 15: Введение в MEF

по умолчанию = false

Могут производить рекомпозицию:

• AggregateCatalog (автоматически)

• DirectoryCatalog (вызвать Refresh)

• DeploymentCatalog (автоматически)

Page 16: Введение в MEF

.NE

T F

ram

ewo

rk • Как отдельная библиотека в .NET 3.5

• Поставляется в составе .NET 4.0

• Доступен в .NET Framework 4 Client Profile

Silv

erlig

ht • Как отдельная

библиотека в Silverlight 3

• Поставляется в составе Silverlight 4

Silv

erlig

ht

forW

ind

ow

s P

ho

ne • Не доступно

Page 17: Введение в MEF

MS Public License

(Проект с открытым исходным кодом)

Page 18: Введение в MEF

http://mef.codeplex.com/ http://blogs.msdn.com/b/gblock/archive/tags/mef/ http://blogs.msdn.com/b/nblumhardt/archive/tags/mef/

Page 19: Введение в MEF