Altbilgi içeriğine atla
Iron Academy Logo
C# Uygulaması
C# Uygulaması

Diğer Kategoriler

Konsolunuza Tablolar Eklemek - Spectre Console Serisi

[[academy-video-youtube({"vid": "jpCAgY5nqwc", "start_time": "0", "title": "Konsolunuza Tablolar Ekleme - Spectre Konsol Serisi", "creator": "Tim Corey", "length": "10m 24s"})]]

Spectre.Console, güzel konsol uygulamaları oluşturmanıza yardımcı olan güçlü bir .NET kütüphanesidir. Düz metin çıktısı yerine yapılandırılmış düzenler oluşturabilir, renkleri kullanabilir ve hatta ilerleme çubukları veya etkileşimli istemler gösterebilirsiniz. Spectre Console Serisi'nde Tim Corey, geliştiricilere bu kütüphaneden en iyi şekilde yararlanmanın küçük, pratik derslerini gösterir.

"Adding Tables to Your Console - Spectre Console Series" başlıklı videosunda Tim, Spectre.Console tablolarına odaklanıyor. Tablolar, hizalama, dolgu, kenarlıklar ve stillerle yapılandırılmış verileri görüntülemenizi sağlayan temel bir özelliktir. Tim'in yürüyüşünü daha derinlemesine incelerken bu özelliği nasıl kullanabileceğinizi tam olarak göreceğiz.

Spectre.Console ile Başlarken

Başlangıçta (0:00), Tim Spectre.Console'un görsel olarak çekici, bilgilendirici uygulamalar oluşturmanıza olanak tanıdığını açıklar. Spectre.Console adında bir NuGet paketi olarak dağıtılır. Kolayca şunu yükleyebilirsiniz:

// dotnet add package spectre console
dotnet add package Spectre.Console
// dotnet add package spectre console
dotnet add package Spectre.Console

Yüklendikten sonra, kütüphane, bir konsol uygulamasında bilgi sunmayı çok daha kolay hale getirir. İlgilenenler için videoda sağlanan belgelendirme ve kaynak kod bağlantılarına da işaret eder.

İlk Tabloyu Oluşturmak

Tim 0:35'da kodlamaya başlar. Bir Tablo nesnesi oluşturur:

var table = new Table();
var table = new Table();

Ardından AddColumn ile üç sütun ekler:

table.AddColumn("First Name");
table.AddColumn("Last Name");
table.AddColumn("Age");
table.AddColumn("First Name");
table.AddColumn("Last Name");
table.AddColumn("Age");

Bu temel yapıyı oluşturur. Her sütunun daha sonra kendi genişliği, hizalaması ve tarzı olabileceğini açıklar.

Sonraki adımda AddRow ile satırlar ekler. Tim, 1:06'da üç desteklenen yol olduğunu söylüyor:

  1. IRenderable nesnelerinin bir params listesi (panel, başka bir tablo veya hatta grafikler gibi iç içe geçmiş öğeler için).

  2. Bir dize listesi (en sık kullanılan).

  3. Bir IEnumerable<IRenderable> (daha az yaygın ama mevcut).

İlk olarak ikinci seçeneği gösterir, ekleyerek:

table.AddRow("Tim", "Corey", "46");
table.AddRow("Sue", "Storm", "23");
table.AddRow("Tim", "Corey", "46");
table.AddRow("Sue", "Storm", "23");

Bu, tabloya iki satır veri ekler. Tim 3:26'da izleycilere, AnsiConsole.Write(table) (WriteLine değil) kullanmanız gerektiğini hatırlatır; terminalde bir IRenderable nesnesi olan bir tabloyu görüntülemek için:

AnsiConsole.Write(table);
AnsiConsole.Write(table);

Programı çalıştırdığında, konsol otomatik olarak hizalanmış bir şekilde başlıkları ve satırları ile birlikte düzenli bir tablo görüntüler. Sadece birkaç satır kodla bile Spectre, konsol çıkışını çok daha profesyonel hale getirir.

Spectre Console Adding Tables 1 related to İlk Tabloyu Oluşturmak

Tabloyu Hizalama ve Genişletme

4:00'da Tim, tablonun ekrandaki konumunu nasıl kontrol edeceğini gösterir. Örneğin:

table.Centered();
table.Centered();

Bu, tüm tabloyu konsol penceresinin ortasında görüntüler. Bu ayarın tabloyu bir bütün olarak etkilediğini, sütunları etkilemediğini açıklar. Tabloyu sağa veya sola da hizalayabilirsiniz. Varsayılan soladır.

Spectre Console Adding Tables 2 related to Tabloyu Hizalama ve Genişletme

5:01'de tablo.Expand()'i gösterir ve bu tabloyu terminal penceresinin tüm genişliğini doldurmaya iter. Genişletildikten sonra, merkezi yoktur çünkü tablo şimdi mevcut tüm alanı kaplar. Varsayılan olarak bir çökük tablodur.

Spectre Console Adding Tables 3 related to Tabloyu Hizalama ve Genişletme

Kenarlık Ekleme ve Terminal Desteğini Anlama

Sonraki adımda Tim 5:21'de bir kenarlık ekler:

table.Border(TableBorder.Rounded);
table.Border(TableBorder.Rounded);

Uygulamayı Visual Studio konsolunda çalıştırır ve köşelerin yuvarlak olmadığını fark eder. 5:54'te Windows Terminal'e dönüp tekrar çalıştırır — şimdi yuvarlak köşeler görünür.

Tim 5:59'da kullanmakta olduğunuz terminalin işleme yeteneklerine bağlı olduğunu açıklar. Altta yatan kabuk sadece çıkış sağlar, ancak terminal hangi stilleri gösterebileceğini belirler. Windows Terminal yuvarlak kenarlık karakterlerini destekler; Visual Studio'nun entegre konsolu böyle değildir. Aynı durum renklere, işaretlemeye veya ekleyebileceğiniz kursif, alt çizgi veya kalın metin stillerine de uygulanır.

7:01'de Visual Studio dışında, doğru renderlanışını gösterir çünkü farklı bir terminal kullanmaktadır. Spectre özelliklerini, örneğin ilerleme çubukları, uzun süre çalışan görevler veya tablolar deniyorsanız, aklınızda bulundurmanız gereken önemli bir noktadır: Tüm terminaller her stili görüntüleyemez.

Satır Ayırıcıları Ekleme

Tim, satırlar arasında ayırıcılar gösterebileceğinizi de belirtir:

table.ShowRowSeparators();
table.ShowRowSeparators();

Bu, her satır arasına yatay bir çizgi çizer, bu da bilgi taramasını daha büyük tablolarda kolaylaştırabilir — özellikle çok fazla çıktı veya args'ı dinamik olarak işleyen CLI araçları oluşturduğunuz zaman.

Sütun Seviyesinde Stil: Dolgular, Genişlik, Hizalama

Spectre.Console tablolarının güçlü yönlerinden biri, her bir sütunu ayrı ayrı özelleştirebilme yeteneğinizdir. 8:02'de Tim, ilk sütunu değiştirir:

table.Columns[0].PadLeft(5).PadRight(5);
table.Columns[0].PadLeft(5).PadRight(5);

Bu, metnin her iki tarafına dolgu ekler. Ardından ikinci sütuna sabit bir genişlik ayarlar:

table.Columns[1].Width(15);
table.Columns[1].Width(15);

Son olarak, o sütunun içeriğini sağa hizalar:

table.Columns[1].RightAligned();
table.Columns[1].RightAligned();

Programı tekrar çalıştırdığında, ilk sütunun dolgun olduğunu, ikinci sütunun sabit genişlikte olduğunu ve içeriğin sağa hizalandığını görebilirsiniz. Başlık metni bile bu ayarlarla uyumludur. Tim (8:42'de) genişliklerin piksel değil karakter olarak ölçüldüğünü belirtmektedir.

Bu küçük dokunuşlar — dolgu, hizalama ve sabit genişlikler — konsol uygulamalarınızı çok daha okunabilir hale getirir. Spectre'nin renkleri, işaretlemeleri ve panelleri ile birleştirildiğinde, tamamen konsol içinde çalışan bir GUI'ye daha yakın hissettiren bir çıktı oluşturabilirsiniz.

Spectre Console Adding Tables 4 related to Sütun Seviyesinde Stil: Dolgular, Genişlik, Hizalama

IEnumerable<IRenderable>'den Satır Ekleme

9:25'te Tim, bir satır eklemenin üçüncü yolunu — bir IEnumerable<IRenderable> geçerek — gösterir. Bir Text objeleri listesi hazırlar:

var person = new List<Text>
{
    new Text("Bilbo"),
    new Text("Baggins"),
    new Text("111")
};

table.AddRow(person);
var person = new List<Text>
{
    new Text("Bilbo"),
    new Text("Baggins"),
    new Text("111")
};

table.AddRow(person);

Bu, bir koleksiyon kullanarak başka bir satır ekler. Tim, bu seçeneğin günlük kodda "çok da kullanışlı olmadığını", ancak bir dosyadan gelen verileri, bir birim test çerçevesi veya etkileşimli bir istem gibi başka bir kaynaklardan dinamik olarak satır üretirken desteklendiğini söyler.

Spectre Console Adding Tables 5 related to IEnumerable<IRenderable>'den Satır Ekleme

Sonuç

Videonun (9:59) sonunda, Tim özetler: Spectre.Console tabloları, bilgileri düzenli ve yapılandırılmış bir şekilde sunmanız için size çok fazla güç sağlar. Tablonun hizalamasını, genişliğini ve kenarlık tarzını kontrol edebilir, satır ayırıcıları ekleyebilir, sütunlara dolgu uygulayabilir ve hatta paneller veya diğer renderable'ları yerleştirebilirsiniz.

Kütüphane, modern CLI tasarımından büyük ölçüde ilham aldığından, sadece tabloları değil, aynı zamanda uzun süreli görevler için ilerleme göstergeleri, grafikler, kalın, italik, altı çizili için biçimlendirme ve mavi veya yeşil metin gibi renkler ve çok daha fazlasını da destekler. Tim, izleyicileri belgelendirme kontrol etmeye ve Spectre'nin konsol çıktınızı nasıl daha çekici hale getirebileceğini görmek için örnekleri denemeye davet eder.

Tim Corey'nin adım adım gösterimini takip ederek, minimal çaba ile güzel konsol uygulamaları oluşturmanıza olanak tanıyan Spectre.Console'u nasıl kullanacağınızı göreceksiniz. NuGet paketini yükleyin, API'yı keşfedin ve düz konsol çıktınızı yapılandırılmış, tarzlandırılmış ekranlara bugün dönüştürmeye başlayın.

Hero Worlddot related to Konsolunuza Tablolar Eklemek - Spectre Console Serisi
Hero Affiliate related to Konsolunuza Tablolar Eklemek - Spectre Console Serisi

Sevdiğiniz Şeyleri Paylaşarak Daha Fazla Kazanın

.NET, C#, Java, Python veya Node.js ile çalışan geliştiriciler için içerik oluşturuyor musunuz? Uzmanlığınızı ek gelire dönüştürün!

Iron Destek Ekibi

Haftada 5 gün, 24 saat çevrimiçiyiz.
Sohbet
E-posta
Beni Ara