ASP.Net MVC 5 MEF, как программно импортировать и экспортировать детали?
Я прочитал все многочисленные посты здесь, на Stackoverflow, о том, как использовать MVC с MEF, и есть ссылки на них, но я не нашел ответа на все вопросы, и в Интернете я искал, как создавать плагины с MEF, которые могут Включение, выключение, установка и удаление со страницы настроек администратора.
Я пытаюсь создать свою собственную CMS для MVC и хотел бы использовать MEF как часть моей инфраструктуры плагинов.
Просто нужно знать, как программно устанавливать, удалять, включать и выключать плагины, созданные для MEF.
Подумав о написании «плагинов» для использования MEF, а затем упакуйте его в Nuget, где его можно установить и удалить со страницы настроек администратора.
Nuget будет нести ответственность за установку и удаление
MEF будет нести ответственность за регистрацию плагина, а также некоторые варианты включения и выключения.
Пример ситуации:
Пользователь устанавливает CMS
Пользователь заходит в раздел администратора -> Плагины
Пользователь видит список плагинов, которые они могут установить и использовать для CMS
Пользователь нажимает «Установить» и плагин MEF устанавливается в CMS
Пользователь Нажмите «Включить», и плагин MEF готов к использованию системой
Пользователь хочет временно отключить плагин, пользователь нажимает кнопку «Выключить»
Пользователь больше не нуждается в плагине и нажимает «Удалить», и плагин полностью удаляется из системы CMS.
Пользователь понимает, что он случайно удалил не тот плагин, пользователь снова нажимает «Установить».
Цель состоит в том, чтобы иметь возможность управлять плагинами на странице настроек типа администратора, так как возможность установки, удаления, включения и выключения была бы отличной возможностью в CMS.
Я знаю, что другие CMS используют этот тип функций для своих плагинов, но я не знаю ни одного, который использует MEF как часть своей платформы для этого.
Большинство использует свои собственные внутренние плагины для этих функций.
Я надеюсь, что смогу использовать структуру MEF, чтобы помочь сделать это.
Другая цель состоит в том, чтобы в основном иметь систему, в которой «плагины», предназначенные для MEF и упакованные в Nuget, могут быть размещены где-то вроде Nuget.org.
В пакете Nuget вместе с MEF все, что нужно «плагину», содержится в пакете Nuget.
Но, поскольку он использует MEF, этот пакет технически может содержать только 1 DLL, и когда пользователь установит Nuget Package, MEF зарегистрирует DLL на своем веб-сайте.
Примером может служить блог, в комплект которого входит все, что нужно.
Пользователь заходит в Visual Studio Install Nuget Package «Блог» и устанавливает 1 DLL, которая содержит все, что ему нужно.
MEF зарегистрирует пакет на веб-сайте пользователя и все.
Никаких настроек или чего-либо на стороне пользователя.
Просто потяните и установите из Nuget и все тут :)
Спасибо,
Брайан Дэвис