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
Barcodenesnesi oluşturur,Symbology,Data,WidthveHeightgibi özellikleri atayıp, ardından birSystem.Drawing.Bitmapalmak içinGenerateBarcode()ç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)
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 IronBarcodekurulumu;dotnet restoretü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
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
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
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" .
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()ileQRCodeWriter.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:
ReadingSpeedenum, 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çinbyte[]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.

