Spectre.Console pour C# (.NET) : Guide complet
Spectre.Console est une bibliothèque .NET puissante qui transforme une sortie console ordinaire en quelque chose de visuellement attrayant et interactif. Elle permet aux développeurs C# de créer facilement des interfaces en ligne de commande (CLI) belles, structurées et informatives. Fini le texte monochrome ennuyeux : vous bénéficiez de la prise en charge des couleurs, des tableaux, des arbres, des barres de progression, des graphiques et même des invites interactives.
Pourquoi utiliser Spectre.Console ? Dans le développement moderne, les applications console sont souvent utilisées pour les outils DevOps, les scripts d'automatisation, l'analyse de données et les utilitaires. Les utilisateurs attendent non seulement des fonctionnalités, mais aussi du confort. Spectre.Console résout le problème de la sortie « brute » en rendant les journaux clairs et l'interaction avec l'application agréable. Elle est particulièrement utile pour créer des outils CLI professionnels où la lisibilité et la hiérarchie visuelle des données sont essentielles.
La bibliothèque est construite sur des principes de composition et offre un riche ensemble de « widgets » que vous pouvez combiner. Elle est activement maintenue par la communauté, dispose d'une documentation détaillée et est utilisée dans des projets majeurs comme Cake Build, NuGet Client et le SDK .NET. Si vous codez en C# et souhaitez que votre utilitaire console ressemble à un outil moderne plutôt qu'à une relique des années 80, Spectre.Console est le choix idéal.
Installation
Spectre.Console est distribuée via NuGet. Pour l'installer, exécutez l'une des commandes suivantes dans votre terminal ou la console du gestionnaire de packages :
# Via .NET CLI
dotnet add package Spectre.Console
# Via Package Manager Console (Visual Studio)
Install-Package Spectre.Console
# Ou via le gestionnaire de packages NuGet dans votre IDE
Après l'installation, ajoutez using Spectre.Console; en haut de votre fichier de code.
Démarrage rapide
Un exemple minimal fonctionnel illustrant les fonctionnalités de base :
using Spectre.Console;
// Message coloré simple
AnsiConsole.MarkupLine("[bold green]Bonjour, Spectre.Console ![/]");
// Tableau
var table = new Table();
table.AddColumn("Nom");
table.AddColumn("Âge");
table.AddRow("Alice", "30");
table.AddRow("Bob", "25");
AnsiConsole.Write(table);
// Barre de progression
AnsiConsole.Progress()
.Start(ctx =>
{
var task = ctx.AddTask("[yellow]Traitement en cours...[/]");
while (!task.IsFinished)
{
task.Increment(15);
Thread.Sleep(200);
}
});
Ce code affiche un message coloré, un tableau de données et une barre de progression animée.
Méthodes, fonctions et classes principales
1. AnsiConsole.MarkupLine
Signature : public static void MarkupLine(string markup)
Fonction : Affiche une chaîne avec prise en charge du balisage (markup) pour styliser le texte (couleurs, styles, liens).
AnsiConsole.MarkupLine("[bold yellow]Attention ![/] [red]Erreur[/] à la ligne [underline]42[/].");
2. AnsiConsole.Progress
Signature : public static Progress Display(ProgressContext context) (via l'API fluent)
Fonction : Crée et affiche une barre de progression interactive avec possibilité d'ajouter plusieurs tâches.
AnsiConsole.Progress()
.Columns(new TaskDescriptionColumn(), new ProgressBarColumn(), new PercentageColumn())
.Start(ctx =>
{
var task1 = ctx.AddTask("[green]Téléchargement fichier 1[/]");
var task2 = ctx.AddTask("[blue]Téléchargement fichier 2[/]");
while (!task1.IsFinished || !task2.IsFinished)
{
task1.Increment(5);
task2.Increment(3);
Thread.Sleep(100);
}
});
3. Table
Signature : public class Table : Renderable,
Aussi dans la bibliothèque
Travailler avec XML en C# (.NET) : Guide complet
Configuration des applications TypeScript : bibliothèques et outils
Génération de rapports PDF en Java : aperçu des bibliothèques et outils
Travailler avec S3 et les stockages cloud en Java : la bibliothèque AWS SDK