Jump to content

Платформа управляемой расширяемости

Платформа управляемой расширяемости
Разработчик(и) Майкрософт
Стабильная версия
Версия 1 в .NET Framework 4.0 / 12 апреля 2010 г .; 14 лет назад ( 12 апреля 2010 г. )
Предварительный выпуск
Предварительный просмотр версии 2 5 / 19 декабря 2011 г .; 12 лет назад ( 19 декабря 2011 )
Репозиторий github /MicrosoftArchive /меф
Написано в .NET-языки
Операционная система Окна
Платформа .NET Framework
Тип Фреймворк веб-приложений
Лицензия МОЯ лицензия [1]
Веб-сайт документы .microsoft /en-нас /дотнет /рамки /меф /

Managed Extensibility Framework ( MEF ) — это компонент .NET Framework 4.0, предназначенный для создания легких расширяемых приложений. Его цель — позволить разработчикам приложений .NET находить и использовать расширения без необходимости настройки. Он также направлен на то, чтобы позволить разработчикам расширений легко инкапсулировать код и избегать хрупких жестких зависимостей. Более того, он направлен на то, чтобы расширения можно было повторно использовать в разных приложениях. [2] MEF был представлен как часть .NET 4.0. [3] и Сильверлайт 4 . Позже с выпуском .NET 4.5 он был улучшен за счет добавления поддержки универсальных типов и введения модели расширения на основе соглашений. [4]

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

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

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

  • Первоклассным гражданином MEF является класс ComposablePart. Составная часть предлагает один или несколько экспортов, а также может зависеть от одной или нескольких внешних услуг или импорта. Составная часть также управляет экземпляром, который может быть экземпляром объекта заданного типа (он есть в реализации MEF по умолчанию). [ нужны разъяснения ] . Однако MEF является расширяемым, и могут быть предоставлены дополнительные реализации ComposablePart, если они соответствуют контрактам импорта/экспорта.
  • Экспорт и импорт имеют контракт. Контракты являются мостом между экспортом и импортом. Экспортный контракт может состоять из дополнительных метаданных, которые можно использовать для фильтрации при его обнаружении. Например, это может указывать на конкретную возможность, которую предлагает экспорт.
  • Контейнер MEF взаимодействует с каталогами, чтобы иметь доступ к составным частям. Сам контейнер разрешает зависимости части и предоставляет экспорт внешнему миру. Экземпляры составных частей можно добавлять непосредственно в контейнер.
  • ComposablePart, возвращаемый каталогом, скорее всего, будет расширением приложения. Он может иметь импорт (зависимости) от компонентов, предлагаемых хост-приложением, и, скорее всего, будет экспортировать другие.
  • Реализация составной части MEF по умолчанию использует метаданные на основе атрибутов для объявления экспорта и импорта. Это позволяет MEF определять, какие части, импорт и экспорт доступны посредством обнаружения.
  1. ^ «МЭФ» . Гитхаб . 15 октября 2021 г.
  2. ^ Канджилал, Джойдип (7 июля 2016 г.). «Как работать с Managed Extensibility Framework в C#» . Инфомир . Проверено 25 июня 2022 г.
  3. ^ Проншинске, Митч (12 апреля 2010 г.). «Что нового в VS2010 и .Net 4?» . ДЗона . Проверено 25 июня 2022 г.
  4. ^ Фогель, Эрик (12 февраля 2010 г.). «Усовершенствования платформы управляемой расширяемости в .NET 4.5» . Журнал VisualStudio . Проверено 25 июня 2022 г.

Дальнейшее чтение

[ редактировать ]
  • Ликнесс, Джереми (2011). Основы управляемой платформы расширяемости (MEF) . Аддисон-Уэсли. ISBN  978-0132929400 .
  • Верма, Ришаб (2020). Разработка расширяемости Visual Studio: расширение интегрированной среды разработки Visual Studio для повышения производительности, качества, инструментов и анализа . Апресс. ISBN  978-1484258538 .
  • Харрис, Алан (2010). Pro ASP.NET 4 CMS: расширенные методы для разработчиков C#, использующих .NET 4 Framework . Апресс. ISBN  978-1430227137 .
  • Нагель, Кристиан; Эвджен, Билл; Глинн, Джей; Уотсон, Карли; Скиннер, Морган (2010). Профессиональный C# 4.0 и .NET 4 . Джон Уайли и сыновья. ISBN  978-0470632536 .
[ редактировать ]
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 36d1ec51f370dd18b714067525de3837__1712835600
URL1:https://arc.ask3.ru/arc/aa/36/37/36d1ec51f370dd18b714067525de3837.html
Заголовок, (Title) документа по адресу, URL1:
Managed Extensibility Framework - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)