IRONSOFTWAREHOME
VIDEOLAR

NetBarcode'dan IronBarcode'a Geçiş

Curtis Chau
Curtis Chau
Updated: 1 Ağustos 2026

Bu kılavuz, paket kaldırma adımları, tanım alanı güncellemeleri, API çeviri örnekleri ve geçiş başlamadan önce her çağrı noktasını bulmaya yönelik bir kontrol listesi ile NetBarcode'dan IronBarcode'a tam geçiş yolunu kapsar. Kılavuz, bir projenin başlangıçta 1D barkod oluşturmak içinNetBarcodeile başladığı ve daha sonra 2D formatlara, okuma yeteneğine veya SixLabors.ImageSharp lisans zorunluluğunun netleştirilmesine ihtiyaç duyduğu yaygın senaryoyu ele alır — bunların tümü NetBarcode'un kapsamı dışındadır.

NetBarcode'dan Neden Geçiş Yapılmalı

Format Tavanı: NetBarcode'un Type enumu, hepsi düz olmak üzere, tam olarak 11 barkod formatını tanımlar. QR Kodu, DataMatrix, PDF417 veya Aztec için bir giriş yok. Bir proje — temassız teslimat bağlantıları, mobil derin bağlantılar veya bir eczacılık DataMatrix zorunluluğu için bir QR kodu gereksinimi eklediğinde —NetBarcodebunu karşılayamaz. Kitaplığın tasarımı içinde yapabileceğiniz tek yol, bu format için kullanımını durdurmak ve ayrı bir paket eklemektir. 11 girişlik enum dışında kalan her ek format gereksinimi, bağımlılık ağacına başka bir kütüphane ekler.

Okuma API'si Yok: NetBarcode, barkod görüntüleri üretir ve onları çözmek için hiçbir yöntem sağlamaz. Bir projede iade gönderi etiketlerini tarama, tedarikçi faturalarından barkod değerleri çıkarma veya basılı bir barkodun kaynak verileriyle eşleşip eşleşmediğini doğrulama ihtiyacı varsa, ayrı bir okuma kitaplığı eklenmesi gerekir. ZXing.Net en yaygın tercihtir ve zaten NetBarcode'a sahip ve tipik olarak bir QR'ye özgü kitaplığa sahip bir kod tabanına üçüncü bir API yüzeyi tanıtır.

ImageSharp Ticari Lisansı: NetBarcode, bir ticari lisans kullanan SixLabors.ImageSharp'a bağlıdır. Ücretsiz katman, açık kaynak projelere ve belirlenen yıllık gelir eşiğinin altındaki şirketlere uygulanır; Bu eşik üzerinde bir ticari lisans gereklidir. Bu koşul geçişli bağımlılık zincirine yerleştirilmiştir ve kurulum sırasında NuGet tarafından ortaya çıkarılmaz. Barkodları ölçekli işleyen bir perakende veya lojistik şirketi, NetBarcode'un hedef aldığı kullanım senaryosu — yükümlülüğü değerlendirmeden eşiğin üzerinde çalışıyor olabilir.

Çoklu Kütüphane Birikimi: QR kodlarına ihtiyaç duyulduğunda QRCoder'a ve ardından okuma gerektiğinde ZXing.Net'e ulaşan projeler, üç ayrı barkodla ilgili bağımlılığı biriktirir. Her birinin kendi sürüm programı, kendi ImageSharp sürüm beklentisi ve kendi sürdürülecek API'si vardır. 1D, 2D, okuma ve yaratma işlemlerini kapsayan tek bir kütüphane konsolidasyonu, kütüphaneler arası sürüm yönetimi sorununu ortadan kaldırır.

Temel Sorun

Başlangıçta yalnızcaNetBarcodeile başlayan ve sonra 2D formatlar gerektiren bir proje şu şekilde bir bölünmüş ithalat ile sonuçlanır:

//NetBarcodefor 1D — one library, one API
using NetBarcode;
var code128 = new Barcode("12345", Type.Code128);
code128.SaveImageFile("label.png");

// QRCoder added separately for QR — second library, second API
using QRCoder;
var qrGenerator = new QRCodeGenerator();
var qrData = qrGenerator.CreateQrCode("https://example.com", QRCodeGenerator.ECCLevel.M);
var png = new PngByteQRCode(qrData).GetGraphic(20);
File.WriteAllBytes("qr.png", png);
C#

IronBarcode'a geçtiğinizde, aynı iki çıktı tek bir ithalattan gelir:

using IronBarCode;

BarcodeWriter.CreateBarcode("12345", BarcodeEncoding.Code128)
    .SaveAsPng("label.png");

BarcodeWriter.CreateBarcode("https://example.com", BarcodeEncoding.QRCode)
    .SaveAsPng("qr.png");

IronBarcode vs NetBarcode: Özellik Karşılaştırması

ÖzellikNetBarcodeIronBarcode
1D barkod oluşturmaEvetEvet
2D barkod oluşturma (QR, DataMatrix, PDF417, Aztec)HayırEvet
Görüntülerden barkod okumaHayırEvet
PDF belgelerinden barkod okumaHayırEvet
1D format sayısı1130+
2D format sayısı08+
Toplam sembolojiler1150+
GS1-128, GS1 DataBarHayırEvet
Posta formatlarıHayırEvet
SVG çıktısıHayırEvet
Toplu işlemYönergeYerleşik
ImageSharp bağımlılığıEvet (ayrık lisans)Hayır
Ticari destekToplulukProfesyonel
Lisans modeliMIT (+ ImageSharp koşulları)Ticari

Hızlı Başlangıç: NetBarcode'dan IronBarcode'a Geçiş

Adım 1: NuGet Paketini Değiştirin

NetBarcode'u ve ImageSharp geçişli bağımlılığını kaldırın:

dotnet remove package NetBarcode
dotnet remove package SixLabors.ImageSharp
SHELL

SixLabors.ImageSharp, projedeki diğer paketler de dolaylı olarak referans veriyorsa geri yüklenen paket listesinde yeniden görünebilir. Kaldırdıktan sonra, ImageSharp'ın hala mevcut olup olmadığını ve ticari lisans koşulunun projeye hâlâ uygulanıp uygulanmadığını doğrulamak için dotnet list package --include-transitive çalıştırın.

Adım 2:IronBarcode Ekle

dotnet add package IronBarcode
SHELL

NuGet paket adı IronBarcode; kodda kullanılan isim alanı IronBarCode (büyük C harfine dikkat edin).

Adım 3: İsim Alanlarını Güncelleme ve Lisansı Başlatma

NetBarcode aramaları içeren her dosyada eski using direktiflerini değiştirme:

//Kaldırthese:
// using NetBarcode;
// using SixLabors.ImageSharp;
// using SixLabors.ImageSharp.PixelFormats;
// using SixLabors.Fonts;

// Add this:
using IronBarCode;
C#

Lisans başlatmasını uygulama başlangıcında bir kez ekleyin — Program.cs, Startup.cs veya projenin giriş noktasında:

IronBarCode.License.LicenseKey = "YOUR-LICENSE-KEY";

Değerlendirme için ücretsiz bir deneme anahtarı mevcuttur; bir lisans satın almak, oluşturulan barkod görüntülerindeki deneme filigranını kaldırır.

Kod Göç Örnekleri

Code128 Oluşturma

En yaygınNetBarcodekullanım deseni, bir yapıcıdan statik metoda değişim ve bir metod adının yeniden adlandırılması ile doğrudan IronBarcode'a çevrilir.

NetBarcode Yaklaşımı:

using NetBarcode;

var barcode = new Barcode("12345678901234", Type.Code128);
barcode.SaveImageFile("shipping-label.png");

IronBarcode Yaklaşımı:

using IronBarCode;

BarcodeWriter.CreateBarcode("12345678901234", BarcodeEncoding.Code128)
    .SaveAsPng("shipping-label.png");

new Barcode(data, Type.X) yapıcı BarcodeWriter.CreateBarcode(data, BarcodeEncoding.X) olur. SaveImageFile() metodu, gereken çıktı formatına bağlı olarak SaveAsPng(), SaveAsJpeg() veya SaveAsWindowsBitmap() olur. Tüm mevcut 1D barkod oluşturma seçenekleri IronBarcode rehberlerinde belgelenmiştir.

EAN-13

Perakende ürün barkod türleri, sabit bir yeniden adlandırma ve metod adı değiştirme ile doğrudan kütüphaneler arasında eşleşir.

NetBarcode Yaklaşımı:

using NetBarcode;

var ean13 = new Barcode("5901234123457", Type.EAN13);
ean13.SaveImageFile("product-ean.png");

IronBarcode Yaklaşımı:

using IronBarCode;

BarcodeWriter.CreateBarcode("5901234123457", BarcodeEncoding.EAN13)
    .SaveAsPng("product-ean.png");

Kodlama sabit isimleri, doğrudan eşdeğerler varsaNetBarcodeType enum üye isimleriyle eşleşir. UPC-A (Type.UPCA), UPC-E (Type.UPCE), ITF (Type.ITF) ve MSI (Type.MSI)NetBarcodeType enumunun bir parçası değildir — bu formatlar gerekli olduğunda IronBarcode, onları yerel olarak BarcodeEncoding.UPCA, BarcodeEncoding.UPCE, BarcodeEncoding.ITF ve BarcodeEncoding.MSI ile destekler.

GetImage() to ToPngBinaryData()

NetBarcode'un GetImage() metodu, çağrı kodunda açık ImageSharp ithalatları gerektiren ve sonraki mantığı ImageSharp API'sine bağlayan SixLabors.ImageSharp.Image<Rgba32> döndürüyor. IronBarcode, bir GeneratedBarcode nesnesi üzerinde doğrudan ikili ve akış çıkış metotları sağlar, böylece çağrı kodundan ImageSharp bağımlılığını tamamen kaldırır.

NetBarcode Yaklaşımı:

using NetBarcode;
using SixLabors.ImageSharp;
using SixLabors.ImageSharp.PixelFormats;

var barcode = new Barcode("12345", Type.Code128);
Image<Rgba32> image = barcode.GetImage();

using var stream = new MemoryStream();
image.SaveAsPng(stream);
byte[] bytes = stream.ToArray();

IronBarcode Yaklaşımı:

using IronBarCode;

var barcode = BarcodeWriter.CreateBarcode("12345", BarcodeEncoding.Code128);

// Retrieve bytes directly — no ImageSharp type in calling code
byte[] bytes = barcode.ToPngBinaryData();

// Or write to a stream directly
using var stream = new MemoryStream();
barcode.SaveAsPng(stream);

Image<Rgba32> sonucunda daha fazla ImageSharp işleme gerçekleştiren kod — yeniden boyutlandırma, bileşme, format dönüşümü — IronBarcode'un bir ImageSharp nesnesi sunmadığı için bu işlemlerin tek tek değerlendirilmesi gerekir.

NetBarcode ve QRCoder'ı Birlikte Değiştirme

NetBarcode ile birlikte QRCoder'ı çalıştıran projeler, her ikisini birden değiştirebilir. IronBarcode'un 2D üretimi, 1D üretimiyle aynı BarcodeWriter.CreateBarcode metodunu kullanır; sadece BarcodeEncoding sabiti farklıdır. Kodlama seçenekleri ve yapılandırma için 2D barkod oluşturma kılavuzuna bakın.

NetBarcode ve QRCoder Yaklaşımı:

using NetBarcode;
using QRCoder;

// 1D with NetBarcode
var code128 = new Barcode("12345", Type.Code128);
code128.SaveImageFile("label.png");

// QR with QRCoder
var qrGenerator = new QRCodeGenerator();
var qrData = qrGenerator.CreateQrCode("https://example.com", QRCodeGenerator.ECCLevel.M);
var qrCode = new PngByteQRCode(qrData);
File.WriteAllBytes("qr.png", qrCode.GetGraphic(20));

IronBarcode Yaklaşımı:

using IronBarCode;

// 1D — same API as 2D
BarcodeWriter.CreateBarcode("12345", BarcodeEncoding.Code128)
    .SaveAsPng("label.png");

// QR — change the encoding constant, nothing else
BarcodeWriter.CreateBarcode("https://example.com", BarcodeEncoding.QRCode)
    .SaveAsPng("qr.png");

// Additional 2D formats available with no further imports
BarcodeWriter.CreateBarcode("01034531200000111719112510ABCD1234", BarcodeEncoding.DataMatrix)
    .SaveAsPng("pharma-label.png");

Okuma Yetenekleri Ekleme

Proje ayrıca ZXing.Net'i okuma için kullanıyorsa, bu bağımlılıkNetBarcodeile birlikte kaldırılabilir. IronBarcode'un BarcodeReader, otomatik format algılama ile görüntüleri ve PDF belgelerini işliyor.

ZXing.Net Yaklaşımı:

using ZXing;
using ZXing.Common;
using ZXing.Rendering;

var reader = new BarcodeReaderGeneric();
reader.Options = new DecodingOptions { TryHarder = true };

// Bitmap loading and format-specific handling required before decode call

IronBarcode Yaklaşımı:

using IronBarCode;

// Read from an image file — automatic format detection
var imageResults = BarcodeReader.Read("shipping-label.png");
foreach (var r in imageResults)
{
    Console.WriteLine($"{r.Format}: {r.Value}");
}

// Read from a PDF document — no separate PDF library needed
var pdfResults = BarcodeReader.Read("supplier-invoice.pdf");
foreach (var r in pdfResults)
{
    Console.WriteLine($"Page {r.PageNumber}: {r.Format}: {r.Value}");
}

Okuma seçenekleri için tam dokümantasyon, hız ayarlaması, çoklu barkod algılama ve görüntü düzeltme ayarlarını kapsayan görüntülerden barkod okuma kılavuzunda mevcuttur.

NetBarcode API'den IronBarcode Mapping Başvuru

NetBarcodeIronBarcodeNotlar
new Barcode(data, Type.Code128)BarcodeWriter.CreateBarcode(data, BarcodeEncoding.Code128)Kurucu → statik yöntem
new Barcode(data, Type.EAN13)BarcodeWriter.CreateBarcode(data, BarcodeEncoding.EAN13)Doğrudan eşleme
new Barcode(data, Type.Code39)BarcodeWriter.CreateBarcode(data, BarcodeEncoding.Code39)Doğrudan eşleme
new Barcode(data, Type.EAN8)BarcodeWriter.CreateBarcode(data, BarcodeEncoding.EAN8)Doğrudan eşleme
new Barcode(data, Type.Codabar)BarcodeWriter.CreateBarcode(data, BarcodeEncoding.Codabar)Doğrudan eşleme
new Barcode(data, Type.Code93)BarcodeWriter.CreateBarcode(data, BarcodeEncoding.Code93)Doğrudan eşleme
barcode.SaveImageFile("x.png").SaveAsPng("x.png")Yöntem adı değiştirme
barcode.SaveImageFile("x.jpg").SaveAsJpeg("x.jpg")Yöntem adı değiştirme
barcode.GetImage()Image<Rgba32>.ToPngBinaryData() veya .SaveAsPng()GörüntüSharp türü açığa çıkmadı
Hayır Type.QRCodeBarcodeEncoding.QRCodeYeni özellik
Hayır Type.DataMatrixBarcodeEncoding.DataMatrixYeni özellik
Hayır Type.PDF417BarcodeEncoding.PDF417Yeni özellik
Hayır Type.AztecBarcodeEncoding.AztecYeni özellik
Okuma API'si yokBarcodeReader.Read(path)Yeni özellik
using NetBarcode;using IronBarCode;Ad alanı değişikliği
using SixLabors.ImageSharp;KaldırArtık gerekli değil
using SixLabors.ImageSharp.PixelFormats;KaldırArtık gerekli değil
using SixLabors.Fonts;KaldırArtık gerekli değil

Kodlama sabitlerinin tam listesi desteklenen barkod formatları referansındadır.

Yaygın Göç Sorunları ve Çözümleri

Sorun 1: Paket Kaldırıldıktan Sonra ImageSharp Geçişli Bağımlılığı Devam Ediyor

Sorun: dotnet remove package NetBarcode çalıştırıldıktan sonra, dotnet restore bağımlılık ağacında SixLabors.ImageSharp'ın hala mevcut olduğunu gösteriyor çünkü projedeki başka bir paket de onu referans ediyor.

Çözüm: ImageSharp'ı hala çeken paketi belirlemek için dotnet list package --include-transitive çalıştırın. Eğer sadeceNetBarcodeçekiyorsa, açık paket referansını kaldırıp geri yüklemek onu temizlemelidir. Bir başka paket sorumluysa, o paketin ImageSharp bağımlılığı ve ticari lisans koşulu,NetBarcodekaldırılmasından bağımsız olarak hâlâ kapsam içerisinde kalır.

dotnet list package --include-transitive | grep -i imagesharp
SHELL

Sorun 2: Image<Rgba32> Tipi Kaldırıldıktan Sonra Çözülemiyor

Sorun: SixLabors.ImageSharp paketini kaldırdıktan sonra, Image<Rgba32> olarak bildirilen her türlü değişken veya SixLabors.ImageSharp.Image<Rgba32> olarak türlendirilmiş bir parametre derleme hatası üretir çünkü tür artık mevcut değil.

Çözüm: Her kullanımı uygun IronBarcode çıkış yöntemiyle değiştirin. Değişken, bayt elde etmek için kullanıldıysa, .ToPngBinaryData() ile değiştirin. Eğer bir akışa yazılmışsa, .SaveAsPng(stream) ile değiştirin. Eğer bir dosyaya kaydedilmişse, .SaveAsPng(path) ile değiştirin.

// Before — requires SixLabors.ImageSharp reference
Image<Rgba32> img = barcode.GetImage();
img.SaveAsPng(stream);

// After — no external image type required
barcode.SaveAsPng(stream);

Sorun 3: v1.8 Bozucu Değişim Kapsamı

Sorun: v1.8 öncesinde NetBarcode'a karşı yazılmış kod tabanlarında, v1.8 öncesi içsel dönüş türüne dayanarak sonucu açık bir tür belirtmeden saklayan GetImage() çağrıları olabilir. Bu çağrılar, NetBarcode'un bir güncellemesinden sonra zaten kırılmış olabilir,IronBarcode geçişinden bağımsız olarak.

Çözüm: Herhangi bir önceden var olan v1.8 kopmalarını aynı anda çözmek için IronBarcode geçişini bir fırsat olarak kullanın. Tüm GetImage() çağrı noktaları bir proje genelinde arama ile bulunmalı ve geçiş sırasında uygun IronBarcode çıkış metodu ile değiştirilmelidir. Aşağıdaki geçiş kontrol listesinde yer alan grep komutları bu yerleri belirler.

NetBarcode Geçiş Kontrol Listesi

Öncesi-Geçiş

Herhangi bir değişiklik yapmadan önce tümNetBarcodekullanımını denetleyin:

grep -r "using NetBarcode" ./src
grep -r "new Barcode(" ./src
grep -r "Type\.Code128\|Type\.EAN13\|Type\.Code39\|Type\.EAN8" ./src
grep -r "Type\.Codabar\|Type\.Code93" ./src
grep -r "SaveImageFile(" ./src
grep -r "GetImage(" ./src
grep -r "using SixLabors\.ImageSharp" ./src
grep -r "Image<Rgba32>" ./src
SHELL
  • using direktif değişikliği gerektiren her dosyayı belirleyin
  • Tüm GetImage() çağrı noktalarını ve döndürülen Image<Rgba32> nesnesinin akış aşağısında nasıl kullanıldığını not edin
  • QRCoder veya ZXing.Net'in mevcut olup olmadığını ve aynı anda kaldırılabileceğini kontrol edin
  • Kaldırmadan önce mevcut ImageSharp bağımlılık durumunu belgelemek için dotnet list package --include-transitive çalıştırın -IronBarcode lisans anahtarı edinin (satın almadan ücretsiz bir deneme anahtarı mevcuttur)

Kod Güncellemesi

  1. dotnet remove package NetBarcode çalıştır
  2. Diğer paketler tarafından kullanılmıyorsa dotnet remove package SixLabors.ImageSharp çalıştır
  3. dotnet add package IronBarcode çalıştır
  4. Uygulama başlangıcında IronBarCode.License.LicenseKey = "YOUR-LICENSE-KEY"; ekleyin
  5. Her etkilenen dosyada using NetBarcode; ile using IronBarCode; değiştirin
  6. Tüm dosyalardan using SixLabors.ImageSharp;, using SixLabors.ImageSharp.PixelFormats; ve using SixLabors.Fonts; kaldırın
  7. Her bir new Barcode(data, Type.X) çağrısını API eşleme tablosunu kullanarak BarcodeWriter.CreateBarcode(data, BarcodeEncoding.X) ile çevirin
  8. SaveImageFile() ile SaveAsPng() veya uygun format spesifik metodu değiştirin
  9. GetImage() çağrılarını uygun şekilde ToPngBinaryData(), SaveAsPng() veya SaveAsPng(stream) ile değiştirin
  10. QRCoder kaldırılıyorsa: QRCodeGenerator + PngByteQRCode zincirlerini BarcodeWriter.CreateBarcode(data, BarcodeEncoding.QRCode) ile değiştirin
  11. ZXing.Net kaldırılıyorsa: okuyucu kurulumunu BarcodeReader.Read(path) ile değiştirin

Geçiş Sonrası Testler

  • Projeyi oluşturun ve derleme hatası olmadığını doğrulayın
  • Oluşturulan barkod çıktısına karşı mevcut birim testlerini çalıştırın
  • Doğru semboloji ve okunabilir içerik için barkod görüntülerini görsel olarak doğrulayın
  • Geçiş sırasında eklendiyse QR kodu çıktısını doğrulayın
  • Barkod taraması eklendiyse okuma işlevselliğini test edin
  • ImageSharp'ın artık mevcut olmadığını doğrulamak için dotnet list package --include-transitive çalıştırın, eğer kaldırıldıysa Lisans anahtarı başlatma işleminin uygulamamızdaki ilk barkod işletiminden önce çalıştığını doğrulayın

IronBarcode'a Geçmenin Temel Faydaları

Birleştirilen Format Kapsamı: Geçiş sonrasında, QR kodları, DataMatrix, PDF417, Aztec ve diğer bütün 2D formatlar, Code128 ve EAN-13 için kullanılan aynı API çağrısı ile mevcuttur. Format gereksinimleri genişlediğinde ikinci bir kütüphane gerekmez ve BarcodeEncoding sabiti format türleri arasında değişen tek şeydir.

Yerleşik Okuma: BarcodeReader.Read() otomatik format algılama ile görüntü dosyalarını ve PDF belgelerini işler. Daha önce okuma için ZXing.Net gerektiren projeler, bu bağımlılığı kaldırabilir ve projedeki geliştiricilerin öğrenmesi gereken API alanını azaltarak tek bir barkod kütüphanesine konsolide edebilir.

ImageSharp Yükümlülüğü Yok: IronBarcode'un SixLabors.ImageSharp bağımlılığı yoktur. Geçişten sonra, NetBarcode'un geçişli bağımlılıklarında yerleşik olan bölünmüş ticari lisans şartı artık proje için geçerli olmaz. Lisans uyumu incelemeleri daha basit hale gelir, çünkü barkod kütüphanesinin yükümlülükleri doğrudan belirtilir ve üçüncü parti bir görüntü işleme kütüphanesinin gelir eşik değerine bağlı değildir.

Kararlı Genel API: IronBarcode, genel API yüzeyinde üçüncü taraf türler sunmaz. GeneratedBarcode dönüş türü, BarcodeWriter.CreateBarcode dan gelen IronBarcode'un kendi türüdür, bu da IronBarcode'un içsel işleme güncellemelerinin gelecekteki güncellemelerinde çağrılan kodda kopmalara neden olmayacağı anlamına gelir, tıpkı NetBarcode'un v1.8 GetImage() tür değişikliklerinde olduğu gibi.

Bakım Yapılacak Tek Bağımlılık: NetBarcode, QRCoder ve ZXing.Net'i IronBarcode ile değiştirmek, üç yükseltme döngüsünü, üç set sürüm notunu ve üç potansiyel sürüm çatışmasını bire indirdi. .NET sürümleri ilerledikçe ve bağımlılık güncellemeleri gerekli hale geldikçe, bakım çalışmaları üç yerine tek bir kütüphaneye ölçeklenir.

Lütfen dikkate alın: NetBarcode, QRCoder ve ZXing.NET ilgili sahiplerinin tescilli markalarıdır. Bu site, NetBarcode, QRCoder veya ZXing.NET ile ilişkili, desteklenen veya tarafından finanse edilen değildir. 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.
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ılandırılmış, görsel olarak çekici kılavuzlar oluşturmayı seviyor.

...
Daha Fazla Oku

İlgili Makaleler

Key in blue circle

Ücretsiz 30 günlük Deneme Anahtarınızı anında edinin.

Your trial license will be sent to your email address

Herhangi bir sınırlama yoktur. %100 erişim. Kredi kartı gerekmez.

bullet_checkedKredi kartı veya hesap oluşturma gerektirmezHerhangi bir sınırlama yoktur. %100 erişim. Kredi kartı gerekmez.
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
Ücretsiz Canlı Demo rezervasyonu yapın
Booking Badge

Dünya Çapında Milyonlarca Mühendisin Güvendiği

Iron Software müşteri logoları
Bağımsız Danışmanlık Alın
Aşağıdaki formu doldurun veya sales@ironsoftware.com adresine e-posta gönderin
Bilgileriniz daima gizli kalacaktır.
Dünya Çapında Milyonlarca Mühendisin Güvendiği
Iron Software müşteri logoları
Ücretsiz 30 Günlük Deneme Anahtarınızı anında alın.
Kredi kartı veya hesap oluşturma gerektirmez