2009-06-15 16 views
28

Stavamo pensando di organizzare il nostro progetto di BIG in questo modo:Convenzione di denominazione delle soluzioni di Visual Studio e proietta

 
\trunk 
    [CompanyName] 
    [Product1] 
     [Project1] 
      CompanyName.Product1.Project1.csproj 
     [Project2] 
      CompanyName.Product1.Project2.csproj 
     CompanyName.Product1.sln 
    [Product2] 

Stavamo cercando di seguire la raccomandazione di Microsoft che i nomi dei namespace seguono struttura delle cartelle, ma ci sono eventuali svantaggi per fare in questo modo? Qual è la convenzione di denominazione per soluzioni e progetti che si applicano?

risposta

9

Sembra molto bello se me lo chiedi. Soprattutto nominando i tuoi progetti con il loro nome completo, compresa la parte dello spazio del nome completo. Ho trovato questo utile quando ci sono numerosi progetti, soprattutto se ci sono progetti simili su diversi prodotti.

Come e se dividere su prodotto e progetto (dove presumo che il progetto sia più simile a un'applicazione che a un progetto di soluzione) è molto inferiore alle dimensioni della vostra organizzazione, è il make-up e le vostre preferenze.

1

Sembra preso dal libro di scuola. Di solito è come vengono impostate le mie soluzioni, e ho trovato che funziona abbastanza bene nel corso degli anni.

0

Mi sembra buono.

È un punto da notare che, per impostazione predefinita, lo spazio dei nomi predefinito in un progetto di Visual Studio è solo il nome del progetto. Sicuramente questo indica che nominare i tuoi progetti come i tuoi spazi dei nomi è "la Via di Visual Studio".

Le soluzioni prendono il nome più naturale del prodotto/progetto. Come tu indichi.

1

Per quanto riguarda i nomi di file, preferisco che il nome del file di progetto corrisponda al nome dell'assembly di output perché rende molto più facile sapere cosa produce cosa. Fare un elenco di directory è molto più veloce della ricerca dei file csproj in un albero per quello che produce l'assembly a cui tengo.

Non mi preoccupo dei file di soluzione perché non influenzano il nostro ambiente di costruzione, quindi finisco per creare il mio per avere l'ambito esatto che voglio (e gli elementi specifici per soluzione, come i metadati di test, quello che voglio).

Per quanto riguarda la struttura delle cartelle, non mi preoccupo troppo se le cartelle che portano verso il basso i file di progetto corrispondono agli spazi dei nomi. Voglio che il mio codice sieda su disco in un modo che abbia più senso per il progetto. A volte questo significa che il codice di test e il codice prodotto si trovano nelle directory di pari livello, a volte significa che sono molto più distanti tra loro. A volte c'è uno spazio dei nomi a cui molti team hanno contribuito (non sostenendo che il design, solo una realtà) - ma quei team vogliono vivere nelle proprie cartelle per qualsiasi motivo.

Non dimenticare l'importanza delle strategie di controllo delle versioni nella progettazione generale del progetto. I confini dell'azienda e del prodotto possono essere succursali e pertanto non dovrebbero necessariamente essere rappresentati come directory su disco.

Non lasciare che questa sia una fonte di paralisi dell'analisi però. Fai una scelta ragionevole. Usa il controllo della versione. Puoi sempre cambiare dopo se hai torto.

3

Un'alternativa che ho usato è di avere tutti i miei file di soluzione nella stessa directory.

\trunk 
    [CompanyName] 
    CompanyName.Product1.sln 
    CompanyName.Product2.sln 
    [Product1] 
     [Project1] 
      CompanyName.Product1.Project1.csproj 
     [Project2] 
      CompanyName.Product1.Project2.csproj 
    [Product2] 
     [Project3] 
      CompanyName.Product2.Project3.csproj 
Problemi correlati