web-dev-qa-db-fra.com

conventions de dénomination des espaces de noms

Pour ceux d'entre vous qui écrivent des composants réutilisables, quelle est selon vous la meilleure pratique si vous étendez les fonctionnalités du framework .NET?

Par exemple, je crée une bibliothèque Pop3 pour le moment car elle n'existe pas dans .NET. Dois-je créer un espace de noms personnalisé ou dois-je utiliser System.Net.Mail?

49
Vince Panuccio

D'après les Consignes de nommage des espaces de noms :

La règle générale pour nommer les espaces de noms consiste à utiliser le nom de l'entreprise suivi du nom de la technologie et éventuellement de la fonctionnalité et de la conception comme suit. Copier le code

CompanyName.TechnologyName[.Feature][.Design]

Généralement, c'est une très mauvaise pratique de commencer à inclure des choses dans l'espace de noms par défaut d'un framework ou d'une bibliothèque. Cela peut créer de la confusion quant à savoir si un nouvel espace de noms fait partie de la bibliothèque existante qui fait partie d'un framework qui est distribué à tout le monde, ou fait partie d'un framework personnalisé qui a été ajouté par quelqu'un d'autre.

En outre, la convention de dénomination tente d'éviter les collisions d'espace de noms en ayant des identificateurs uniques tels que CompanyName. Cela réduit également la confusion et les problèmes liés à la source de la nouvelle bibliothèque.

Ce n'est pas seulement une chose Microsoft, mais dans le Java aussi. Les espaces de noms en Java, appelés "packages" ont le convention suivante :

Le préfixe d'un nom de package unique est toujours écrit en minuscules ASCII lettres et doit être l'un des noms de domaine de premier niveau, actuellement com, edu, gov, mil, net, org, ou l'un des codes anglais à deux lettres identifiant les pays comme spécifié dans la norme ISO 3166, 1981.

Les composants suivants du nom du package varient selon les propres conventions de dénomination internes d'une organisation. De telles conventions peuvent spécifier que certains composants de nom de répertoire sont des noms de division, de service, de projet, de machine ou de connexion.

Donc, si j'avais un logiciel super génial, ça pourrait être dans le net.coobird.superawesomesoftware paquet.

Et en utilisant des noms de packages qui contiennent la valeur par défaut Java., javax., com.Sun. les packages sont un gros no-no.

63
coobird

Consultez également l'article MSDN suivant pour obtenir des instructions sur la dénomination des espaces de noms

Noms des espaces de noms

Le nom choisi pour un espace de noms doit indiquer la fonctionnalité rendue disponible par les types dans l'espace de noms. Par exemple, l'espace de noms System.Net.Sockets contient des types qui permettent aux développeurs d'utiliser des sockets pour communiquer sur des réseaux.

Le format général d'un nom d'espace de noms est le suivant:

<Company>.(<Product>|<Technology>)[.<Feature>][.<Subnamespace>]

Par exemple, Microsoft.WindowsMobile.DirectX.

16
akjoshi