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
Eğer güzel konsol uygulamaları oluşturmak isteyen bir .NET geliştiricisiyseniz, Spectre.Console C# kütüphanesi, terminal arayüzlerinizi zenginleştirmenin kullanıcı dostu ve güçlü bir yolunu sunar. Tim Corey, Spectre.Console serisinde, ilk kurulumdan başlayarak kütüphanenin temel özellikleri olan ilerleme çubukları, tablolar, etkileşimli komut istemleri ve hatta ASCII resimlerini kullanmaya kadar adım adım bir kılavuz sunar.
Bu makalede, Tim'in "Başlangıç Kurulumu ve En İyi Uygulamalar - Spectre Console Serisi" videosunu, onun izlediği akış ve içgörüler doğrultusunda inceleyeceğiz. NuGet paketini nasıl ekleyeceğinizi, Visual Studio'da konsol uygulamanızı nasıl yapılandıracağınızı ve metin stili ile mevcut terminalin yetenekleri üzerinde çalışırken yaygın hatalardan nasıl kaçınacağınızı öğreneceksiniz.
Haydi Başlayalım!
Tim, yeni bir .NET projesine .NET 9 kullanarak başlar. Visual Studio içinde, NuGet Paket Yöneticisine gider ve "Spectre" araması yapar. Buradaki hedef, CLI veya JSON varyantları ile karıştırılmaması gereken Spectre.Console paketini yüklemektir.
sürüm
Kurulumdan sonra, dosyanın en üstüne direktifi ekler:
using Spectre.Console;Imports Spectre.ConsoleBu, AnsiConsole.MarkupLine, ilerleme gösterimleri ve etkileşimli istemler gibi temel özelliklere erişim sağlar.
Her şeyin çalıştığını doğrulamak için Tim, Spectre'nin markup sistemini kullanarak basit bir çıktı yazar:
AnsiConsole.MarkupLine("[red bold]Hello World[/]");AnsiConsole.MarkupLine("[red bold]Hello World[/]")Bu, temel Console.WriteLine()'ı, kalın, italik, altı çizili ve renk gibi stilleri destekleyen çok daha esnek bir çıktı seçeneği ile değiştirir. Bu örnek, kalın kırmızı metin kullanarak Spectre.Console'un güzel konsol uygulamaları oluşturmayı nasıl kolaylaştırdığını gösteriyor.
Tim, iki satır daha ekler: biri normal bir Hello World ve diğeri Spectre'nin işaretleme yeteneklerini kullanarak yavaş yanıp sönen bir efekti olan. Bu, kütüphanenin animasyonlu döndürücüler ve dinamik metin gösterebileceğini gösteriyor - uzun süre çalışan görevler ve durum kontrolleri için harika bir özellik.
Şu stilleri kullanabilirsiniz:
[kalın yeşil altı çizili]Başarı[/]
[italik sarı]Yükleniyor...[/]
[blink]Lütfen bekleyin...[/]
Bu seçenekler Unicode karakterleri destekler, bu da Spectre.Console'u herhangi bir GUI framework kullanmadan bilgileri ilgi çekici şekillerde sunmak için ideal hale getirir.
Tim, mevcut dersi bir yorumla işaretleyerek kodu düzenler:
// Lesson 2: Initial Setup' Lesson 2: Initial SetupBu yapı, projeyi birden fazla ders boyunca sürdürmeye yardımcı olur. O da ekliyor:
Console.ReadLine();
AnsiConsole.Clear();Console.ReadLine()
AnsiConsole.Clear()Bu, kullanıcının sonucu görebilmesi için çıktıyı duraklatır, ardından enter tuşuna basıldıktan sonra terminali temizler—bir sonraki çalıştırma için arayüzü temiz tutar.
Tim daha sonra mevcut terminalin yeteneklerinin Spectre.Console çıktısını nasıl etkilediğini açıklar. O şunlar arasında ayrım yapar:
Kabuk (örneğin, PowerShell veya CMD): Komutların işlemcisi.
Terminal (örn., Windows Terminal): Kabuk çıktısını görüntüleyen görsel konteyner.
Bu ayrım önemlidir çünkü Spectre.Console, stilleri işlemek için terminale dayanır. Terminaliniz yanıp sönen veya kalın metni desteklemiyorsa, kodunuz doğru olsa bile beklenen sonuçları göremeyebilirsiniz.
Metin stil özelliklerini etkinleştirmek için (kalın, altı çizili ve renkler gibi) Tim, Windows Terminal ayarlarını şöyle kontrol eder:
Font Yüzü: Kalın, Unicode ve ASCII görüntüler gibi modern konsol özelliklerini destekleyen Cascadia Code olarak ayarlayın.
Metin Biçimlendirme: Metin Biçimlendirme altında → Parlak renklerden Kalın yazı tipine değiştirin.
Bu yapılandırmalar, Spectre.Console uygulamanızın kalın italik, yanıp sönen ve renkli metinleri öngörüldüğü şekilde gösterebilmesini sağlar.
Yanıp sönen stiller çalışmıyorsa, Tim, Windows Erişilebilirlik ayarlarını kontrol etmeyi önerir:
Erişilebilirlik → Görsel Efektler bölümüne gidin
Animasyon Efektlerini Etkinleştirin
Bu olmadan konsol, animasyonlu döndürücüler veya yanıp sönen metinleri çizmeyecektir. Bu küçük değişiklikler, uygulamanızda ilerlemeyi göstermek veya durumları vurgulamak için büyük bir fark yaratır.
Her şeyin doğru çalıştığından emin olmak için Tim, .NET projesinin tam yolunu kopyalar, komut satırı üzerinden oraya gezinir ve şunları çalıştırır:
dotnet run
Bu, farklı kabukların nasıl davrandığını test etmek için kullanışlıdır. Örneğin, PowerShell, Git Bash veya CMD'den farklı olarak ilerleme çubuklarını gösterebilir.
Bu, aynı zamanda otomatik algılama özelliklerini keşfedip çizim yaparken deney yapabileceğiniz bir yerdir:
Yeni bir tablo var table = new Table(); kullanarak
Yatay bir çubuk grafik var chart = new BarChart(); kullanarak
Hatta dekoratif amaçlar için tablo verisi veya ASCII görüntüleri
Tim, çeşitli çıktıları denemeyi teşvik eder, bunlar gelecekteki derslerde ele alınacaktır.
Tim, Spectre.Console'un, mükemmel Python ile yazılmış Rich kütüphanesinden ilham aldığını belirterek başlangıç kurulumunu tamamlar. Bu .NET kütüphanesinin şu öğeleri tam olarak çizebildiğini yeniden belirtir:
Stilize metin
Etkileşimli istemler
Komut satırı bağımsız değişkenlerinin ayrıştırılması
Durum göstergeleri
Hatta birim test ve bağımlılık enjeksiyonu bile destekler
CommandContext context ile komut satırı bağımsız değişkenlerini işlerken ya da kullanıcı seçeneklerini tanımlamak için public class Settings kullanırken, Spectre.Console projenizin karmaşıklığına göre ölçeklenir.
Tim Corey'nin videosunda gösterildiği gibi, Spectre.Console C# konsol uygulamalarını güzel ve etkileşimli hale getiren güçlü bir kütüphanedir. Visual Studio'da kurulumdan doğru bir şekilde render için terminalinizi ayarlamaya kadar, her adım bu aracın tam potansiyelini açığa çıkarmakta kritiktir.
İster ilerleme göstermek, tablo verisini çıkarmak, ASCII görüntülerini kullanmak ya da sadece komut satırı etkileşimlerinizi geliştirmek isteyin, Spectre.Console bilmeniz gereken kütüphanedir. Düşünceli bir yapılandırma ve terminalinizi anlama ile, .NET'te profesyonel düzeyde konsol uygulamaları oluşturabileceksiniz.
Tam kaynak kodu ve daha fazla öğretici için, IAmTimCorey.com adresini ziyaret edin ve bir sonraki projenize daha derin entegrasyon için Spectre.Console serisine devam edin.
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