Pergunta

Como você configura sua árvore de desenvolvimento .NET?Eu uso uma estrutura como esta:

-projectname
--config (where I put the configuration files)
--doc    (where I put all the document concerning the project: e-mails, documentation)
--tools  (all the tools I use: Nunit, Moq)
--lib    (all the libraries used by the solution: ninject or autofac)
--src
---app   (sourcefiles)
---test  (unittests)
solutionfile.sln
build.csproj

O sinal "-" marca os diretórios.

Acho muito importante ter uma boa estrutura nessas coisas.Você deve conseguir obter o código-fonte do sistema de controle de origem e, em seguida, criar a solução sem abrir o Visual Studio ou instalar bibliotecas de terceiros.

Alguma opinião sobre isso?

Foi útil?

Solução

Usamos um layout muito semelhante ao abordado na postagem do blog de JP Boodhoo intitulada Estrutura de diretório para projetos.

Outras dicas

Cirurgião de árvore é uma ferramenta que irá configurar uma árvore de diretórios para você, com todas as dependências necessárias e um esqueleto de arquivo nant.Nesse link, você também pode encontrar uma série de postagens de seu criador original, Mike Roberts, explicando algumas das escolhas deliberadas por trás da estrutura que o TreeSurgeon oferece, por exemplo.por que não há problema em ter duplicação entre lib e ferramentas, por que é importante ter todas as dependências presentes, etc.

Faz algum tempo que não o uso, então não me lembro se ainda concordo com todas as escolhas que ele faz, mas não acho que você possa errar muito com isso.

Usamos uma estrutura como esta:

  • CompanyNameOrCoreProjectName
    • Filial
      • Nome da Filial
        • CopyOfTrunk
    • Porta-malas
      • Área de Trabalho
      • Assemblies referenciados
      • Compartilhado
      • Soluções
      • Teste
      • Teias

Em seguida, certifique-se de que todos os arquivos de projeto/solução usem apenas caminhos relativos e que a ramificação funcione bem.Desktop/Webs são para projetos dos respectivos tipos, Teste é para qualquer projeto de teste de unidade, a pasta Soluções possui uma pasta para cada solução contendo apenas o arquivo da solução.ReferencedAssemblies contém todos os assemblies que não incluímos na solução (às vezes são projetos locais que simplesmente não queremos construir toda vez que construímos a solução ou assemblies de terceiros como rhinomocks ou log4net, etc.Compartilhado é para qualquer uma das bibliotecas principais (acesso a dados, lógica de negócios, etc.) usadas em diversas soluções.

No meu local de trabalho temos vários projetos, onde cada projeto recebe seu próprio subdiretório, assim:-proj1
--proj1.csproj
-proj2
--proj2.csproj
-proj3
--proj3.csproj
arquivo de solução.sln

O resto da sua configuração parece bom, mas acho que você deveria descobrir como incorporar vários projetos, por exemplo, uma biblioteca de código-fonte compartilhada entre várias soluções.

Se entendi sua estrutura corretamente, acho que você terá muitas duplicatas em sua árvore de desenvolvimento relacionadas a "ferramentas" e "lib".Muito provavelmente estas são ferramentas e bibliotecas externas que podem ser compartilhadas por diferentes projetos.

Algo que funciona bem para nós é:
solutionfile.sln
-src
--projectname
---config
---doc
---source files (structure representing namespaces)
-test
--testprojectname (usually, a test project per source project)
---unit test files (structure mirroing the structure in the source project)
-lib
--libraryname (containing the libraries)
-tools

Não tenho ferramentas dentro do projeto.As ferramentas estão em um compartilhamento de rede.Sim, o espaço em disco é barato hoje em dia, mas ...vamos :)

Também tenho uma pasta de script de banco de dados abaixo do nome do projeto (quando é um aplicativo orientado a dados)

Claro que não importa tanto como você está configurado, mas sim o fato de que um padrão lógico organizado seja utilizado para se adequar ao projeto e seguido com boa disciplina.Isso é útil quer você esteja sozinho ou em equipe.

Também usamos o TreeSurgeon e estamos muito felizes com isso.Nossa estrutura se parece com:

Filial

  • construir
  • biblioteca
  • fonte
    • <Vários diretórios SRC para aplicativos, testes, migrações de banco de dados, etc.)
  • ferramentas

Porta-malas

  • O mesmo que acima
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top