Structure d’un projet backend .NET dans une solution Visual Studio

1. Structure générale d’un projet backend .NET

Ce dossier contient tous les fichiers principaux du projet :

MonApi/
├── Controllers/
├── Properties/
├── appsettings.json
├── appsettings.Development.json
├── MonApi.csproj
├── Program.cs
├── bin/
└── obj/

Chaque élément a un rôle précis dans l’organisation du projet.

Zoom : Organisation du dossier racine

Ce dossier racine contient la structure de base d’un projet .NET :

  • Controllers/ : Contient la logique des API (endpoints).
  • Properties/ : Fichiers de configuration pour le démarrage.
  • appsettings.json : Paramètres globaux.
  • .csproj : Définition du projet et des dépendances.
  • Program.cs : Point d’entrée et configuration de l’application.

2. Détail des contrôleurs (Controllers/)

Les contrôleurs gèrent les routes API et la logique métier :


[ApiController]
[Route("[controller]")]
public class WeatherForecastController : ControllerBase
{
    [HttpGet]
    public IEnumerable Get()
    {
        // Logique pour retourner des données météo
    }
}

Zoom : Fonctionnement d’un contrôleur

Un contrôleur est une classe C# qui hérite de ControllerBase ou Controller.

  • Les méthodes publiques (actions) correspondent à des routes HTTP (GET, POST, etc.).
  • Les attributs comme [HttpGet] précisent le type de requête accepté.

Exemple :


[HttpGet]
public IEnumerable Get()
{
    // Retourne la météo
}

3. Dossier Properties (Properties/)

Contient principalement launchSettings.json :


{
  "profiles": {
    "MonApi": {
      "commandName": "Project",
      "launchBrowser": true,
      "applicationUrl": "https://localhost:5001;http://localhost:5000",
      "environmentVariables": {
        "ASPNETCORE_ENVIRONMENT": "Development"
      }
    }
  }
}

Zoom : Configuration du lancement local

Ce fichier permet de personnaliser :

  • Le port d’écoute.
  • Les variables d’environnement.
  • Le lancement automatique du navigateur.

4. Fichier appsettings.json

Ce fichier JSON contient la configuration principale :


{
  "ConnectionStrings": {
    "DefaultConnection": "mongodb://localhost:27017/monappdb"
  },
  "Logging": {
    "LogLevel": {
      "Default": "Information"
    }
  }
}

Zoom : Paramètres globaux

Ce fichier définit :

  • Les chaînes de connexion à la base.
  • Les niveaux de logs.

Attention : ne pas y mettre de secrets sensibles. Utilisez des variables d’environnement.

5. Fichier MonApi.csproj

Fichier XML qui gère la configuration du projet et ses dépendances :



  

Zoom : Dépendances et configuration

Ce fichier :

  • Liste les packages NuGet (ex : MongoDB.Driver).
  • Indique le framework cible (ex : net8.0).
  • Gère les options de build.

6. Point d’entrée : Program.cs

Ce fichier configure et démarre l’application :


var builder = WebApplication.CreateBuilder(args);
builder.Services.AddControllers();
builder.Services.AddCors();

var app = builder.Build();

app.UseHttpsRedirection();
app.UseCors();

app.MapControllers();

app.Run();

Zoom : Exemple d’un Program.cs moderne

Ce fichier :

  • Configure CORS pour autoriser les requêtes externes.
  • Ajoute les services (contrôleurs, Swagger).
  • Active la documentation Swagger en mode dev.
  • Relie les contrôleurs à l’application.
  • Démarre le serveur.

7. Dossiers bin/ et obj/

Autres éléments possibles

Conclusion

Ce guide vous aide à comprendre la structure d’un projet .NET backend, avec ses composants clés et leur rôle.

Les sections "zoom" vous permettent d’approfondir chaque partie pour mieux maîtriser leur fonctionnement.