Domanda

Problema:

Per asp.net MVC app, ho ignorare la cartella di dominio e scrivere il modello di dominio in un progetto libreria separata.

Visual Studio, con un tale progetto di libreria, sarà spazio dei nomi di una cartella alla volta. Ad esempio, se il mio progetto di libreria si chiama:

ES.eLearning.Domain

e ho una cartella chiamata Servizi, sarà namespace automaticamente tutte le classi nelle Servizi cartella come:

ES.eLearning.Domain.Services

Che è cosa buona e giusta, ma mi sembra eccessivo. I miei progetti sono relativamente semplici e quindi non c'è alcuna possibilità di nome classe scontri. Anche se ci fosse, il compilatore raccoglierlo.

Così ho solo modificare manualmente i nomi dello spazio dei nomi per il nome del progetto, vale a dire:

ES.eLearning.Domain

In questo modo, quando si sviluppa il front-end, il progetto modello di dominio è solo una scatola nera che offre, bene, un modello di dominio. E non vedo il punto di accoppiare i nomi dello spazio dei nomi ai progetti della struttura di cartelle, invece di trattarlo come un blocco funzionale.

Quindi due domande sorgono:

  1. E 'questa cattiva pratica? Se sì, perché? Ricorda:. Questi sono di piccole e medie progetti

  2. C'è un modo per dire VS 2010 Come il nome della mia namespace?

Grazie

Nota: Nel mio denominazione del progetto, ES è il client, e-learning è l'applicazione, Dominio è il componente

PS: altre domande sulle convenzioni di denominazione dello spazio dei nomi che ho trovato su così indirizzo diverso problemi. Quindi non un duplicato per quanto posso determinare.

È stato utile?

Soluzione

Per evitare che una determinata cartella costringendo i suoi contenuti di utilizzare il nome della cartella come una parte dello spazio dei nomi, è possibile fare clic destro sulla cartella, selezionare "Proprietà" e quindi modificare "Namespace Provider" per False. Che avrebbe bisogno di essere fatto per tutte le cartelle a cui si applica, però, così non sono sicuro se questo è davvero risposto pienamente alla tua domanda.

Modifica :. Assomiglia ReSharper aggiunge questa funzionalità

Altri suggerimenti

lusinghe vostro IDE di utilizzare una convenzione di denominazione che soddisfa il vostro ambiente particolare, è buona pratica. È possibile utilizzare la casella spazio dei nomi predefinito nella scheda Applicazione delle proprietà del progetto per modificare lo spazio dei nomi che VS inserisce automaticamente nei file di classe.

Non sono sicuro se è possibile configurare in VS2010 per disabilitare questa .. ma io non l'avrebbe fatto.

Se il file di codice inserito nella cartella di dominio, il suo spazio dei nomi dovrebbe essere Company.Domain. Se il dominio ha sub cartella Servizi, spazio dei nomi dovrebbe essere Company.Domain.Services. E 'una buona (e che cosa è importante - comune, pratica).

È meglio attenersi alle regole, su di loro violazione:)

I miei suggerimenti per utilizzare finale singolare, mentre la denominazione namespace, le cartelle e le classi. Ad esempio

namespace ES.eLearning.Domain.Services

sarebbe preffered come

ES.eLearning.Domain.Service // <-- note missing "s"

E un altro esempio di utilizzo nel codice sorgente:

ES.eLearning.Domain.Constants.FileTypes.Text

potrebbe essere "migliore" per capire come

ES.eLearning.Domain.Constant.FileType.Text

Si tratta di tutte le preferenze personali e non è una regola. Solo una piccola cosa che potrebbe rendere il codice (namespace) più breve e più facile da leggere allo stesso tempo.

PS. D'altra parte ASP.NET MVC non segue questa "regola":

Content
Controllers
Models
Scripts
Views

Ma niente ti tiene "rinominare" loro nel codice sorgente in ogni caso.

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