Фреймворк управляемой расширяемости

редактировать
Фреймворк управляемой расширяемости
Managed Extensibility Framework logo.png
Разработчики) Microsoft
Стабильный выпуск V1 в.NET Framework 4.0 / 12 апреля 2010 г. ; 11 лет назад ( 2010-04-12)
Предварительный выпуск V2 Preview 5/19 декабря 2011 г. ; 9 лет назад ( 2011-12-19)
Репозиторий github.com / MicrosoftArchive / mef
Написано в .NET языки
Операционная система Окна
Платформа .NET Framework
Тип Фреймворк веб-приложений
Лицензия Лицензия MIT
Веб-сайт документы.microsoft.com / en-us / dotnet / framework / mef /

Managed Extensibility Framework ( MEF) - это компонент .NET Framework 4.0, предназначенный для создания легких расширяемых приложений. Его цель - позволить разработчикам приложений.NET обнаруживать и использовать расширения без необходимости настройки. Он также направлен на то, чтобы позволить разработчикам расширений легко инкапсулировать код и избегать хрупких жестких зависимостей. Кроме того, он нацелен на повторное использование расширений в приложениях. MEF был представлен как часть.NET 4.0 и Silverlight 4.

СОДЕРЖАНИЕ
  • 1 Обзор
  • 2 Дизайн
  • 3 ссылки
  • 4 Внешние ссылки
Обзор

MEF направлен на решение проблемы расширяемости среды выполнения. Без MEF любое приложение, которое хочет поддерживать модель плагина, должно создавать свою собственную инфраструктуру с нуля. Эти плагины часто зависят от приложения и не могут быть повторно использованы в нескольких реализациях.

  • MEF стремится предоставить хост-приложению стандартный способ раскрытия себя и использования внешних расширений. Расширения по своей природе могут повторно использоваться в разных приложениях. Однако расширение все еще может быть реализовано способом, зависящим от приложения. Сами расширения могут зависеть друг от друга, и MEF стремится убедиться, что они связаны друг с другом в правильном порядке, избавляя разработчика от необходимости делать это вручную.
  • MEF предлагает набор подходов к обнаружению для приложения, чтобы найти и загрузить доступные расширения.
  • MEF позволяет добавлять в расширения теги с дополнительными метаданными, которые призваны облегчить расширенные запросы и фильтрацию.
Дизайн

Грубо говоря, ядро ​​MEF состоит из каталога и CompositionContainer. Каталог отвечает за обнаружение расширений, а контейнер координирует создание и удовлетворяет зависимости.

  • Первоклассный гражданин MEF - это класс ComposablePart. Составная часть предлагает один или несколько операций экспорта, а также может зависеть от одной или нескольких внешних служб или операций импорта. Составная часть также управляет экземпляром, который может быть экземпляром объекта данного типа (он находится в реализации MEF по умолчанию). MEF, однако, является расширяемым, и могут быть предоставлены дополнительные реализации ComposablePart, если они соответствуют контрактам на импорт / экспорт.
  • Каждый экспорт и импорт имеют Контракт. Контракты - это мост между экспортом и импортом. Контракт на экспорт может состоять из дополнительных метаданных, которые можно использовать для фильтрации при их обнаружении. Например, он может указывать на конкретную возможность, которую предлагает экспорт.
  • Контейнер MEF взаимодействует с каталогами, чтобы иметь доступ к составным частям. Сам контейнер разрешает зависимости части и предоставляет экспорт во внешний мир. Экземпляры составных частей могут быть добавлены непосредственно в контейнер.
  • ComposablePart, возвращаемый каталогом, скорее всего, будет расширением приложения. Он может иметь импорт (зависимости) от компонентов, предлагаемых ведущим приложением, и, вероятно, экспортировать другие.
  • Реализация составной части MEF по умолчанию использует метаданные на основе атрибутов для объявления экспорта и импорта. Это позволяет MEF определять, какие части, импорт и экспорт доступны через обнаружение.
использованная литература
внешние ссылки
Последняя правка сделана 2024-01-01 05:07:36
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте