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:

  1. Est-ce une mauvaise pratique? Si oui, pourquoi? Rappelez-vous:. Ce sont des projets de petite taille de

  2. 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.

Était-ce utile?

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.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top