Earn More by Sharing What You Love
Do you create content for developers working with .NET, C#, Java, Python, or Node.js? Turn your expertise into extra income!

Tim Corey
9m 44s
Wenn Sie als .NET-Entwickler schöne Konsolenanwendungen erstellen möchten, bietet die Spectre.Console C#-Bibliothek eine benutzerfreundliche und leistungsstarke Möglichkeit, Ihre Terminalschnittstellen zu erweitern. In seiner Spectre.Console-Reihe bietet Tim Corey eine schrittweise Anleitung, die von der anfänglichen Einrichtung bis zur Verwendung der wichtigsten Funktionen der Bibliothek wie Fortschrittsbalken, Tabellen, interaktive Eingabeaufforderungen und sogar ASCII-Bilder reicht.
In diesem Artikel folgen wir Tims Video zu "Initial Setup and Best Practices - Spectre Console Series", wobei wir seinen genauen Ablauf und seine Erkenntnisse verwenden. Sie lernen, wie Sie das NuGet-Paket hinzufügen, Ihre Konsolenanwendung in Visual Studio konfigurieren und häufige Fallstricke bei der Arbeit mit dem Textstyling und den Funktionen des aktuellen Terminals vermeiden.
Fangen wir an!
Tim beginnt mit einem neuen .NET-Projekt unter Verwendung von .NET 9. Innerhalb von Visual Studio navigiert er zum NuGet-Paketmanager und sucht nach "Spectre". Das Ziel ist die Installation des Spectre.Console-Pakets - nicht zu verwechseln mit CLI- oder JSON-Varianten.
Obwohl die derzeitige Version 0.50.0 ist, versichert uns Tim, dass die Bibliothek ausgereift und produktionsreif ist, auch wenn sie nicht als 1.0 gekennzeichnet ist. Es handelt sich um eine .NET-Bibliothek, die es einfacher macht, schöne, strukturierte Ausgaben im Terminal zu erstellen.
Nach der Installation fügt er die Richtlinie am Anfang der Datei ein:
using Spectre.Console;Imports Spectre.ConsoleDies ermöglicht den Zugriff auf Kernfunktionen wie AnsiConsole.MarkupLine, Fortschrittsanzeigen und interaktive Eingabeaufforderungen.
Um zu überprüfen, ob alles funktioniert, schreibt Tim eine einfache Ausgabe mit dem Auszeichnungssystem von Spectre:
AnsiConsole.MarkupLine("[red bold]Hello World[/]");AnsiConsole.MarkupLine("[red bold]Hello World[/]")Dies ersetzt die einfache Console.WriteLine() durch eine viel flexiblere Ausgabeoption, die Stile wie Fett, Kursiv, Unterstrichen und Farbe unterstützt. In diesem Beispiel wird fettgedruckter roter Text verwendet, um zu zeigen, wie Spectre.Console die Erstellung schöner Konsolenanwendungen erleichtert.
Tim fügt zwei weitere Zeilen hinzu: ein normales Hello World und eine mit einem langsamen Blinkeffekt unter Verwendung der Auszeichnungsfunktionen von Spectre. Diese zeigen, wie die Bibliothek animierte Spinner und dynamischen Text anzeigen kann - ein großartiges Merkmal für langlaufende Aufgaben und Statuskontrollen.
Sie können Stile verwenden wie:
[bold green underline]Erfolg[/]
[italic yellow]Laden...[/]
[blink]Bitte warten...[/]
Da diese Optionen Unicode-Zeichen unterstützen, eignet sich Spectre.Console ideal für die ansprechende Darstellung von Informationen - ganz ohne GUI-Frameworks.
Tim strukturiert den Code, indem er die aktuelle Lektion mit einem Kommentar markiert:
// Lesson 2: Initial Setup' Lesson 2: Initial SetupDiese Struktur hilft, das Projekt über mehrere Lektionen hinweg aufrechtzuerhalten. Er fügt außerdem hinzu:
Console.ReadLine();
AnsiConsole.Clear();Console.ReadLine()
AnsiConsole.Clear()Dadurch wird die Ausgabe angehalten, damit der Benutzer das Ergebnis sehen kann, und das Terminal wird nach dem Drücken der Eingabetaste gelöscht, damit die Schnittstelle für den nächsten Durchlauf sauber bleibt.
Anschließend erklärt Tim, wie sich die Fähigkeiten des aktuellen Terminals auf die Ausgabe von Spectre.Console auswirken. Er unterscheidet zwischen:
Shell (z. B. PowerShell oder CMD): Der Prozessor für Befehle.
Terminal (z. B. Windows-Terminal): Der visuelle Container, der Shell-Ausgaben anzeigt.
Diese Unterscheidung ist wichtig, da Spectre.Console auf das Terminal angewiesen ist, um Stile darzustellen. Wenn Ihr Terminal blinkenden oder fettgedruckten Text nicht unterstützt, sehen Sie möglicherweise nicht die erwarteten Ergebnisse - selbst wenn Ihr Code korrekt ist.
Um Textstyling-Funktionen wie Fettdruck, Unterstreichung und Farben zu aktivieren, führt Tim durch die Windows-Terminal-Einstellungen:
Schriftart: Cascadia Code, der moderne Konsolenfunktionen wie Fettdruck, Unicode und ASCII-Bilder unterstützt.
Textformatierung: Wechseln Sie unter Textformatierung → Intensiver Textstil von Helle Farben zu Fettschrift.
Diese Konfigurationen stellen sicher, dass Ihre Spectre.Console-Anwendung fetten, kursiven, blinkenden und farbigen Text wie vorgesehen anzeigen kann.
Wenn Ihre blinkenden Stile nicht funktionieren, empfiehlt Tim, die Einstellungen für die Barrierefreiheit von Windows zu überprüfen:
Gehe zu Barrierefreiheit → Visuelle Effekte
Aktivieren von Animationseffekten
Andernfalls wird die Konsole keine animierten Spinner oder blinkenden Text darstellen. Diese kleinen Änderungen machen einen großen Unterschied, wenn Sie versuchen, den Fortschritt anzuzeigen oder den Status in Ihrer App zu markieren.
Um sicherzustellen, dass alles korrekt abläuft, kopiert Tim den vollständigen Pfad zu seinem .NET-Projekt, navigiert über die Befehlszeile dorthin und führt es aus:
dotnet run
Dies ist nützlich, um zu testen, wie sich verschiedene Shells verhalten. PowerShell kann zum Beispiel Fortschrittsbalken anders anzeigen als Git Bash oder CMD.
Hier können Sie auch die Funktionen der automatischen Erkennung erkunden und mit dem Rendering experimentieren:
Eine neue Tabelle mit var table = new Table();
Ein horizontales Balkendiagramm mit var chart = new BarChart();
Auch tabellarische Daten oder ASCII-Bilder zu dekorativen Zwecken
Tim ermutigt dazu, verschiedene Ausgaben auszuprobieren, die in zukünftigen Lektionen behandelt werden.
Zum Abschluss der Einführung weist Tim darauf hin, dass Spectre.Console stark von der hervorragenden, in Python geschriebenen Rich-Bibliothek inspiriert ist. Er versichert, dass diese .NET-Bibliothek vollständig gerendert werden kann:
Gestalteter Text
Interaktive Eingabeaufforderungen
Parsen von Befehlszeilenargumenten
Status-Indikatoren
Und unterstützt sogar Unit-Tests und Dependency Injection
Ganz gleich, ob Sie Befehlszeilenargumente mit dem CommandContext-Kontext verarbeiten oder die öffentliche Klasse Settings verwenden, um Benutzeroptionen zu definieren - Spectre.Console passt sich der Komplexität Ihres Projekts an.
Wie Tim Corey in seinem Video zeigt, ist Spectre.Console eine leistungsstarke Bibliothek, die C#-Konsolenanwendungen schön und interaktiv macht. Von der Einrichtung in Visual Studio bis hin zum Optimieren des Terminals für das richtige Rendering ist jeder Schritt entscheidend, um das volle Potenzial dieses Tools zu erschließen.
Ganz gleich, ob Sie den Fortschritt anzeigen, tabellarische Daten ausgeben, ASCII-Bilder verwenden oder einfach die Befehlszeileninteraktion verbessern möchten, Spectre.Console ist die richtige Bibliothek für Sie. Mit einer durchdachten Konfiguration und einem Verständnis Ihres Terminals werden Sie in der Lage sein, professionelle Konsolenanwendungen direkt in .NET zu erstellen.
Den vollständigen Quellcode und weitere Tutorials finden Sie auf IAmTimCorey.com. Dort können Sie die Spectre.Console-Serie fortsetzen, um die Integration in Ihr nächstes Projekt zu vertiefen.
Do you create content for developers working with .NET, C#, Java, Python, or Node.js? Turn your expertise into extra income!
Join our newsletter, you’ll get exclusive access on article updates. We value your privacy