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 и все тут :)

Спасибо,

Брайан Дэвис

Ответы на вопрос(0)

Ваш ответ на вопрос