Pastas ou projetos em uma solução Visual Studio?

votos
27

Quando parcelamento uma solução para camadas lógicas, quando é melhor usar um projeto separado sobre apenas agrupamento por uma pasta?

Publicado 04/08/2008 em 23:00
fonte usuário
Em outras línguas...                            


7 respostas

votos
17

Por padrão, sempre apenas criar uma nova pasta dentro do mesmo projeto

  • Você vai ter único assembly (sem ginástica adicional ILMerge)
  • Mais fácil para ofuscar (porque você vai ter tipos menos e métodos públicos, idealmente nenhum)

Separando o seu código-fonte em vários projetos só faz sentido se você ...

  • Ter algumas partes do código-fonte que fazem parte do projeto, mas não implementável por padrão ou em todos (testes de unidade, plugins extras etc.)
  • Mais desenvolvedores envolvidos e você quer tratar seu trabalho como caixa preta consumível. (Não muito recomendado)
  • Se você pode separar claramente seu projeto em isolados camadas / módulos e você quer ter certeza de que eles não podem cross-consumir internos membros. (também não é recomendado, porque você terá que decidir qual aspecto é o mais importante)

Se você acha que algumas partes do seu código-fonte pode ser reutilizável, ainda não criá-lo como um novo projeto. Basta esperar até que você realmente vai querer reutilizá-lo em outra solução e isolá-lo fora do projeto original como necessário. Programação não é um lego, reutilização é geralmente muito difícil e muitas vezes não vai acontecer como o planejado.

Respondeu 04/08/2008 em 23:45
fonte usuário

votos
8

Separando recursos em projetos muitas vezes é uma otimização de arquitetura YAGNI. Quantas vezes você já reutilizados desses projetos separados, realmente? Se não é uma ocorrência freqüente, você está complicando o seu desenvolvimento, construção, implantação e manutenção para reutilização teórica.

Eu prefiro muito mais a separação em pastas (usando namespaces apropriados) e refatoração para separar projetos quando você tem um caso de uso reutilização da vida real.

Respondeu 17/08/2008 em 18:35
fonte usuário

votos
6

Denny escreveu:

Pessoalmente, sinto que se o código reutilizável é dividido em projectos é mais simples de usar outros lugares do que se é apenas em pastas.

Eu realmente concordo com isso - se você pode reutilizá-lo, ele deve estar em um projeto separado. Com isso dito, é também muito difícil de reutilizar de forma eficaz :)

Aqui no SO, nós tentamos ser muito simples com três projetos:

  • projeto da Web MVC (que faz um bom trabalho de separar suas camadas em pastas por padrão)
  • projeto de banco de dados para controle de origem da nossa DB
  • Os testes de unidade contra MVC modelos / controladores

Eu não posso falar por todos, mas estou feliz com a forma como simples mantivemos-lo - realmente acelera o constrói ao longo!

Respondeu 04/08/2008 em 23:42
fonte usuário

votos
4

Eu costumo fazer um projeto para a GUI um projeto para a lógica de negócios de um projeto para acesso a dados e um projeto para testes de unidade.

Mas às vezes é prudente ter separação baseada em serviços (se você estiver usando uma arquitetura orientada a serviços), como autenticação, vendas, etc.

Eu acho que a regra de ouro que eu trabalho fora é que se você pode vê-lo como um componente que tem uma clara separação de preocupações, em seguida, um projeto diferente poderia ser prudente. Mas eu acho que as pastas contra projetos poderia ser apenas uma preferência ou filosofia.

Pessoalmente, sinto que se o código reutilizável é dividido em projectos é mais simples de usar outros lugares do que se é apenas em pastas.

Respondeu 04/08/2008 em 23:14
fonte usuário

votos
0

Eu realmente acho que é melhor dividir o projeto, bem como, mas tudo depende do tamanho do projeto e o número de pessoas trabalhando nisso.

Para projetos maiores, tenho projetos para

  • acesso a dados (modelos)
  • Serviços
  • a parte dianteira
  • testes

Eu tenho o modelo de Rob Connery e sua aplicação vitrine ... parece funcionar muito bem.

MVC-montra

Respondeu 16/09/2008 em 00:45
fonte usuário

votos
0

Se você vai para a criação de vários projetos, certifique-se todos os que adiciona código para a solução está plenamente consciente da intenção deles e fazer tudo o que puder para ajudá-los a compreender as dependências entre os projetos. Se você já tentou resolver a confusão quando alguém tem ido e acrescentou referências que não deveriam estar lá e fugiu com ela durante semanas você vai entender este ponto

Respondeu 10/09/2008 em 22:36
fonte usuário

votos
0

Separando o seu código-fonte em vários projetos só faz sentido se você ... ... Mais desenvolvedores envolvidos e você quer tratar seu trabalho como caixa preta consumível. (Não muito recomendado) ...

Por que não é este recomendado? Eu achei uma maneira muito útil para gerenciar uma aplicação com vários desenvolvedores trabalhando em diferentes partes. Faz checkins muito mais fácil, principalmente por fusões praticamente eliminando. Muito raramente duas devs ter que trabalhar no mesmo projeto ao mesmo tempo.

Respondeu 17/08/2008 em 18:19
fonte usuário

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more