Altbilgi içeriğine atla
DIğER BILEşENLERLE KARşıLAşTıRıN

IronXL ile CsvHelper Arasındaki Bir Karşılaştırma

CSV dosyaları ile çalışmak zor bir görev olabilir. Bugün birçok kütüphane, geliştiricilerin bu görevi Microsoft Excel kurulmadan gerçekleştirmesine yardımcı olmak için mevcuttur.

Bu makalede, sürüm 4.5.3 veya daha eski (son ücretsiz sürüm) veya mevcut EPPlus ticari lisansları ile çalışma konusundaki karşılaştırmayı ve tartışmayı ele alacağız, bunlar arasında uygulamalı olarak nasıl çalışılır.

Öncelik olarak her iki kütüphanenin sunduğu olanakları inceleyelim.

IronXL Kütüphanesi

IronXL, Microsoft Excel belgelerini C# ile okuma ve düzenleme işlevini kolaylaştıran bir .NET kütüphanesidir. IronXL.Excel, çeşitli elektronik tablo formatlarını okumak için bağımsız bir .NET yazılım kütüphanesidir. Microsoft Excel kurulumu gerektirmez, ayrıca Interop'una bağımlılığı yoktur. CSV dosyaları ile son derece sorunsuz çalışır.

IronXL, .NET içinde Excel tablosu dosyalarını okuma, düzenleme ve oluşturma işlemlerini yıldırım hızında performans ile gerçekleştiren sezgisel bir C# API'sidir. IronXL, .NET Core, .NET Framework, Xamarin, Mobile, Linux, macOS ve Azure'u tamamen destekler.

IronXL, C# için öncü bir .NET core ve .NET framework Excel elektronik tablo kütüphanesidir.

IronXL Özellik Seti

  • XLS/XLSX/CSV/TSV'den veri yükleme, okuma ve düzenleme
  • Kaydetme ve dışa aktarma — XLS/XLSX/CSV/TSV/JSON'a
  • Aralıklar — kullanımı kolay WorkSheet["A1:B10"] sözdizimi. Aralıkları kolaylıkla birleştirin ve oluşturun.
  • Sıralama — aralıklar, sütunlar ve satırları sıralayın.
  • Stil — hücre görsel stilleri, yazı tipi, boyut, arka plan deseni, kenarlık, hizalama ve sayı formatları.

CsvHelper

CSV dosyalarını okumak ve yazmak için bir .NET kütüphanesi. Son derece hızlı, esnek ve kullanımı kolay. Özel sınıf nesnelerinin okunmasını ve yazılmasını destekler. Tüm örnek kodlar CsvHelper dokümantasyonunda paket dahilinde bulunmaktadır.

CsvHelper Özellikleri

  • Hızlı: son derece hızlı performans için kuvvetli sınıflar derler
  • Esnek: yazarken muhafazakâr, okurken liberal
  • Kullanımı kolay: Okuma ve yazma, GetRecords<t>() ve WriteRecords(records) kadar basittir.
  • Yüksek derecede yapılandırılabilir
  • Linux modu
  • Düşük bellek kullanımı

1. Konsol Uygulaması Oluşturun

Konsol Uygulaması oluşturmak için şu adımları kullanın:

  • Visual Studio 2022 IDE'yi başlatın.
  • "Yeni proje oluştur" üzerine tıklayın.
  • "Yeni proje oluştur" sayfasında, dil açılır listesinde C# seçin, Platformlar listesinden Windows ve Proje türleri listesinden Konsol seçin.
  • Gösterilen proje şablonlarından Console App (.NET Framework) seçin.
Csvhelper Alternatives 1 related to 1. Konsol Uygulaması Oluşturun

Proje Oluştur - Konsol Uygulaması

  • İleri tıklayın.
  • Ek Bilgi ekranında kullanmak istediğiniz Çerçeve sürümünü belirtin. Bu örnekte, .NET Framework 4.8 kullanacağız.
Csvhelper Alternatives 2 related to 1. Konsol Uygulaması Oluşturun

Proje Oluştur - .NET Framework

  • Süreci tamamlamak için Oluşturu tıklayın.

Proje şimdi oluşturuldu ve kütüphaneleri test etmeye neredeyse hazırız. Ancak, hâlâ bunları yüklememiz ve projeye entegre etmemiz gerekiyor. Önce IronXL'i yükleyelim.

2. IronXL C# Kütüphanesi Kurulumu

IronXL kütüphanesini şu yöntemlerle indirip kurabilirsiniz:

  1. NuGet paketleri ile Visual Studio'yu kullanarak
  2. NuGet Paketini doğrudan indirin
  3. DLL ile Manuel Kurulum

Her birine daha yakından bakalım.

2.1. NuGet paketleriyle Visual Studio Kullanarak

Visual Studio, projelerinizde NuGet paketlerini yüklemek için NuGet Paket Yöneticisi sağlar. Buna Proje Menüsü aracılığıyla veya Çözüm Gezgini'nde projenize sağ tıklayabilirsiniz.

Csvhelper Alternatives 3 related to 2.1. NuGet paketleriyle Visual Studio Kullanarak

Paket-Yönet-NuGet-Paketi

  • Şimdi, arama sekmesinden -> IronXL.Excel'i arayın -> Kur
Csvhelper Alternatives 4 related to 2.1. NuGet paketleriyle Visual Studio Kullanarak

IronXL'i ara

  • Tamamladık.

2.2. NuGet Paketini Doğrudan İndir

Bu, NuGet sitesine doğrudan gidip paketi indirerek yapılabilir. Adımlar şunlardır:

2.3. DLL ile Manuel Kurulum

IronXL C# Kütüphanesini indirip kurmanın bir başka yolu da, Geliştirici Komut İstemi aracılığıyla IronXL NuGet paketini kurmak için aşağıdaki adımları kullanmaktır.

  • Geliştirici Komut İstemini açın — genellikle Visual Studio klasöründe bulunur.
  • Aşağıdaki komutu yazın: PM> Install-Package IronXL.Excel
  • Enter'a basın
  • Bu, paketi indirecek ve kuracaktır
  • Visual Studio projenizi yeniden yükleyin ve kullanmaya başlayın

2.4. Gerekli Using Direktiflerini Ekleyin

  1. Çözüm Gezgini'nde Program.cs dosyasını sağ tıklayın ve ardından Kodu Görüntüle'yi tıklayın.
  2. Kodu dosyasının üstüne aşağıdaki using direktiflerini ekleyin:
using IronXL;
using IronXL;
Imports IronXL
$vbLabelText   $csharpLabel

Hepsi tamam! IronXL indirildi, kuruldu ve kullanıma hazır. Ancak, bundan önce CsvHelper'ı kurmalıyız.

3. CsvHelper Kurulumu

3.1. NuGet Paket Yöneticisi Konsolunu Kullanarak

CsvHelper C# Kütüphanesini indirmek ve kurmak için, NuGet paketini Geliştirici Komut İsteminden yüklemek için aşağıdaki adımları kullanın.

  • Geliştirici Komut İstemini açın — genellikle Visual Studio klasöründe bulunur.
  • Aşağıdaki komutu yazın: PM> Install-Package CsvHelper -Version 27.2.1
  • Enter'a basın
  • Bu, paketi indirecek ve kuracaktır
  • Visual Studio projenizi yeniden yükleyin ve kullanmaya başlayın

3.2. Doğrudan İndirme

NuGet web sitesinden indir: https://www.nuget.org/packages/CsvHelper.

4. IronXL Kullanarak CSV Dosyaları ile Çalışma

Virgülle ayrılmış değerler (CSV) dosyası, değerleri ayırmak için virgül kullanan sınırlı bir metin dosyasıdır. Dosyanın her satırı bir veri kaydıdır. Bu dosyalarla hesaplama yapmak oldukça zor bir görev olabilir ve IronXL, bunu Microsoft Excel olmadan yapmanın çok iyi ve kolay bir seçeneğini sunar. Öncelikle bir CSV dosyasını normal bir Excel dosyasına dönüştürelim.

4.1. Bir CSV Dosyasını Excel Formatına Dönüştürme

Süreç oldukça basit ve kolaydır. Genellikle bir satır kod ile yapılır.

CSV'den Excel formatlarına:

// Load the CSV file and convert it to an Excel format
WorkBook workbook = WorkBook.LoadCSV("test.csv", fileFormat: ExcelFileFormat.XLSX, ListDelimiter: ",");
// Access the default worksheet
WorkSheet ws = workbook.DefaultWorkSheet;

// Save the workbook as an Excel file
workbook.SaveAs("CsvToExcelConversion.xlsx");
// Load the CSV file and convert it to an Excel format
WorkBook workbook = WorkBook.LoadCSV("test.csv", fileFormat: ExcelFileFormat.XLSX, ListDelimiter: ",");
// Access the default worksheet
WorkSheet ws = workbook.DefaultWorkSheet;

// Save the workbook as an Excel file
workbook.SaveAs("CsvToExcelConversion.xlsx");
' Load the CSV file and convert it to an Excel format
Dim workbook As WorkBook = WorkBook.LoadCSV("test.csv", fileFormat:= ExcelFileFormat.XLSX, ListDelimiter:= ",")
' Access the default worksheet
Dim ws As WorkSheet = workbook.DefaultWorkSheet

' Save the workbook as an Excel file
workbook.SaveAs("CsvToExcelConversion.xlsx")
$vbLabelText   $csharpLabel

4.2. Dönüştürülmüş CSV Dosyalarını IronXL Kullanarak Okuma ve İşleme

IronXL WorkBook sınıfı bir Excel sayfasını temsil eder. C# kullanarak bir Excel Dosyasını açmak için, WorkBook.Load kullanırız ve Excel dosyasının (.xlsx) yolunu belirtiriz. Dosyayı okumak için kullanıldığı basit bir satırlık kod aşağıdadır:

// Load WorkBook
var workbook = WorkBook.Load(@"Spreadsheets/sample.xlsx");
// Load WorkBook
var workbook = WorkBook.Load(@"Spreadsheets/sample.xlsx");
' Load WorkBook
Dim workbook = WorkBook.Load("Spreadsheets/sample.xlsx")
$vbLabelText   $csharpLabel

Her WorkBook birden fazla WorkSheet nesnesi içerebilir. Bunlar, Excel belgesindeki çalışma sayfalarını temsil eder. Çalışma kitabı çalışma sayfaları içeriyorsa, onları şu şekilde adlarına göre alabilirsiniz:

// Open the sheet for reading
var worksheet = workbook.GetWorkSheet("sheetnamegoeshere");
// Open the sheet for reading
var worksheet = workbook.GetWorkSheet("sheetnamegoeshere");
' Open the sheet for reading
Dim worksheet = workbook.GetWorkSheet("sheetnamegoeshere")
$vbLabelText   $csharpLabel

Hücre değerlerini okuma kodu:

// Read from ranges of cells elegantly
foreach (var cell in worksheet["A2:A10"])
{
    Console.WriteLine("Cell {0} has value '{1}'", cell.AddressString, cell.Text);
}
// Read from ranges of cells elegantly
foreach (var cell in worksheet["A2:A10"])
{
    Console.WriteLine("Cell {0} has value '{1}'", cell.AddressString, cell.Text);
}
' Read from ranges of cells elegantly
For Each cell In worksheet("A2:A10")
	Console.WriteLine("Cell {0} has value '{1}'", cell.AddressString, cell.Text)
Next cell
$vbLabelText   $csharpLabel

Çalışma kitabını ve çalışma sayfasını yükledikten ve okuduktan sonra, aşağıdaki kod örneği, formülleri değiştirmek veya belirli hücrelere uygulamak için kullanılabilir. Kod şöyle devam ediyor:

// Set formulas in specific cells
worksheet["A1"].Formula = "SUM(B8:C12)";
worksheet["B8"].Formula = "=C9/C11";
worksheet["G30"].Formula = "MAX(C3:C7)";

// Force recalculate all formula values in all sheets
workbook.EvaluateAll();
// Set formulas in specific cells
worksheet["A1"].Formula = "SUM(B8:C12)";
worksheet["B8"].Formula = "=C9/C11";
worksheet["G30"].Formula = "MAX(C3:C7)";

// Force recalculate all formula values in all sheets
workbook.EvaluateAll();
' Set formulas in specific cells
worksheet("A1").Formula = "SUM(B8:C12)"
worksheet("B8").Formula = "=C9/C11"
worksheet("G30").Formula = "MAX(C3:C7)"

' Force recalculate all formula values in all sheets
workbook.EvaluateAll()
$vbLabelText   $csharpLabel

4.3. Excel belgesini tekrar CSV Dosyasına Kaydetme

IronXL ile CSV dosyaları yazmak kolay bir süreçtir. Aşağıdaki kod, Excel dosyasını SaveAsCsv yöntemi kullanarak CSV formatında basitçe kaydeder.

// Load the Excel Workbook
WorkBook wb = WorkBook.Load("Normal_Excel_File.xlsx");

// Save the workbook as a CSV file
wb.SaveAsCsv("SaveAsCSV.csv", ",");
// This will save as "SaveAsCSV.Sheet1.csv"
// Load the Excel Workbook
WorkBook wb = WorkBook.Load("Normal_Excel_File.xlsx");

// Save the workbook as a CSV file
wb.SaveAsCsv("SaveAsCSV.csv", ",");
// This will save as "SaveAsCSV.Sheet1.csv"
' Load the Excel Workbook
Dim wb As WorkBook = WorkBook.Load("Normal_Excel_File.xlsx")

' Save the workbook as a CSV file
wb.SaveAsCsv("SaveAsCSV.csv", ",")
' This will save as "SaveAsCSV.Sheet1.csv"
$vbLabelText   $csharpLabel

5. CsvHelper Kullanarak CSV Dosyaları ile Çalışma

CSV dosyalarını okumak, aslında göründüğünden çok daha zor bir görevdir. CsvHelper kütüphanesi, tür güvenli, hızlı ve esnek kod yazmayı kolaylaştırır.

5.1. CsvHelper ile CSV Dosyalarını Okuma

Bu örnek CSV dosyası, üç metin sütunu ve bir sayı sütunu içerir.

FirstName,LastName,Age,IsActive
Ali,Talal,30,Yes
Affan,Ahmad,31,No
Saad,Bhatti,31,Yes

Her satırı Person tipinde bir nesneye eşleyeceğiz.

// Define the Person class to map CSV records
public class Person
{
    public string FirstName { get; set; }
    public string LastName { get; set; }
    public int? Age { get; set; }
    public string IsActive { get; set; }
}
// Define the Person class to map CSV records
public class Person
{
    public string FirstName { get; set; }
    public string LastName { get; set; }
    public int? Age { get; set; }
    public string IsActive { get; set; }
}
' Define the Person class to map CSV records
Public Class Person
	Public Property FirstName() As String
	Public Property LastName() As String
	Public Property Age() As Integer?
	Public Property IsActive() As String
End Class
$vbLabelText   $csharpLabel

CSV dosyamızı okumak için kod aşağıdadır.

// Define the path to the CSV file
var fileName = @"<path to our CSV file>";

// Configure CsvHelper
var configuration = new CsvConfiguration(CultureInfo.InvariantCulture)
{
    Encoding = Encoding.UTF8,
    Delimiter = ","
};

// Read CSV file
using (var fs = File.Open(fileName, FileMode.Open, FileAccess.Read, FileShare.Read))
{
    using (var textReader = new StreamReader(fs, Encoding.UTF8))
    using (var csv = new CsvReader(textReader, configuration))
    {
        var data = csv.GetRecords<Person>();

        // Iterate over each person record
        foreach (var person in data)
        {
            // Process each Person object
        }
    }
}
// Define the path to the CSV file
var fileName = @"<path to our CSV file>";

// Configure CsvHelper
var configuration = new CsvConfiguration(CultureInfo.InvariantCulture)
{
    Encoding = Encoding.UTF8,
    Delimiter = ","
};

// Read CSV file
using (var fs = File.Open(fileName, FileMode.Open, FileAccess.Read, FileShare.Read))
{
    using (var textReader = new StreamReader(fs, Encoding.UTF8))
    using (var csv = new CsvReader(textReader, configuration))
    {
        var data = csv.GetRecords<Person>();

        // Iterate over each person record
        foreach (var person in data)
        {
            // Process each Person object
        }
    }
}
' Define the path to the CSV file
Dim fileName = "<path to our CSV file>"

' Configure CsvHelper
Dim configuration = New CsvConfiguration(CultureInfo.InvariantCulture) With {
	.Encoding = Encoding.UTF8,
	.Delimiter = ","
}

' Read CSV file
Using fs = File.Open(fileName, FileMode.Open, FileAccess.Read, FileShare.Read)
	Using textReader = New StreamReader(fs, Encoding.UTF8)
	Using csv = New CsvReader(textReader, configuration)
		Dim data = csv.GetRecords(Of Person)()

		' Iterate over each person record
		For Each person In data
			' Process each Person object
		Next person
	End Using
	End Using
End Using
$vbLabelText   $csharpLabel

data türü IEnumerable<Person>'dir. CsvHelper, her sütunu aynı isimdeki özelliğe otomatik olarak eşleyecektir. Örneğin, FirstName sütunundaki değer Person.FirstName içine eşlenecektir. Daha sonra data üzerinde yineleme yapabiliriz ve her satırdaki değerlere erişebiliriz.

5.2. CSV Dosyalarında Veriyi Bir Türden Diğerine Dönüştürme

CSV dosyaları çoğunlukla metin verisi içerir. Örneğin, yaş sütunu bir tam sayı değeridir ve CSV dosyası sadece metin içerir. CsvHelper, verileri dizelerden standart .NET türlerine (Boolean, Int32, Int64, Enum) dönüştürebilir. Bizim durumumuzda, yalnızca True/False'a sahip olabilen ve standart dışı değerler içeren bir IsActive bool veri türümüz var. Özel bir dönüştürücü oluşturarak dönüştürülebilir. Kod stilizasyonu şu şekilde gider:

// Custom Boolean Converter for CsvHelper
public class CustomBooleanConverter : DefaultTypeConverter
{
    public override object ConvertFromString(string text, IReaderRow row, MemberMapData memberMapData)
    {
        // Convert "Yes" to true and anything else to false
        return text.Equals("Yes", StringComparison.OrdinalIgnoreCase);
    }
}
// Custom Boolean Converter for CsvHelper
public class CustomBooleanConverter : DefaultTypeConverter
{
    public override object ConvertFromString(string text, IReaderRow row, MemberMapData memberMapData)
    {
        // Convert "Yes" to true and anything else to false
        return text.Equals("Yes", StringComparison.OrdinalIgnoreCase);
    }
}
' Custom Boolean Converter for CsvHelper
Public Class CustomBooleanConverter
	Inherits DefaultTypeConverter

	Public Overrides Function ConvertFromString(ByVal text As String, ByVal row As IReaderRow, ByVal memberMapData As MemberMapData) As Object
		' Convert "Yes" to true and anything else to false
		Return text.Equals("Yes", StringComparison.OrdinalIgnoreCase)
	End Function
End Class
$vbLabelText   $csharpLabel

Her ne kadar bool standart bir .NET türü olsa da, varsayılan dönüştürücü yalnızca True/False değeri ile başa çıkabilir, oysa CSV dosyamızda Yes/No bulunur. Burada, DefaultTypeConverter'ü alt sınıf yapmamız ve ardından ConvertFromString yöntemini geçersiz kılmamız gerekiyor.

6. Lisanslama

IronXL, C# Excel kütüphanesi olan açık ticari bir üründür. Geliştirme için ücretsiz olup, ticari dağıtım için her zaman lisanslanabilir. Tek proje kullanımı, tek geliştiriciler, ajanslar ve küresel şirketler için lisanslar mevcuttur, ayrıca SaaS ve OEM dağıtımı için de geçerli. Tüm lisanslar, 30 günlük para iade garantisi, bir yıllık ürün desteği ve güncellemeleri, geliştirici/staging/üretim için geçerliliği ve ayrıca kalıcı bir lisans (tek seferlik satın alma) içerir. Lite paketi $999 ile başlar.

CsvHelper — CSV dosyalarını okuma ve yazma, ticari kullanım için tamamen ücretsizdir.

7. Özet ve Sonuç

Özet

IronXL, bir Excel dosyasını işlemek için gereken her şeyi sağlayan kapsamlı bir kütüphanedir. Kullanımı kolaydır ve çeşitli formatları XLSX'ye, ve XLSX'den diğer formatlara, örneğin CSV'ye dönüştürme olanağı sağlar. Bu dönüşüm, kullanıcıya çeşitli dosya formatlarıyla kolayca çalışabilme esnekliği sunar.

Öte yandan, CsvHelper yalnızca CSV dosya formatlarıyla çalışmak üzere tasarlandığından, yalnızca CSV dosyalarıyla ilgilenebilir. Tüm kod örnekleri CsvHelper dökümantasyon dosyalarında bulunabilir. Dökümantasyon, CsvHelper'ı projenizde nasıl kullanacağınıza dair yönergeler verir.

Sonuç

IronXL, birden fazla formatla çalışma desteği sunduğundan CsvHelper'a göre açık bir avantaja sahiptir. Dahası, formülleri ve stilleri istediğiniz şekilde uygulayabilirken, CsvHelper yalnızca sınırlı seçeneklerle CSV dosyalarını okumayı ve yazmayı sağlar. Ayrıca, mevcut bir CSV dosyasına yeni kayıtlar ekleyemezsiniz, çünkü bu yalnızca önceki girişlerin üzerine yazılır.

Lütfen dikkate alınCsvHelper, ilgili sahibinin kayıtlı ticari markasıdır. Bu site, CsvHelper ile ilişkili, onaylanmış veya sponsorluk almamıştır. Tüm ürün adları, logolar ve markalar kendi sahiplerine aittir. Karşılaştırmalar, yalnızca bilgilendirme amaçlıdır ve yazı sırasında halka açık bilgilerle alakalı olarak yansıtılmaktadır.

Sıkça Sorulan Sorular

C# kullanarak Excel dosyalarını farklı formatlara nasıl dönüştürebilirim?

IronXL kullanarak, Excel dosyalarını XLS, XLSX, CSV ve TSV gibi çeşitli formatlara dönüştürebilirsiniz. Dosyayı IronXL ile yükleyerek ve çok yönlü dışa aktarma seçenekleri ile istediğiniz formatta kaydederek bunu yapabilirsiniz.

Excel dosya manipülasyonu için IronXL kullanmanın CsvHelper'a göre faydaları nelerdir?

IronXL, XLS, XLSX ve CSV gibi birden fazla Excel formatıyla çalışma için kapsamlı işlevsellik sunar. Veri manipülasyonu, stil verme ve formül uygulama gibi özellikleri destekler, bu da kapsamlı Excel dosya işleme gerektiren projeler için idealdir. Buna karşılık, CsvHelper spesifik olarak hızlı ve verimli CSV dosya işlemleri için tasarlanmıştır.

Bir C# projesi için IronXL nasıl kurulur?

Visual Studio'da 'IronXL' aratması yaparak NuGet Paket Yöneticisi aracılığıyla IronXL yükleyebilirsiniz. Alternatif olarak, NuGet paketini doğrudan indirip DLL'i projenize referans ederek manuel olarak yükleyebilirsiniz.

IronXL, Microsoft Excel kurulu olmadan kullanılabilir mi?

Evet, IronXL sisteminizde Microsoft Excel'in kurulu olmasını gerektirmez. Çeşitli formatlarda Excel dosyalarını bağımsız olarak okumak, düzenlemek ve oluşturmak için çalışır.

CsvHelper kullanarak CSV dosyalarını nasıl okur ve yazarım?

CsvHelper, bir sınıf tanımlayarak CSV kayıtlarını eşleme, CsvHelper ayarlarını yapılandırma ve CSV dosya işlemlerini kolayca gerçekleştirmek için CsvReader ve CsvWriter kullanma olanağı tanır.

CsvHelper'ın CSV dosyalarını işlemek için popüler bir seçim olmasının sebebi nedir?

CsvHelper hızı, esnekliği ve kullanım kolaylığı ile bilinir. Özelleştirilmiş sınıf nesnelerini ve tür dönüşümlerini destekler, bu da onu yalnızca CSV veri işlemesine odaklanan projeler için tercih edilen bir seçim yapar.

IronXL kullanımı için lisans gereksinimi var mı?

Evet, IronXL'nin ticari bir ortamda konuşlandırılması ücretli bir lisans gerektirir. Bu, ticari kullanım için ücretsiz olan CsvHelper ile zıttır.

IronXL'den en çok hangi tür projeler faydalanır?

Çeşitli Excel dosya formatlarının yoğun bir şekilde işlenmesini gerektiren projeler, stil, veri sıralama ve formül hesaplama gibi özellikleri içeren, robust özellik seti nedeniyle IronXL kullanarak en çok faydayı elde eder.

Curtis Chau
Teknik Yazar

Curtis Chau, Bilgisayar Bilimleri alanında Lisans Derecesine (Carleton Üniversitesi) sahip ve Node.js, TypeScript, JavaScript ve React konularında uzmanlaşmış ön uç geliştirmeyle ilgileniyor. Sezgisel ve estetik açıdan hoş kullanıcı arayüzleri oluşturma tutkunu, Curtis modern çerçevelerle çalışmayı ve iyi yapı...

Daha Fazla Oku

Iron Destek Ekibi

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