J'ai récemment refaçonné une application de taille moyenne et l'un des travaux consistait à diviser le code couramment utilisé en différents projets.Convention de dénomination de l'espace de noms préféré
Maintenant, permet de dire que la structure de l'espace de noms couramment utilisé est
Core.Interfaces
- pour l'application principale avec une interface de IFoo
et pour chaque ensemble spécialisé/externe/référencé i a décidé de faire une extension que, comme
Core.Interfaces.Html
avec une interface de IBar
l'assembly Core
de l'application principale est situé dans un projet nommé Core
avec un espace de noms par défaut de Core
tandis que pour l'assembly Html
j'ai fait un projet nommé HtmlCore
avec un espace de noms par défaut de Core
.
L'effet de résultat (et la raison pour laquelle j'ai choisi cette méthode particulière) est qu'une fois que vous avez fait référence à l'Assemblée Html
les déclarations using
ne doivent être mis à jour et l'effet net est
Core.Interfaces.IFoo fooIf;
Core.Interfaces.Html.IBar barIf;
ou avec un en utilisant la déclaration de Core.Interfaces
ci-dessus est transformé en
IFoo fooIf;
Html.IBar barIf;
Cette structure d'espace de noms implicite est un résultat direct de dépendances et cela nous a vraiment bien servis, car cela facilite grandement la maintenance des espaces de noms de projets et la seule chose que quelqu'un doit avoir est la référence à l'assemblage. La structure est similaire à ce que Microsoft fait déjà sur le framework .net.
La chose est que j'ai des doutes et (pour les projets futurs) J'envisage une structure d'espace de noms qui est explicite pour chaque ensemble comme:
Core.DataInterfaces
Html.Core.DataInterfaces
Ainsi, quelqu'un a travaillé avec la explicite la structure , les deux ou même quelque chose d'autre que je n'ai pas essayé? Je suis ouvert aux suggestions et je recherche la meilleure solution car la cible est de libérer du temps de maintenance et de confusion dans l'équipe pendant le développement.