Zum Fußzeileninhalt springen
Iron Academy Logo
C#-Anwendung
C#-Anwendung

Andere Kategorien

Erste Schritte mit Spectre.Console in C#: Einfach schöne Konsolenanwendungen erstellen - mit Tim Corey

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!

Installation von Spectre.Console über NuGet Package Manager

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;
using Spectre.Console;

Dies ermöglicht den Zugriff auf Kernfunktionen wie AnsiConsole.MarkupLine, Fortschrittsanzeigen und interaktive Eingabeaufforderungen.

Erstellen Ihrer ersten gestalteten Konsolenausgabe

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.

Demonstration von Textgestaltung und animierten Effekten

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 - eine großartige Funktion für lang laufende 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.

Strukturierung der Konsolenanwendung mit Setup-Tags

Tim strukturiert den Code, indem er die aktuelle Lektion mit einem Kommentar markiert:

// Lesson 2: Initial Setup
// Lesson 2: Initial Setup

Diese 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.

Unterschiede zwischen Terminal und Shell verstehen

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.

Schriftart und Anzeigeeinstellungen in Windows Terminal konfigurieren

Um Textstyling-Funktionen wie Fettdruck, Unterstreichung und Farben zu aktivieren, führt Tim durch die Windows-Terminal-Einstellungen:

  1. Schriftart: Cascadia Code, der moderne Konsolenfunktionen wie Fettdruck, Unicode und ASCII-Bilder unterstützt.

  2. 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.

Behebung von Blinkproblemen über die Bedienungshilfen

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.

Ausführen Ihrer Anwendung mit korrektem Terminal-Kontext

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.

Abschließende Überlegungen - Die nächsten Schritte in Spectre.Console C

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.

Abschluss

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.

Hero Worlddot related to Erste Schritte mit Spectre.Console in C#: Einfach schöne Konsolenanwendungen erstellen - mit T...
Hero Affiliate related to Erste Schritte mit Spectre.Console in C#: Einfach schöne Konsolenanwendungen erstellen - mit ...

Verdienen Sie mehr, indem Sie teilen, was Sie lieben

Erstellen Sie Inhalte für Entwickler, die mit .NET, C#, Java, Python oder Node.js arbeiten? Verwandeln Sie Ihr Fachwissen in ein zusätzliches Einkommen!

Iron Support Team

Wir sind 24 Stunden am Tag, 5 Tage die Woche online.
Chat
E-Mail
Rufen Sie mich an