Monorepo avec C# : organisation du code pour débutants

Formateur Python en ligne pour débutants

Apprenez Python facilement sans surcharge théorique. Résolvez des tâches pratiques avec vérification automatique et écrivez du code directement dans le navigateur.

Start Course

Monorepo avec C# : organisation du code pour débutants



Dans le développement moderne en C# (.NET), tôt ou tard se pose la question : comment organiser le code lorsque vous avez plusieurs projets — une bibliothèque de classes, une API web, une application console, des tests ? De nombreux développeurs débutants créent des dépôts séparés pour chaque partie, ce qui entraîne une confusion dans les versions et les dépendances. L'alternative — le monorepo. Dans cet article, nous allons voir ce qu'est un monorepo, comment le configurer en C# et pourquoi il simplifie la vie des débutants.



Qu'est-ce qu'un monorepo ?



Un monorepo est une approche où tout le code de plusieurs projets liés est stocké dans un seul dépôt Git. Par exemple, vous pouvez avoir une bibliothèque commune MyApp.Shared, une application web MyApp.Web et un outil console MyApp.Cli — tout dans un seul dossier, avec un seul fichier .sln.



Dans le contexte de C# (.NET), un monorepo signifie généralement une seule solution Visual Studio contenant plusieurs projets. C'est particulièrement pratique pour :

  • Le partage de code (via des références de projet, plutôt que des paquets NuGet).
  • Un processus unique de build et de CI/CD.
  • La simplification de la gestion des versions (une branche — tous les changements immédiatement).


Avantages du monorepo pour les débutants



Si vous commencez tout juste à apprendre C#, le monorepo vous aidera à éviter les erreurs typiques :

  • Simplicité de navigation — tous les projets au même endroit, pas besoin de basculer entre les dépôts.
  • Lien instantané — une modification dans la bibliothèque est immédiatement visible dans les projets dépendants.
  • Style unifié — vous pouvez configurer un seul .editorconfig ou Directory.Build.props pour tous les projets.
  • Exécution facile des tests — une seule commande dotnet test vérifie toute la solution.


Création de la structure du monorepo : guide pas à pas



Étape 1. Créer le dossier racine et la solution



Ouvrez le terminal et exécutez :

mkdir MyMonorepocd MyMonorepodotnet new sln -n MyApp


Vous avez maintenant un fichier MyApp.sln — c'est le point d'entrée pour Visual Studio ou Rider.



Étape 2. Ajouter les projets



Créons trois projets : une bibliothèque de classes, une API web et une application console. Pour plus de commodité, plaçons-les dans un sous-dossier src :

mkdir srccd srcdotnet new classlib -n MyApp.Shareddotnet new webapi -n MyApp.Webdotnet new console -n MyApp.Clicd ..


Maintenant, lions-les à la solution :

dotnet sln add src/MyApp.Shared/MyApp.Shared.csprojdotnet sln add src/MyApp.Web/MyApp.Web.csprojdotnet sln add src/MyApp.Cli/MyApp.Cli.csproj


Étape 3. Configurer les dépendances entre les projets



Supposons que MyApp.Web et MyApp.Cli utilisent les classes de MyApp.Shared. Au lieu de publier la bibliothèque sur NuGet, ajoutez simplement une référence de projet :

dotnet add src/MyApp.Web/MyApp.Web.csproj reference src/MyApp.Shared/MyApp.Shared.csprojdotnet add src/MyApp.Cli/MyApp.Cli.csproj reference src/MyApp.Shared/MyApp.Shared.csproj


Maintenant, dans le fichier MyApp.Web.csproj, une section apparaîtra :

<ItemGroup>  <ProjectReference Include="..\\MyApp.Shared\\MyApp.Shared.csproj" /></ItemGroup>


Étape 4. Écrire le code commun



Dans le projet MyApp.Shared, créons une classe simple :

// src/MyApp.Shared/GreetingService.csnamespace MyApp.Shared;

public class GreetingService{ public string GetGreeting(string name) => $"Bonjour, {name} ! Bienvenue dans le monorepo.";}


Maintenant, utilisons-la dans l'application console :

// src/MyApp.Cli/Program.csusing MyApp.Shared;                

Blogs

Book Recommendations