Partager via


Noms d'espaces de noms

Mise à jour : novembre 2007

Le nom choisi pour un espace de noms doit indiquer les fonctionnalités offertes par les types de 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 se présente comme suit :

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

Par exemple, Microsoft.WindowsMobile.DirectX.

Ne vous servez pas des hiérarchies d'organisation comme base des noms de hiérarchies d'espaces de noms car les noms des groupes au sein des sociétés ont tendance à changer.

Le nom d'espace de noms est un identificateur durable et invariable. Dans la mesure où les organisations évoluent, vous devez éviter que des réorganisations ou des restructurations ne rendent le nom d'espace de noms obsolète.

Conflits entre noms de types et d'espaces de noms

Si vous choisissez un espace de noms ou un nom de type en conflit avec un nom existant, les utilisateurs de la bibliothèque devront qualifier les références aux éléments concernés. Cela ne doit pas se produire dans la plupart des scénarios de développement.

Certaines des instructions présentées dans cette section concernent plus particulièrement les catégories d'espaces de noms suivantes :

  • Espaces de noms de modèles d'application

  • Espaces de noms d'infrastructures

  • Espaces de noms principaux

  • Groupes d'espace de noms de technologies

Les espaces de noms dans un modèle d'application fournissent l'ensemble de fonctionnalités spécifiques à une classe d'applications. Par exemple, les types des espaces de noms System.Windows.Forms fournissent les fonctionnalités requises pour écrire des applications clientes Windows Forms. Les types des espaces de noms System.Web prennent en charge l'écriture d'applications serveur Web. Les espaces de noms des différents modèles d'application n'étant généralement pas utilisés dans la même application, les collisions de noms sont moins susceptibles d'affecter les développeurs qui utilisent votre bibliothèque.

Les espaces de noms d'infrastructures fournissent une assistance spécialisée et sont rarement référencés dans le code du programme. Par exemple, les types des espaces de noms *.Designer sont utilisés par les outils de développement de programme. Les espaces de noms *.Permissions constituent un autre exemple d'espaces de noms d'infrastructure. Il est peu probable que les collisions de noms avec les types des espaces de noms d'infrastructures puissent affecter les développeurs qui utilisent votre bibliothèque.

Les espaces de noms principaux sont les espaces de noms System.* (à l'exclusion des espaces de noms d'application et d'infrastructure). System et System.Text sont deux exemples d'espaces de noms principaux. Vous devez éviter dans la mesure du possible les collisions de noms avec les types des espaces de noms principaux.

Les espaces de noms qui relèvent d'une technologie particulière auront les mêmes identificateurs de premier et deuxième niveaux (Company.technology.*). Vous devez éviter des collisions de noms dans une technologie.

Instructions concernant les espaces de noms d'application

Ne donnez pas le même nom aux types des espaces de noms au sein d'un même modèle d'application.

Si, par exemple, vous écrivez une bibliothèque de contrôles spéciaux à utiliser par les développeurs d'applications Windows Forms, vous ne devez pas introduire un type nommé Checkbox dans la mesure où il existe déjà un type de ce nom pour le modèle d'application (CheckBox).

Instructions concernant les espaces de noms principaux

N'attribuez pas de noms de types susceptibles d'entrer en conflit avec un type des espaces de noms principaux.

Par exemple, n'utilisez pas Directory comme nom de type en raison du conflit avec le type Directory.

Instructions concernant les espaces de noms de technologies

N'introduisez pas de conflits de noms de types entre des types des espaces de noms de technologies et d'un espace de noms de modèles d'application (sauf si la technologie ne doit normalement pas être utilisée avec le modèle d'application).

Portions Copyright 2005 Microsoft Corporation. Tous droits réservés.

Portions Copyright Addison-Wesley Corporation. Tous droits réservés.

Pour plus d'informations sur les instructions de conception, consultez le livre « Framework Design Guidelines: Conventions, Idioms, and Patterns for Reusable .NET Libraries » de Krzysztof Cwalina et Brad Abrams, publié par Addison-Wesley, 2005.

Voir aussi

Autres ressources

Instructions de conception pour le développement de bibliothèques de classes

Instructions relatives aux noms