IRONSOFTWAREHOME

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

Ersteinrichtung und Best Practices - Spectre Console-Serie

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;

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[/]");

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

Strukturierung der Konsolenanwendung mit Setup-Tags

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

// Lesson 2: Initial Setup

Diese Struktur hilft, das Projekt über mehrere Lektionen hinweg aufrechtzuerhalten. Er fügt außerdem hinzu:

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
Text

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 – Nächste 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.

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!

Let's Stay in Touch!

Join our newsletter, you’ll get exclusive access on article updates. We value your privacy

Key in blue circle

Holen Sie sich sofort Ihren kostenlosen 30-Tage-Testschlüssel.

Your trial license will be sent to your email address

Keine Einschränkungen. 100 % freigeschaltet. Keine Kreditkarte.

bullet_checkedIhr Testlizenzschlüssel wurde Ihnen per E-Mail gesendet.Keine Einschränkungen. 100 % freigeschaltet. Keine Kreditkarte.
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
Erhalten Sie Ihre unverbindliche Beratung
Füllen Sie das Formular unten aus oder senden Sie eine E-Mail an sales@ironsoftware.com
Ihre Daten werden immer vertraulich behandelt.
Von Millionen von Ingenieur*innen weltweit vertraut
Kundenlogos von Iron Software
Erhalten Sie sofort Ihren kostenlosen 30-Tage-Testschlüssel.
Ihr Testlizenzschlüssel wurde Ihnen per E-Mail gesendet.