Skip to main content

Guide des bonnes pratiques : Namespaces en .NET 9

Vue d'ensemble

Les namespaces organisent le code en groupes logiques et évitent les conflits de noms. En .NET 9, la pratique moderne privilégie les file-scoped namespaces (déclaration au niveau du fichier). Cette approche moderne réduit l'indentation, améliore la lisibilité et suit les standards actuels de .NET 9.

✅ Ce qu'il FAUT faire

File-scoped namespace (Recommandé)


// ✅ Moderne et concis - un seul namespace par fichier

namespace NC.CAM.App.PortailClients.Domain;


public class Liasse
{
    public int Id { get; set; }
    public string Nom { get; set; }
}



public class PieceAttendue
{
    public int Id { get; set; }
    public string Type { get; set; }
}

Organisation avec usings globaux


// ✅ Dans GlobalUsings.cs

global using System;
global using System.Collections.Generic;
global using System.Linq;

// ✅ Dans votre fichier .cs
namespace NC.CAM.App.PortailClients.Application;

public class LiasseAppService
{
    // Pas besoin de répéter les usings standards
}

Conventions de nommage

Structure recommandée


// ✅ Format : [Entreprise].[Produit].[Module].[SousModule]
namespace NC.CAM.App.PortailClients.EntityFrameworkCore;

public class PortailClientsDbContext : DbContext
{
    // Code...
}

Alignement avec la structure des dossiers


// ✅ Fichier : src/NC.CAM.App.PortailClients.Domain/Entities/Liasse.cs

namespace NC.CAM.App.PortailClients.Domain.Entities;

public class Liasse
{
    // Le namespace reflète la structure physique
}

❌ Ce qu'il ne faut PAS faire

Namespace traditionnel avec accolades imbriquées


// ❌ Ancien style - ajoute un niveau d'indentation inutile

namespace NC.CAM.App.PortailClients.Domain
{
    public class Liasse
    {
        public int Id { get; set; }
        public string Nom { get; set; }
    }

    public class PieceAttendue
    {
        public int Id { get; set; }
        public string Type { get; set; }
    }
}

Résumé des bonnes pratiques

  1. Toujours utiliser file-scoped namespaces (; à la fin)

  2. Un seul namespace par fichier

  3. Aligner le namespace avec la structure des dossiers

  4. Utiliser les global usings pour les imports communs

  5. Suivre la convention : [Entreprise].[Produit].[Module]

  6. Éviter les namespaces imbriqués

Configuration .editorconfig


# Forcer l'utilisation de file-scoped namespaces

[*.cs]

csharp_style_namespace_declarations = file_scoped:warning