2010-11-18 20 views
1

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.

Répondre

1

Organisez vos espaces de noms comme bon vous semble pour vos projets. Les espaces de noms sont destinés à la séparation logique pour éviter les collisions de noms, mais sont évidemment parfaits pour organiser votre code. Rappelez-vous, vous pouvez toujours donner un nom aux alias.