2009-09-07 15 views
10

Ho un progetto chiamato Dati che è un livello dati. In questo progetto, tutti i file si trovano nella cartella principale. Ho enumerazioni, POCO, repository, classi parziali e così via.C# Convenzioni di denominazione della cartella progetto

Se voglio spostare quei file in sottocartelle, quale sarebbe il nome della cartella preffered per ogni cartella? C'è qualche convenzione?

La cartella "Archivi" è piuttosto ovvia, ma dove dovrei tenere le POCO e le enumerazioni?

Grazie

+2

Sebbene non sia direttamente correlato alla domanda, è consigliabile prendere in considerazione la possibilità di rinominare il progetto in qualcosa di più significativo e in conformità con le Linee guida per la progettazione di framework. Passiamo ora alla tua domanda: l'FDG fornisce anche consigli su quando e come strutturare i sub namespace. http://stackoverflow.com/questions/1389458/c-project-folder-naming-conventions/1389507#1389507 –

risposta

5

ho tendono ad utilizzare le cartelle di progetto come un modo di separare sub namespace. Quindi nel tuo caso, forse una cartella denominata Repository, che ha classe nello spazio dei nomi Data.Repositories. Nota, per le classi parziali, ogni file deve essere nello stesso spazio dei nomi.

2

Il prectice è dividere le entità in cartelle in base al modello di oggetto, non in base al tipo.

1

Se non lo è chiaro come raggruppare le classi in base all'utilizzo o al significato del modello oggetto, è sufficiente lasciarle tutte in un'unica cartella. L'utilizzo delle sottocartelle non fornisce valori se non organizzano le classi in modo significativo.

Dividere le cartelle per tipo, ad es. elenchi, POCO, repository, classi parziali ecc. non sono probabilmente utili.

È possibile che si desideri utilizzare una sottocartella per il codice generato che non deve essere modificato.

Inoltre, è possibile avere cartelle all'interno di Solution Explorer che non fanno parte del file system. Dato quanto è costoso (nel tempo) in alcuni sistemi di controllo del codice sorgente spostare file tra le directory, prenderei in considerazione l'idea di iniziare semplicemente usando le cartelle di msdev finché non si è chiari sulla struttura che si desidera.

Non c'è bisogno mettere ogni censimento nel proprio file, se un'enumerazione è solo usata da una classe, è valido per metterlo nello stesso file della classe. Ad esempio, l'enumerazione di PersonSex può essere inserita nel file person.cs. Allo stesso modo se hai un gran numero di piccole e classi strettamente correlate, potresti metterle nello stesso file.

10

I (attualmente - modifiche sulla base del progetto) tendono a utilizzare questo approccio quando si nomina assemblaggi/progetti/spazi dei nomi in un progetto di stile/Web SAAS)

  • CompanyName.
    • ProductName.
      • Dati.
      • Affari. (dati di riferimento)
      • Modello. (POCO e interfacce - a cui fa riferimento tutto)
      • Servizi. (Livello di servizio WCF)
      • ServiceClient. (a cui fanno riferimento i client Web)
      • Web. (livello aziendale client Web)
        • ViewModel. (Modello specifico view)
        • {cliente di fronte segmento di prodotto} [Commercio, CMS, CRM, reporting, ecc]

Per spiegare il/Servizio Clienti servizi .. . Uso un IoC (attualmente StructureMap) che consente al mio WebClient di parlare direttamente con il livello aziendale o di essere reindirizzato per parlare attraverso il ServiceClient tramite i servizi al livello aziendale. Ciò mi dà la flessibilità di implementare il mio livello di app nelle mie applicazioni Web o di distribuire parti del mio livello aziendale (livello app) in server diversi mediante i principi WCF/SOA.

Problemi correlati