Modèle de domaine conventions de nommage Namespace
-
10-10-2019 - |
Question
Problème:
, j'ignore pour asp.net mvc le dossier des applications de domaine et écrire le modèle de domaine dans un projet de bibliothèque séparée.
Visual Studio, avec un tel projet de bibliothèque, sera l'espace de noms sur un dossier par dossier. Par exemple, si mon projet de bibliothèque est appelée:
ES.eLearning.Domain
et j'ai un dossier appelé Services, il namespace automatique toutes les classes dans les services que le dossier:
ES.eLearning.Domain.Services
Ce qui est bien beau, mais me semble exagéré. Mes projets sont relativement simples et donc il n'y a aucune chance de conflits de noms de classe. Même s'il y avait, le compilateur ramasser.
Je viens donc de modifier manuellement les espaces de noms au nom du projet, à savoir:
ES.eLearning.Domain
De cette façon, lors du développement de l'avant, le projet de modèle de domaine est juste une boîte noire qui offre, bien, un modèle de domaine. Et je ne vois pas le point de couplage des espaces de noms aux projets structure de dossier, par opposition à le traiter comme un bloc fonctionnel.
Alors deux questions se posent:
-
Est-ce une mauvaise pratique? Si oui, pourquoi? Rappelez-vous:. Ce sont des projets de petite taille de
-
Est-il possible de dire VS 2010 comment nommer mes namespaces?
Merci
Remarque: Dans mon nommage du projet, ES est le client, l'apprentissage en ligne est l'application, le Domaine est le composant
PS: d'autres questions sur les conventions de nommage d'espace de noms que j'ai trouvé sur l'adresse SO questions différentes. Donc pas un doublon pour autant que je peux déterminer.
La solution
Pour éviter un dossier particulier de forcer son contenu à utiliser le nom du dossier en tant que partie d'espace de noms, vous pouvez cliquer droit sur le dossier, choisissez « Propriétés », puis changer « fournisseur namespace » à False
. Cela doit être fait à tous les dossiers auxquels il applique, donc je ne suis pas sûr que ce soit vraiment répondu à votre question entièrement.
Modifier :. Ressemble ReSharper ajoute cette fonctionnalité
Autres conseils
votre IDE amadouer à utiliser une convention de dénomination qui convient à votre environnement particulier est une bonne pratique. Vous pouvez utiliser la zone d'espace de noms par défaut dans l'onglet Application des propriétés du projet pour modifier l'espace de noms que VS automatiquement insère dans vos fichiers de classe.
Je ne suis pas sûr si possible de configurer dans VS2010 pour désactiver cette .. mais je ne ferais pas ça.
Si votre fichier de code placé dans le dossier de domaine, son espace de noms doit être Company.Domain. Si le domaine a sous-dossier Services, espace de noms doit être Company.Domain.Services. Il est un bon (et ce qui est important - commun, pratique).
Vous mieux coller aux règles, sur les violer:)
Mes suggestions à utiliser fin singulier tout en nommant espaces de noms, des dossiers et des classes. Par exemple
namespace ES.eLearning.Domain.Services
serait preffered comme
ES.eLearning.Domain.Service // <-- note missing "s"
Et un autre exemple d'utilisation dans le code source:
ES.eLearning.Domain.Constants.FileTypes.Text
pourrait être "mieux" pour comprendre que
ES.eLearning.Domain.Constant.FileType.Text
Il est toutes les préférences personnelles et il est pas une règle. Juste une petite chose qui pourrait rendre le code (namespace) plus court et plus facile à lire en même temps.
PS. D'autre part ASP.NET MVC ne suit pas cette « règle »:
Content
Controllers
Models
Scripts
Views
Mais rien ne vous empêche "renommer" eux dans le code source de toute façon.