Quantos projetos em uma solução é demais?
-
06-07-2019 - |
Pergunta
Quantos projetos em uma única solução é aceitável? E para aquelas aplicações que tenham um grande número de projetos que você colocar os outros DLLs compiladas em alguma pasta comum para ser capaz de executar o aplicativo?
Solução
Uma vez no Visual Studio um projeto compila a uma montagem, a pergunta que você deve se perguntar é "quantas assembleias devo ter?"
Se não há nenhuma razão para as assembleias para ser usado separadamente, não deve haver nenhuma razão para tê-los dividido em vários projectos. Se você tem várias assembléias para impor camadas, é o que namespaces são para.
Em uma configuração ideal, você deve ter um projeto (= uma montagem) para cada host diferente em seu aplicativo, e um para a sua lógica específica não-host.
YMMV, porém, você pode querer projectos divididos de acordo com quem está a trabalhar sobre as diferentes partes, mas realmente, tentar limitar o número de projetos em sua solução (como eu estou escrevendo isso, eu estou lutando com um 70 + solução de projectos, assim que eu estou falando dos abismos da minha experiência pessoal).
Uma discussão interessante sobre camadas de lógica / física de aplicações pode ser encontrada no blog do Patrick Smacchia (por exemplo, http://codebetter.com/blogs/patricksmacchia/archive/2008/02/10/layering-the-level- métrica-and-a-discurso-de-method.aspx )
Outras dicas
Bem, 42 anos, é claro!
Não há uma resposta certa ou errada a esta. Alguns desenvolvedores gostaria de criar vários projetos dentro do projeto principal. Outros gostam de compilar a uma montagem (DLL) e volta de referência. Depende de sua equipe e local de trabalho.
Eu concordo com as respostas até agora. Um critério adicional é a velocidade de reconstruir a solução ...
Eu acho que isso é algo que depende do tamanho e tipo de seus projetos. mas a partir de minha própria experiência quando o meu número de projetos é mais do que 5 o processo de construção vai demorar muito. então eu tento manter os projetos que eu não preciso de mudar frequentemente em outra solução, a fim de tornar o processo de construção mais rápido.
Enquanto cada projeto é uma funcionalidade válida, separado, e todos os projetos estão intimamente acoplados (tanto quanto finalidade vai), então não é um problema.
O que eu faço, é que tenho um projeto "Bibliotecas" onde eu colocar todos os meus DLLs externos, então referenciá-los diretamente para lá.