Onde colocar partes compartilhadas ao usar a arquitetura de cebola?
-
12-12-2019 - |
Pergunta
Eu estou tentando aplicar a arquitetura de cebola por J. Palermo, mas tenho algumas coisas que estou lutando.
Eu tenho algumas partes e não sei exatamente onde colocar isso.
- eu tenho um mecanismo de plugin que lê um diretório e determinar quais coisas para carregar en para fazer
- Tem alguns arquivos de recursos com traduções que são usadas em vários projetos.Onde devo colocar esses arquivos?
- Eu tenho alguns atributos que são usados em todo o sistema.Onde colocar isso?
- Eu também tenho dois controladores 'base', alguns resultados e visualizações padrão.Onde devo colocar isso?
Todos esses itens são usados em vários projetos, então eu quero colocar os itens em um ponto central.
minha estrutura de solução atual looke assim:
- project.core (contém os objetos de domínio e interfaces dos repositórios)
- project.infrastructure (é a implementação do núcleo)
Eu estou usando o MVC2.
Solução
Eu não acho que é algo que a arquitetura de cebola resolveria por si só. O que eu faria, é colocar todos esses itens em um ou vários projetos, dentro de outra solução e construir pacotes de Nuget, permitindo-me implantá-los em todos os lugares que eu precisaria deles. Desta forma, teria implantado itens como seus controladores de base em seu projeto MVC e plugin / stuff em seu projeto de infraestrutura.
Dessa forma, sempre que você precisará ter esses elementos disponíveis em seus projetos recém-criados, você só terá que implantar o pacote novamente.
Esses itens se tornarão independentes, armazenados em um ponto central (um novo SLN) e terão seu próprio ciclo de lançamento!