ASP.Net MVC 5 MEF como importar e exportar programaticamente peças?

Eu tinha lido todas as muitas postagens aqui no Stackoverflow sobre como usar o MVC com o MEF e ter links para eles. O que eu não encontrei resposta em todas as perguntas e pesquisar na Internet é como criar plugins com o MEF que possam Ligue, desligue, instale e desinstale a partir de uma página de configuração do administrador.

Estou tentando criar meu próprio CMS para MVC e gostaria de usar o MEF como parte da minha estrutura de plugins.

Só precisa saber como instalar, desinstalar, ativar e desativar programaticamente os plug-ins criados para o MEF.

Pensando em escrever "Plugins" para usar o MEF e empacotá-lo no Nuget, onde ele pode ser instalado e desinstalado na página de configuração do administrador.

Nuget seria responsável por instalar e desinstalar

O MEF seria responsável por registrar o plug-in e, de alguma forma, ter opções para ativá-lo e desativá-lo.

Exemplo de situação:

CMS de instalação do usuário

O usuário acessa a Seção Admin -> Plugins

O usuário vê uma lista de plug-ins que eles podem instalar e usar para o CMS

Usuário, clique em "Instalar" e o plugin MEF é instalado no CMS

Usuário Clique em "Ligar" e o plug-in MEF está pronto para ser usado pelo sistema

O usuário deseja desativar temporariamente o plug-in, e clicar em "Desativar"

O usuário não precisa mais do plug-in e clica em "Desinstalar" e o plug-in é excluído completamente do sistema CMS.

O usuário percebe que excluiu acidentalmente o plug-in errado, o usuário clica novamente em "Instalar".

O objetivo é controlar plug-ins de um tipo de página de configurações de administrador, sendo capaz de instalar, desinstalar, ativar e desativar seria um ótimo recurso para se ter em um CMS.

Sei que outros CMS usam esse tipo de função para seus plug-ins, mas não conheço nenhum que use o MEF como parte de sua estrutura para fazer isso.

A maioria usa sua própria estrutura interna de plug-ins para essas funções.

Espero poder usar a estrutura do MEF para ajudar a fazer isso.

Um outro objetivo é basicamente ter um sistema em que "Plugins" direcionados ao MEF e empacotados no Nuget possam ser hospedados em alguns locais como o Nuget.org.

No Pacote Nuget, com o MEF, tudo o que o "Plugin" precisa está contido no Pacote Nuget.

Mas, como está usando o MEF, este pacote tecnicamente pode conter apenas 1 DLL e quando um usuário instalar o Nuget Package MEF registrará a dll no site.

Exemplo poderia ser um blog, no pacote contém tudo o que é necessário.

O usuário acessa o Pacote de instalação do Nuget do Visual Studio "Blog" e instala 1 dll que contém tudo o que precisa.

O MEF registrará o pacote no site do usuário e é isso.

Nenhuma configuração ou qualquer coisa do lado do usuário.

Basta puxar e instalar a partir do Nuget e é isso :)

Obrigado,

Brian Davis

questionAnswers(0)

yourAnswerToTheQuestion