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