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

Barcode4.NET ve IronBarcode: C# Barkod Kütüphanesi Karşılaştırması

Barcode4NET, resmi bir duyuru olmadan kullanım ömrünün sonuna ulaştı. Yeni lisanslar ComponentSource aracılığıyla satılmayı durdurdu, hiçbir NuGet paketi yayınlanmadı ve kütüphane yalnızca .NET Framework'ü hedef aldı.Barcode4NETbağımlılığını devralan ekipler için, bu makale o kütüphanenin sundukları ile IronBarcode'un bugün sağladıkları arasında bir karşılaştırma yapmaktadır — platform erişimi, API tasarımı, barkod okuma yeteneği ve paralel bir değerlendirmeyi biraz alışılmadık hale getiren lisanslama gerçeği.

Barcode4NET'i Anlamak

Barcode4NET, ComponentSource ve benzeri yazılım satıcıları aracılığıyla dağıtılan ticari bir barkod jenerasyon kütüphanesiydi. Windows tabanlı.NET Frameworkuygulamaları için — öncelikle Windows Formları ve ASP.NET Web Formları — tasarlandı ve o dönemin temel 1D sembolojileri için temiz bitmap çıktılar sağladı.

Kütüphane hiçbir zaman bir NuGet paketi olarak mevcut olmadı. Bir DLL olarak dağıtıldı ve yazılımcılar tarafından kaynak kontrolüne eklendi veya paylaşılan bir artefakt konumuna yerleştirildi. Onu kullanan her proje, disk üzerindeki DLL'ye işaret eden <Reference> öğesinin .csproj dosyasında manüel olarak bulunmasını gerektiriyordu.Barcode4NETaktifken bu standart bir uygulamaydı, ancak modern CI/CD iş akışlarında önemli bir sürtünme yaratıyor.

Barcode4NET'in temel mimari özellikleri:

  • Özellik-ayarlayıcı API: Geliştiriciler bir Barcode nesnesi oluşturur, Symbology, Data, Width ve Height gibi özellikleri atayıp, ardından bir System.Drawing.Bitmap almak için GenerateBarcode() çağrısını yaparlar.
  • 1D semboloji odaklı: Code128, Code39, EAN-13 ve UPC-A desteklenmiştir; QR kod desteği sürüme bağlı olarak sınırlıydı
  • Yalnızca oluşturma: Hiçbir zaman barkod okuma veya tarama yeteneği sunulmadı
  • Sadece Windows ve .NET Framework: Hiçbir .NET Core, .NET 5+, Linux, macOS,Dockerveya bulut çalışma zamanı desteği yoktu
  • NuGet dağıtımı yok: Her proje dosyasında ve yapı hattında manuel DLL referansı gereklidir
  • Kullanım ömrünün sonu: Yeni lisanslar mevcut değil, güvenlik yamaları, hata düzeltmeleri ve satıcıdan herhangi bir geçiş yolu bulunmuyor

Barcode4NET Üretim API'si

Barcode4NET içerisindeki tam üretim iş akışı bir özellik-atayıcı desen kullanıyordu:

//Barcode4NET— manual DLL,.NET Frameworkonly
//HayırNuGet paketi — requires ThirdParty/Barcode4NET/Barcode4NET.dll in source control
using Barcode4NET;
using System.Drawing;
using System.Drawing.Imaging;

var barcode = new Barcode4NET.Barcode();
barcode.Symbology = Symbology.Code128;
barcode.Data = "ITEM-12345";
barcode.Width = 300;
barcode.Height = 100;
Bitmap barcodeImage = barcode.GenerateBarcode();
barcodeImage.Save(outputPath, ImageFormat.Png);
//Barcode4NET— manual DLL,.NET Frameworkonly
//HayırNuGet paketi — requires ThirdParty/Barcode4NET/Barcode4NET.dll in source control
using Barcode4NET;
using System.Drawing;
using System.Drawing.Imaging;

var barcode = new Barcode4NET.Barcode();
barcode.Symbology = Symbology.Code128;
barcode.Data = "ITEM-12345";
barcode.Width = 300;
barcode.Height = 100;
Bitmap barcodeImage = barcode.GenerateBarcode();
barcodeImage.Save(outputPath, ImageFormat.Png);
Imports Barcode4NET
Imports System.Drawing
Imports System.Drawing.Imaging

Dim barcode As New Barcode4NET.Barcode()
barcode.Symbology = Symbology.Code128
barcode.Data = "ITEM-12345"
barcode.Width = 300
barcode.Height = 100
Dim barcodeImage As Bitmap = barcode.GenerateBarcode()
barcodeImage.Save(outputPath, ImageFormat.Png)
$vbLabelText   $csharpLabel

Bu,Barcode4NETAPI yüzeyinin tamamına karşılık gelir. Kütüphane, akıcı zincirleme, okuma yeteneği, PDF çıktısı ve logo gömme veya hata düzeltme kontrolü gibi gelişmiş QR kod seçenekleri sunmuyordu.

IronBarcode'u Anlamak

IronBarcode, Iron Software'dan ticari bir .NET barkod kütüphanesidir ve hem barkod oluşturma hem de barkod okumayı tek bir pakette kapsar. Sadece NuGet aracılığıyla dağıtılır,.NET Framework4.6.2'den .NET 9'a kadar hedefler ve Windows, Linux, macOS, Docker, Azure ve AWS Lambda'da çalışır.

Kütüphane, akıcı bir statik API etrafında inşa edilmiştir. Üretim, veri dizesi ve kodlama türü ile BarcodeWriter.CreateBarcode() kullanır, ardından boyut, renk ve biçim için zincirlenebilir seçenekler gelir. Okuma, resim dosya yollarını, akışları ve ayrı bir PDF kütüphanesine ihtiyaç duymadan PDF belgelerini kabul eden BarcodeReader.Read() kullanır.

IronBarcode'un ana özellikleri:

  • Akıcı statik üretim API'si: BarcodeWriter.CreateBarcode(), .ResizeTo(), .AddAnnotationTextAboveBarcode() ve tek bir ifade içinde kaydetme yöntemlerini zincirler
  • Barkod okuma: BarcodeReader.Read(), resimlerden ve PDF'lerden doğal olarak barkodları çözer
  • Geniş format desteği: Code128, Code39, EAN-13, UPC-A, QR Kod, Data Matrix, PDF417, Aztec ve dahası
  • QR kodu uzmanlaşması: QRCodeWriter.CreateQrCode(), logo ekleme ve hata düzeltme seviyesi gibi QR'ye özgü seçenekler sunar
  • NuGet dağıtımı: Standart dotnet add package IronBarcode kurulumu; dotnet restore tüm bağımlılıkları ele alır
  • Çapraz platform: Windows, Linux ve macOS üzerinde .NET 5, 6, 7, 8 ve 9'da çalışır,Dockerkonteynerları ve sunucusuz bulut çalışma ortamlarını da içerir
  • Aktif ticari ürün: Düzenli güncellemeler, güvenlik yamaları, .NET sürüm uyumluluk güncellemeleri ve belirlenen fiyat noktalarında satın alınabilir lisanslar

Özellik Karşılaştırması

Aşağıdaki tablo,Barcode4NETveIronBarcodearasında en önemli farklılıkları vurgulamaktadır:

Özellik Barcode4NET IronBarcode
NuGet paketi Hayır — yalnızca manuel DLL Evet (IronBarcode)
Barkod oluşturma Evet Evet
Barkod okuma Hayır Evet
Çapraz platform desteği Hayır — sadece Windows Evet — Windows, Linux, macOS
Aktif bakım Hayır (kullanım ömrü sonu) Evet
Yeni lisanslar mevcut Hayır Evet

Detayli Özellik Karsilastirmasi

Özellik Barcode4NET IronBarcode
Uretim
Code128 oluşturma Evet Evet
Code39 oluşturma Evet Evet
EAN-13 / UPC-A oluşturma Evet Evet
QR kod uretimi Sınırlı Evet — QRCodeWriter.CreateQrCode()
Logo ile QR kod Hayır Evet — .AddBrandLogo()
Data Matrix / PDF417 / Aztec Hayır Evet
Akıcı zincirlenebilir API Hayır Evet
Okuma
Görüntülerden barkod okuma Hayır Evet — BarcodeReader.Read()
PDF'lerden barkod okuma Hayır Evet — yerel, ek kütüphane yok
Çoklu barkod algılama Hayır Evet — ExpectMultipleBarcodes
Okuma hızı yapılandırması Hayır Evet — ReadingSpeed enum
Platform
.NET Framework Evet Evet (.NET Framework 4.6.2+)
.NET 5 / 6 / 7 / 8 / 9 Hayır Evet
Linux / macOS Hayır Evet
Docker Hayır Evet
Azure / AWS Lambda Hayır Evet
Dağıtım
NuGet paketi Hayır Evet
dotnet restore uyumlu Hayır Evet
CI/CD entegrasyonu Manuel DLL adımları Standart geri yükleme
Bakım
Aktif geliştirme Hayır (kullanım ömrü sonu) Evet
Güvenlik yamaları Hayır Evet
Hata düzeltmeleri Hayır Evet
Yeni lisanslar Hayır Evet — Lite $749, Plus $1.499, Professional $2.999, Unlimited $5.999

Nesil API Tasarımı

Nesil API'si, bu iki kütüphane arasındaki en doğrudan karşılaştırma noktasıdır, çünküBarcode4NETsadece bu yeteneği sunuyordu.

Barcode4NET Yaklaşımı

Barcode4NET, bir zorunlu özellik-ayarlayıcı deseni kullanıyordu. Geliştiriciler bir Barcode nesnesi oluşturdu, tek tek özellikleri atadı ve GenerateBarcode() bir System.Drawing.Bitmap almak için çağırdı:

using Barcode4NET;
using System.Drawing;
using System.Drawing.Imaging;

public Bitmap GenerateLabel(string sku)
{
    var barcode = new Barcode4NET.Barcode();
    barcode.Symbology = Symbology.Code128;
    barcode.Data = sku;
    barcode.Width = 400;
    barcode.Height = 120;
    return barcode.GenerateBarcode();
}
using Barcode4NET;
using System.Drawing;
using System.Drawing.Imaging;

public Bitmap GenerateLabel(string sku)
{
    var barcode = new Barcode4NET.Barcode();
    barcode.Symbology = Symbology.Code128;
    barcode.Data = sku;
    barcode.Width = 400;
    barcode.Height = 120;
    return barcode.GenerateBarcode();
}
Imports Barcode4NET
Imports System.Drawing
Imports System.Drawing.Imaging

Public Function GenerateLabel(sku As String) As Bitmap
    Dim barcode As New Barcode4NET.Barcode()
    barcode.Symbology = Symbology.Code128
    barcode.Data = sku
    barcode.Width = 400
    barcode.Height = 120
    Return barcode.GenerateBarcode()
End Function
$vbLabelText   $csharpLabel

Dönen tür — System.Drawing.Bitmap — çağrı kodunun, görüntüyü kaydetmek, görüntülemek veya akışa almakla sorumlu olduğu anlamına geliyordu. Bu, bir Bitmap'in doğrudan bir PictureBox'e atanabileceği WinForms uygulamaları için uygundu, ancak başka bir çıktı hedefi için ek dönüşüm adımları gerektiriyordu.

IronBarcode Yaklaşımı

IronBarcode, akışkan bir statik API kullanır. Tek bir yöntem çağrısı jenerasyonu başlatır ve zincirlenebilir yöntemler, terminal kaydetme veya dönüştürme yöntemi öncesinde sonucu yapılandırır:

// NuGet: dotnet add package IronBarcode
using IronBarCode;

public byte[] GenerateLabel(string sku)
{
    return BarcodeWriter.CreateBarcode(sku, BarcodeEncoding.Code128)
        .ResizeTo(400, 120)
        .ToPngBinaryData();
}
// NuGet: dotnet add package IronBarcode
using IronBarCode;

public byte[] GenerateLabel(string sku)
{
    return BarcodeWriter.CreateBarcode(sku, BarcodeEncoding.Code128)
        .ResizeTo(400, 120)
        .ToPngBinaryData();
}
Imports IronBarCode

Public Function GenerateLabel(sku As String) As Byte()
    Return BarcodeWriter.CreateBarcode(sku, BarcodeEncoding.Code128) _
        .ResizeTo(400, 120) _
        .ToPngBinaryData()
End Function
$vbLabelText   $csharpLabel

BarcodeEncoding enum, doğrudan Symbology enum'a karşılık gelir. .ResizeTo(), Width ve Height özellik atamalarının yerini alır. Sonlandırıcı yöntemler — .SaveAsPng(), .SaveAsJpeg(), .ToPngBinaryData() — ayrı ayrı GenerateBarcode() ve bitmap kaydetme çağrılarının yerini alır. IronBarcode barkod yaratma dokümantasyonunda daha gelişmiş yaratma senaryoları için açıklamalar bulunur.

Barkod Okuma Yeteneği

Okuma yeteneği, bu iki kütüphane arasındaki en keskin yetenek farkıdır. Barcode4NET, hiçbir versiyonunda barkod okuma sunmamıştır. IronBarcode, oluşturma ile aynı paket içinde tam okuma yeteneği içerir.

Barcode4NET Yaklaşımı

Barcode4NET'in okuma API'si yoktu. Görüntülerden veya taranmış belgelerden barkodları çözmesi gereken ekiplerin, tamamen ayrı bir kitaplık entegre etmesi gerekiyordu — ya open-source alternatif ZXing.Net ya da ticari bir tarayıcı SDK'sı. Sonuç, yaratma içinBarcode4NETve okuma için ikinci bir kütüphane ile iki ayrı bağımlılık zinciri oldu.

IronBarcodeYaklaşımı

IronBarcode, resim dosya yollarını, akış nesnelerini ve PDF belgelerini kabul eden statik bir yöntem olarak BarcodeReader.Read() sağlar:

using IronBarCode;

// Read from an image file
var results = BarcodeReader.Read("barcode.png");
foreach (var result in results)
{
    Console.WriteLine($"Value: {result.Value}");
    Console.WriteLine($"Format: {result.Format}");
}

// Read all barcodes from a multi-page PDF — no extra PDF library required
var pdfResults = BarcodeReader.Read("invoice-batch.pdf");
foreach (var result in pdfResults)
{
    Console.WriteLine($"Page {result.PageNumber}: {result.Value}");
}
using IronBarCode;

// Read from an image file
var results = BarcodeReader.Read("barcode.png");
foreach (var result in results)
{
    Console.WriteLine($"Value: {result.Value}");
    Console.WriteLine($"Format: {result.Format}");
}

// Read all barcodes from a multi-page PDF — no extra PDF library required
var pdfResults = BarcodeReader.Read("invoice-batch.pdf");
foreach (var result in pdfResults)
{
    Console.WriteLine($"Page {result.PageNumber}: {result.Value}");
}
Imports IronBarCode

' Read from an image file
Dim results = BarcodeReader.Read("barcode.png")
For Each result In results
    Console.WriteLine($"Value: {result.Value}")
    Console.WriteLine($"Format: {result.Format}")
Next

' Read all barcodes from a multi-page PDF — no extra PDF library required
Dim pdfResults = BarcodeReader.Read("invoice-batch.pdf")
For Each result In pdfResults
    Console.WriteLine($"Page {result.PageNumber}: {result.Value}")
Next
$vbLabelText   $csharpLabel

Yüksek hacimli veya gürültülü görüntü senaryoları için, BarcodeReaderOptions sınıfı okuma hızını ve çoklu barkod algılamasını kontrol sağlar. Yapılandırma seçenekleri için barkod okuma dokümantasyonuna bakınız.

Platform ve Dağıtım Kapsamı

Platform desteği, .NET modernizasyon projelerini üstlenen ekipler için en belirleyici farkı temsil eder.

Barcode4NET Yaklaşımı

Barcode4NET,.NET Frameworktoplantılarına karşı derlenmişti. Windows üzerinde,.NET Frameworkuygulamalarında, IIS barındırılan Web Forms ve Windows Forms projelerinde çalışırdı. Linux derlemeleri, .NET Core derlemeleri ve bulut çalışma zamanı desteği yoktu. Microsoft .NET Core'u tanıtıp daha sonra platformu .NET 5+ olarak birleştirdiğinde, Barcode4NET'in ayinleşen güncellemeleri yoktu. net5.0 veya sonrasını hedefleyen herhangi bir proje kütüphaneye hiç bir şekilde referans veremez.

DLL dağıtım modeli platform kısıtlamasını daha da zorlaştırdı. Her derleme ortamı — geliştirici iş istasyonu, derleme ajanı,Dockerkonteyneri — bilinen bir yolda mevcut DLL'e ihtiyaç duyuyordu. Kapsayıcı tabanlı dağıtımlarda, bu, ya DLL'nin özel bir temel görüntüye eklenmesi ya da kapsayıcı derlemesi sırasında kopyalanması anlamına geliyordu, bunlardan hiçbiri standart dotnet restore iş akışları ile uyumlu değildir.

IronBarcode Yaklaşımı

IronBarcode, tek bir NuGet paketi üzerinden çoklu-çerçeve hedefler:.NET Framework4.6.2'den .NET 9'a kadar ve Windows, Linux ve macOS üzerindeki tüm güncel .NET sürümleri.Dockerkonteynerlerine dağıtım, standart .NET çalışma zamanı imajlarını değişiklik yapmaksızın kullanır. Aynı NuGet paketi üzerinden Azure Functions, AWS Lambda ve diğer sunucusuz çalışma zamanları desteklenir. dotnet restore komutu tüm bağımlılıkları manuel DLL yönetimi olmadan çözer.

Lisans Mimarisi ve Tedarikçi Durumu

Barcode4NET için lisans durumu, rekabetçi bir nokta değil — kütüphaneyi kullanmaya devam edip etmeme kararı üzerine her kararı şekillendiren pratik bir kısıtlamadır.

Barcode4NET Yaklaşımı

Barcode4NET ömrünün sonundadır. Yeni lisanslar ComponentSource veya başka hiçbir kanal üzerinden temin edilememektedir. Bir geliştirici,Barcode4NETkullanan bir ekibe katılırsa, onlar için bir koltuk almak için mekanizma yoktur. Mevcut lisansların ne şekilde yapılandırıldığına bağlı olarak, yeni bir geliştirici geliştirme sırasında barkod ile ilgili kodu çalıştırmak veya hata ayıklamak için yasal olarak yeterli olmayabilir. Hata izleyicisi, destek kanalı veya kusurlar hakkında iletişim kuracak bir satıcı yoktur. Son sürümden sonra keşfedilen güvenlik açıkları kalıcı olarak giderilmemiş olarak kalır.

IronBarcodeYaklaşımı

IronBarcode, sürekli bakımı yapılan ticari bir ürün olup, süreli lisanslama sunar. Kademeler, tek geliştiricili Lite lisansı için $749'dan başlar, Plus ($1,499, 3 geliştirici), Professional ($2,999, 10 geliştirici) ve Unlimited ($5,999) kademeleri mevcuttur. Tüm kademeler, telif ücreti talep etmeyen dağıtımı içerir. Güvenlik yamaları, hata düzeltmeleri ve .NET sürüm uyumluluk güncellemeleri, düzenli bir sürüm döngüsü içinde gönderilir. Lisans anahtarı olmadan değerlendirme için 30 günlük ücretsiz deneme mevcuttur.

API Eslestirme Referansi

Barcode4NET IronBarcode
new Barcode4NET.Barcode() BarcodeWriter.CreateBarcode(data, encoding)
barcode.Symbology = Symbology.Code128 BarcodeEncoding.Code128 (CreateBarcode parametresi için)
barcode.Data = "ITEM-12345" CreateBarcode()'ın ilk parametresi
barcode.Width = 300; barcode.Height = 100 .ResizeTo(300, 100)
barcode.GenerateBarcode(), Bitmap döner .SaveAsPng(path) / .ToPngBinaryData()
Symbology.QRCode BarcodeEncoding.QRCode
Symbology.Code39 BarcodeEncoding.Code39
Symbology.EAN13 BarcodeEncoding.EAN13
Symbology.UPCA BarcodeEncoding.UPCA
Manuel DLL <Reference Include="Barcode4NET"> <PackageReference Include="IronBarcode" />
Okuma API'si yok BarcodeReader.Read(path)
PDF desteği yok BarcodeReader.Read("doc.pdf") yerel
Sadece .NET Framework .NET Framework 4.6.2'den .NET 9'a kadar

Ekipler Barcode4NET'den IronBarcode'ye Geçişi Düşündüğünde

Engellenmiş .NET Yükseltmesi

En yaygın zorlama olayı, bir .NET modernizasyon projesidir. Bir ekip, onların .csproj ile net8.0 hedefliyor, derlemeyi çalıştırıyor ve Barcode4NET'in artık referanslanmayan.NET Frameworkderlemelerine karşı derlendiği için bir derleme hatasıyla karşılaşıyor. Hata kesin: kütüphane yeni hedef çerçeve altında yüklenmeyecek. Bu noktada ekip bir ikili seçimle karşılaşır — hedef çerçeve değişikliğini geri almak ve.NET Frameworküzerinde kalmak veya Barcode4NET'i değiştirmek. Geçiş, genişletilmiş modernleşme çabasını engellemeden ertelenemez.

Altyapı Değişikliklerinden Sonra CI/CD Hattı Hataları

Barcode4NET'in DLL dağıtım modeli, derleme hatlarında gizli kırılganlık yaratır. Bir derleme ajanı yeniden sağlandığında, bir konteyner imajı güncellendiğinde veya yeni bir CI ortamı yapılandırıldığında,Barcode4NETDLL'i projenin dosyanın beklediği yola manuel olarak yerleştirilmelidir. Bu adımı dikkatlice belgelememiş olan ekipler, yalnızca hat çekmecesi başarısız olduğunda problemi keşfeder. IronBarcode'a geçiş, her şeyi dotnet restore işliyor anlamına gelir — DLL konumu sorunu ortadan kalkar.

Yeni Ekip Üyelerine Lisans Alınamıyor

Projeye bir müteahhit katıldığında ya da ikinci bir geliştirici barkod özellikleri üzerinde çalışması gerektiğinde, satın alınacak bir lisans yoktur. Ekip bu sınırlamanın etrafından dolanmak zorundadır — ya yeni geliştirici tamamen barkod kodundan kaçınır ya da biri, orijinal koşullar altında yasal olarak devredilemeyebilecek bir lisansı devreder. Hiçbir durum, ürünü aktif olarak geliştiren bir ekip için sürdürülebilir değildir.

Güvenlik ve Uyum Denetimleri

Yazılım Malzeme Faturası oluşturma veya kullanım ömrü sonu veri tabanlarına karşı bağımlılık kontrolü yapan kuruluşlar, Barcode4NET'i bir bulgu olarak karşılar. Aktif satıcısı olmayan, CVE izlemesi olmayan ve yama bulunabilirliği olmayan bir ticari üründür. Güvenlik denetçileri, ömrünün sonuna gelmiş ticari bağımlılıkları olgun open-source kütüphanelerden farklı değerlendirir — bir satıcı yanıt süreci olmadığı için herhangi bir güvenlik açığı kalıcı olarak ablukasız kalır. Bu genellikle ertelenmiş bir risk yerine resmi bir iyileştirme maddesi haline gelir.

Var Olan Bir İş Akışına Okuma Yeteneği Eklendiğinde

Başlangıçta Barcode4NET'i yalnızca yaratım iş akışları için kullanan ekipler, daha sonra taranmış belgelerden barkodları doğrulamaları, kullanıcı tarafından yüklenen görüntüleri işlemesi veya PDF faturalarından veri çıkarması gerektiğini keşfeder.Barcode4NETile bu, ikinci bir kütüphaneyi entegrasyon gerektirir. IronBarcode'un BarcodeReader.Read(), hem resimleri hem de PDF'leri doğal olarak işler, bağımlılığı tek bir bakım paketi altında toplar.

Genel Geçiş Dusunceleri

DLL Referansının Kaldırılması

Barcode4NET hiçbir zaman bir NuGet paketi olarak dağıtılmadı, bu nedenle dotnet remove package komutu yok. Kütüphaneye referans veren her .csproj dosyası, disk üzerinde DLL'ye işaret eden bir <HintPath> elementi içeren bir <Reference Include="Barcode4NET"> elementi içerir. Bu öğelerin herbiri bulunmalı ve elle kaldırılmalıdır. Çözüm genelinde bir grep onları bulur:

grep -rl "Barcode4NET" --include="*.csproj" .
grep -rl "Barcode4NET" --include="*.csproj" .
SHELL

Kaynak kontrolde yer alan DLL dizini — tipik olarak ThirdParty/Barcode4NET/ veya lib/git rm ile silinmek üzere de sahnelenmelidir.

Dönüş Tipinin Bitmap'ten Bayt Dizisine Değiştirilmesi

Barcode4NET'in GenerateBarcode()'i bir System.Drawing.Bitmap döner. IronBarcode'un akıcı zinciri .ToPngBinaryData() sonunda byte[] döner veya direkt disk üzerinde .SaveAsPng() yazar. Dönen değeri Bitmap türünde bir değişkene atayan veya bir Bitmap bekleyen bir metoda — örneğin bir WinForms PictureBox gibi — aktaran kod, çağrı yerinde tek satırlık bir ayarlama gerektirir: bayt dizisini bir MemoryStream içine sarın ve Image.FromStream() çağırın.

Simge Koleksiyonu Enum Yeniden Adlandırma

Barcode4NET'teki Symbology enum'u, IronBarcode'daki BarcodeEncoding enum'uyla doğrudan eşleşir. Tüm genel değerler — Code128, Code39, EAN13, UPCA, QRCode — isimlerini korur. Symbology. ile BarcodeEncoding. çözüm genelinde bul-değiştir işlemi çoğu durumu kapsar, ancak her bir değiştirmenin bağlamı doğrulamak için gözden geçirilmelidir.

Yapı Betiği Temizleme

Barcode4NET DLL'sini çıktı dizinlerine ya da yapı ajanlarına kopyalayan yapı betikleri ve CI/CD yapılandırma dosyaları güncellenmelidir. NuGet geçişinden sonra bu adımların eşdeğeri yok — dotnet restore tüm manuel DLL yönetiminin yerini alır. Göçten sonra eski DLL kopyalama adımlarını olduğu gibi bırakmak derleme hatalarına neden olmaz, ancak gelecekteki bakımcılar için kafa karışıklığı yaratan ölü bir yapılandırmayı temsil eder.

EkIronBarcodeIlkeler

Barcode4NET'in yaşam döngüsünde hiçbir noktada parçası olmayan IronBarcode'ta mevcut özellikler:

  • Resimlerden barkod okuma: BarcodeReader.Read(), PNG, JPEG, TIFF ve diğer görüntü formatlarından tüm ana 1D ve 2D sembolojileri çözer
  • PDF barkod okuma: Yerel PDF girişi desteği — ayrı bir PDF çıkarım kütüphanesine ihtiyaç yok
  • QR kodu logo ekleme: Markalı QR kodlar için .AddBrandLogo() ile QRCodeWriter.CreateQrCode()
  • 2D format üretim: QR kodun yanı sıra Data Matrix, PDF417 ve Aztec
  • Çoklu barkod algılama: BarcodeReaderOptions.ExpectMultipleBarcodes, tek bir görüntüdeki tüm barkodları bulur
  • Okuma hız ayarlama: ReadingSpeed enum, yüksek hacimli işlem için verimliliği doğruluğa karşı dengeler
  • ASP.NET Core entegrasyonu: .ToPngBinaryData()'dan doğrudan temiz kontrolcü aksiyon yanıtları için byte[] döner

.NET Uyumlulugu ve Gelecek Hazirikligi

IronBarcode,.NET Framework4.6.2'den .NET 9'a kadar olan sürümleri destekler ve yeni .NET sürümleri yayınlandıkça uyumluluk güncellemeleri alır. 2026'nın sonlarında .NET 10'un çıkması beklenirken Iron Software, genel kullanılabilirlik öncesinde önizleme uyumlu yapılar yayınlar. Barcode4NET'in.NET Frameworkötesinde bir .NET sürümü yoktur ve gelecekte herhangi bir güncelleme almayacaktır..NET Framework4.x üzerinde çalışan ekipler, IronBarcode'a geçiş yapabilir ve ardından barkod kütüphanesi sınırlamaları olmaksızın hedef platformlarını mevcut veya gelecekteki herhangi bir .NET sürümüne özgürce yükseltebilirler.

Sonuç

Barcode4NET ve IronBarcode, .NET barkod geliştirme geçmişindeki farklı noktaları temsil eder. Barcode4NET, kendi döneminde işlevsel, iyi kapsamlanmış bir kütüphaneydi —.NET Frameworküzerinde Windows Forms ve Web Forms uygulamaları için temiz bitmap çıktısı üreten bir özellik-atanır API. IronBarcode, akıcı bir statik API'ye sahip, tam barkod okuma desteği sunan, platformlar arası çalışma süresi kapsamı olan ve standart NuGet dağıtımı içeren mevcut bir ticari üründür.

Karşılaştırma alışılmadık çünküBarcode4NETartık yaşayan bir ürün değildir. Güncellemeler, güvenlik yamaları veya yeni lisans satışları almaz. Yeni bir proje için hangi kütüphaneyi benimseyeceklerine karar veren ekipler, o değerlendirmedeBarcode4NETile karşılaşmazlar — bu yalnızca üretimde buna sahip olan ekipler için ve ne zaman ve nasıl geçileceğine karar verirken ilgilidir.

Üretimde Barcode4NET'e sahip olan ekipler içinIronBarcodedoğal bir yedektir. API eşlemesi doğrudandır, kod değişiklikleri yüzeyseldir ve üretim semantiği eşdeğerdedir. Kazanç, aslında bakımı yapılan, yeni takım üyeleri tarafından yüklenebilir ve modern .NET sürümleri ve dağıtım ortamları ile uyumlu olan bir bağımlılıktır.

Dürüst değerlendirme, bunun iki geçerli seçenek arasında rekabetçi bir tercih olmadığıdır. Barcode4NET, yeni takım üyelerine genişletilemez, modern .NET üzerinde çalışamaz ve güvenlik sorunları için yamalanamaz.IronBarcodeyapabilir. Geçiş kararı, API tercihi veya özellik karşılaştırması yerine bu pratik kısıtlamalar tarafından yönlendirilir.

Sıkça Sorulan Sorular

Barcode4.NET nedir?

Barcode4.NET, C# uygulamalarında barkod oluşturma ve okuma için kullanılan bir .NET barkod kütüphanesidir. Geliştiricilerin .NET projeleri için bir barkod çözümü seçerken değerlendirdiği birkaç alternatiften biridir.

Barcode4.NET ve IronBarcode arasındaki ana farklar nelerdir?

IronBarcode, örnek yönetimi gerektirmeyen statik, durumsuz bir API kullanırken, Barcode4.NET genellikle kullanılmadan önce örnek oluşturma ve yapılandırma gerektirir. IronBarcode ayrıca yerel PDF desteği, otomatik format algılama ve tüm ortamlarda tek anahtar lisanslama sağlar.

IronBarcode'u lisanslamak, Barcode4.NET'ten daha mı kolay?

IronBarcode, hem geliştirme hem de üretim dağıtımlarını kapsayan tek bir lisans anahtarı kullanır. Bu durum, CI/CD hatları ve Docker yapılandırmalarını, SDK anahtarlarını çalıştırma anahtarlarından ayıran lisanslama sistemleriyle karşılaştırıldığında basitleştirir.

IronBarcode, Barcode4.NET'in desteklediği tüm barkod formatlarını destekliyor mu?

IronBarcode, QR Code, Code 128, Code 39, DataMatrix, PDF417, Aztec, EAN-13, UPC-A, GS1 ve daha fazlası dahil 30'dan fazla barkod sembolojisini destekler. Format otomatik algılama, açık format sayımı gerektirmez.

IronBarcode yerel PDF barkod okuma desteği veriyor mu?

Evet. IronBarcode, BarcodeReader.Read('document.pdf') kullanarak PDF dosyalarından barkodları doğrudan okur, ayrı bir PDF işleme kütüphanesi gerektirmez. Sayfa başına sonuçlar, sayfa numarası, barkod formatı, değeri ve güven skoru içerir.

IronBarcode, Barcode4.NET ile karşılaştırıldığında toplu işlemeyi nasıl yönetiyor?

IronBarcode'un statik yöntemleri durumsuz ve doğal olarak iş parçacığı güvenlidir, Parallel.ForEach'in doğrudan kullanımını sağlar ve iş parçacığı başı örnek yönetimi gerektirmez. Hiçbir fiyatlandırma seviyesi için bant genişliği sınırı yoktur.

IronBarcode hangi .NET sürümlerini destekliyor?

IronBarcode, .NET Framework 4.6.2+, .NET Core 3.1 ve .NET 5, 6, 7, 8 ve 9'u tek bir NuGet paketi içinde destekler. Platform hedefleri arasında Windows x64/x86, Linux x64 ve macOS x64/ARM bulunuyor.

.NET projesine IronBarcode'u nasıl kurarım?

NuGet aracılığıyla IronBarcode'u kurun: 'Install-Package IronBarCode' komutunu Paket Yöneticisi Konsolunda veya CLI'de 'dotnet add package IronBarCode' komutunu çalıştırın. Ek bir SDK yükleyici veya çalışma zamanı dosyaları gerekli değildir.

Barcode4.NET'in aksine, satın almadan önce IronBarcode'u değerlendirebilir miyim?

Evet. IronBarcode'ın deneme modu, yalnızca oluşturulan çıktı görüntülerine bir filigran ekleyerek tam çözümlenmiş barkod değerlerini verir. Satın almadan önce kendi belgelerinizde okuma doğruluğunu test edebilirsiniz.

Barcode4.NET ve IronBarcode arasındaki fiyat farkı nedir?

IronBarcode, geliştirme ve üretimi kapsayan tek bir geliştirici lisansı için $749'dan başlar. Fiyatlandırma detayları ve hacim seçenekleri, IronBarcode lisanslama sayfasında mevcuttur. Ayrı bir çalışma zamanı lisansı gereksinimi yoktur.

Barcode4.NET'ten IronBarcode'a geçiş kolay mıdır?

Barcode4.NET'ten IronBarcode'a geçiş, öncelikle örnek tabanlı API çağrılarını IronBarcode'un statik yöntemleriyle değiştirmeyi, lisanslama klişelerini kaldırmayı ve sonuç özellik adlarını güncellemeyi içerir. Çoğu geçiş, kod eklemekten ziyade azaltmayı içerir.

IronBarcode, logolu QR kodları üretiyor mu?

Evet. QRCodeWriter.CreateQrCode().AddBrandLogo('logo.png') kullanarak bir QR koduna yerel logolu bir marka resmi ekleyin, yapılandırılabilir hata düzeltme ile. ChangeBarCodeColor() üzerinden renkli QR kodları da desteklenir.

Jordi Bardia
Yazılım Mühendisi
Jordi Python, C# ve C++ konularında en yetkin, Iron Software'deki yeteneklerini kullanmadığı zamanlarda; oyun programlıyor. Ürün testi, ürün geliştirme ve araştırma sorumluluklarını paylaşan Jordi, sürekli ürün gelişimine büyük değer katıyor. Çeşitli deneyimleri onu ...
Daha Fazlasını Oku

Iron Destek Ekibi

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