Spectre.Console für C# (.NET): Komplettes Tutorial mit Beispielen

Online Python-Trainer für Anfänger

Lernen Sie Python einfach ohne theoretische Überlastung. Lösen Sie praktische Aufgaben mit automatischer Überprüfung und schreiben Sie Code direkt im Browser.

Kurs starten

Spectre.Console für C# (.NET): Das komplette Tutorial

Spectre.Console ist eine leistungsstarke .NET-Bibliothek, die gewöhnliche Konsolenausgaben in visuell ansprechende und interaktive Erlebnisse verwandelt. Sie ermöglicht C#-Entwicklern, schöne, strukturierte und informative Kommandozeilen-Oberflächen (CLI) mit minimalem Aufwand zu erstellen. Statt langweiligem, monochromem Text erhalten Sie Unterstützung für Farben, Tabellen, Bäume, Fortschrittsbalken, Diagramme und sogar interaktive Eingabeaufforderungen.

Warum Spectre.Console? In der modernen Entwicklung werden Konsolenanwendungen häufig für DevOps-Tools, Automatisierungsskripte, Datenanalyse und Dienstprogramme eingesetzt. Nutzer erwarten dabei nicht nur Funktionalität, sondern auch Benutzerfreundlichkeit. Spectre.Console löst das Problem der "nackten" Ausgabe, macht Logs verständlicher und die Interaktion mit der Anwendung angenehmer. Besonders nützlich ist sie für professionelle CLI-Tools, bei denen Lesbarkeit und visuelle Hierarchie der Daten wichtig sind.

Die Bibliothek basiert auf dem Prinzip der Komposition und bietet eine Vielzahl von "Widgets", die kombiniert werden können. Sie wird von der Community aktiv unterstützt, verfügt über eine ausführliche Dokumentation und kommt in großen Projekten wie Cake Build, NuGet Client und dem .NET SDK zum Einsatz. Wenn Sie in C# entwickeln und Ihre Konsolenanwendung wie ein modernes Tool aussehen soll – Spectre.Console ist die richtige Wahl.

Installation

Spectre.Console wird über NuGet verteilt. Führen Sie einen der folgenden Befehle im Terminal oder in der Paket-Manager-Konsole aus:

# Über .NET CLI
dotnet add package Spectre.Console

# Über Package Manager Console (Visual Studio)
Install-Package Spectre.Console

# Oder über den NuGet Package Manager in Ihrer IDE

Fügen Sie nach der Installation using Spectre.Console; am Anfang Ihrer Codedatei hinzu.

Schnellstart

Ein minimales Arbeitsbeispiel, das die grundlegenden Funktionen demonstriert:

using Spectre.Console;

// Einfache farbige Nachricht
AnsiConsole.MarkupLine("[bold green]Hallo, Spectre.Console![/]");

// Tabelle
var table = new Table();
table.AddColumn("Name");
table.AddColumn("Alter");
table.AddRow("Anna", "30");
table.AddRow("Ben", "25");
AnsiConsole.Write(table);

// Fortschrittsbalken
AnsiConsole.Progress()
    .Start(ctx =>
    {
        var task = ctx.AddTask("[yellow]Verarbeitung...[/]");
        while (!task.IsFinished)
        {
            task.Increment(15);
            Thread.Sleep(200);
        }
    });

Dieser Code gibt eine farbige Begrüßung, eine Tabelle mit Daten und einen animierten Fortschrittsbalken aus.

Wichtige Methoden, Funktionen und Klassen

1. AnsiConsole.MarkupLine

Signatur: public static void MarkupLine(string markup)

Funktion: Gibt eine Zeichenkette mit Markup-Unterstützung zur Textgestaltung aus (Farben, Stile, Links).

AnsiConsole.MarkupLine("[bold yellow]Achtung![/] [red]Fehler[/] in Zeile [underline]42[/].");

2. AnsiConsole.Progress

Signatur: public static Progress Display(ProgressContext context) (über Fluent-API)

Funktion: Erstellt und zeigt einen interaktiven Fortschrittsbalken mit der Möglichkeit, mehrere Aufgaben hinzuzufügen.

AnsiConsole.Progress()
    .Columns(new TaskDescriptionColumn(), new ProgressBarColumn(), new PercentageColumn())
    .Start(ctx =>
    {
        var task1 = ctx.AddTask("[green]Datei 1 laden[/]");
        var task2 = ctx.AddTask("[blue]Datei 2 laden[/]");
        while (!task1.IsFinished || !task2.IsFinished)
        {
            task1.Increment(5);
            task2.Increment(3);
            Thread.Sleep(100);
        }
    });

3. Table

Signatur: public class Table : Renderable

Empfehlungen