Domanda

Come configuri il tuo albero di sviluppo .NET?Io utilizzo una struttura come questa:

-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

Il segno "-" contrassegna le directory.

Penso che sia molto importante avere una buona struttura su queste cose.Dovresti essere in grado di ottenere il codice sorgente dal sistema di controllo del codice sorgente e quindi creare la soluzione senza aprire Visual Studio o installare librerie di terze parti.

Qualche idea su questo?

È stato utile?

Soluzione

Utilizziamo un layout molto simile a quello trattato nel post del blog di JP Boodhoo intitolato Struttura delle directory per i progetti.

Altri suggerimenti

TreeSurgeon è uno strumento che imposterà un albero di directory per te, con tutte le dipendenze richieste e uno scheletro di file nant.A quel link puoi anche trovare una serie di post sul blog del suo creatore originale, Mike Roberts, che spiegano alcune delle scelte deliberate dietro la struttura che TreeSurgeon ti offre, ad es.perché va bene avere una duplicazione tra lib e tools, perché è importante avere tutte le dipendenze presenti, ecc.

Non lo uso da un po', quindi non ricordo se sono ancora d'accordo con tutte le scelte che fa, ma non credo che si possa sbagliare molto.

Usiamo una struttura come questa:

  • NomeAziendaONomeProgettoCore
    • Ramo
      • Nomeramo
        • CopyOfTrunk
    • Tronco
      • Desktop
      • Assemblee di riferimento
      • Condiviso
      • Soluzioni
      • Test
      • Reti

Quindi assicurati solo che tutti i file di progetto/soluzione utilizzino solo percorsi relativi e che la ramificazione funzioni bene.Desktop/Web sono per progetti dei rispettivi tipi, Test è per qualsiasi progetto di test unitario, La cartella Soluzioni contiene una cartella per ogni soluzione con solo il file della soluzione al suo interno.ReferencedAssemblies contiene tutti gli assembly che non includiamo nella soluzione (a volte si tratta di progetti locali che semplicemente non vogliamo creare ogni volta che creiamo la soluzione o assembly di terze parti come rhinomocks o log4net, ecc.Condiviso è per qualsiasi libreria principale (accesso ai dati, logica aziendale e così via) utilizzata in diverse soluzioni.

Nel mio posto di lavoro abbiamo più progetti, in cui ogni progetto ottiene la propria sottodirectory, in questo modo:-prog1
--proj1.csproj
-prog2
--proj2.csproj
-prog3
--proj3.csproj
filedisoluzione.sln

Il resto della configurazione sembra a posto, ma penso che dovresti capire come incorporare più progetti, ad esempio una libreria di sorgenti condivisa tra più soluzioni.

Se ho capito bene la tua struttura, penso che avrai molti duplicati nel tuo albero di sviluppo relativi a "tools" e "lib".Molto probabilmente si tratta di strumenti e librerie esterni che potrebbero essere condivisi da diversi progetti.

Qualcosa che funziona bene per noi è:
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

Non ho strumenti all'interno del progetto.Gli strumenti si trovano in una condivisione di rete.Sì, lo spazio su disco costa poco al giorno d'oggi, ma...Dai :)

Inoltre ho una cartella di script di database sotto il nome progetto (quando si tratta di un'app basata sui dati)

Naturalmente non conta tanto come sei impostato, ma il fatto che venga utilizzato uno standard logico organizzato per adattarsi al progetto e rispettato con buona disciplina.Questo è utile sia che tu sia da solo o in squadra.

Usiamo anche TreeSurgeon e ne siamo abbastanza soddisfatti.La nostra struttura è simile a:

Ramo

  • costruire
  • lib
  • src
    • <varie directory SRC per app, test, migrazioni DB, ecc.)
  • utensili

Tronco

  • Come sopra
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top