Barcode4.NET vs IronBarcode: C# Barkod Kütüphanesi Karşılaştırması
Barcode4NET vs IronBarcode: Modern bir .NET Barkod Kütüphanesine Karşı Ömrünü Tamamlamış Bir Üretici Karşılaştırması
Barcode4NET, etkili bir şekilde ömrünü tamamlamıştır. Son sürüm —Barcode4NET2.0, O2 Solutions'dan — 25 Haziran 2007'de gönderildi. Yeni lisanslar ComponentSource üzerinden artık satılmıyor (mevcut müşteriler hala Destek ve Yazılım Güncellemelerini yenileyebilir), hiçbir zaman bir NuGet paketi yayınlanmadı ve kütüphane.NET Framework1.1 / 2.0 / 3.x ve .NET Compact Framework'ü hedefliyor.Barcode4NETbağımlılığı devralan ekipler için, bu makale o kütüphanenin sunduklarını ve bugün IronBarcode'un sağladıklarını karşılaştırıyor - platform erişimi, API tasarımı, barkod okuma yeteneği ve yan yana bir değerlendirmeyi biraz alışılmadık hale getiren lisans gerçekliğini kapsıyor.
Barcode4NET'i Anlamak
Barcode4NET, O2 Solutions tarafından yayımlanan ve ComponentSource aracılığıyla dağıtılan ticari bir barkod üretim kütüphanesiydi. Windows tabanlı.NET Frameworkuygulamaları için tasarlandı — öncelikle Windows Forms, ASP.NET Web Forms, .NET Compact Framework, ve SQL Server Raporlama Hizmetleri 2000 / 2005 — ve döneminin 1D ve 2D sembolojileri için temiz bitmap ve vektör çıktıları sağladı.
Kütüphane hiçbir zaman bir NuGet paketi olarak mevcut olmadı. Geliştiricilerin kaynak kontrolüne kontrol ettiğini veya paylaşılan bir eser konumuna yerleştirdiği bir DLL olarak dağıtıldı. Onu kullanan her proje, diskteki DLL'ye işaret eden <Reference> unsurunu .csproj dosyasında elle eklemeyi gerektiriyordu. Bu,Barcode4NETaktifken standart bir uygulamaydı ancak modern CI/CD iş akışlarında önemli bir sıkışıklık oluşturur.
Barcode4NET'in kilit mimari özellikleri:
- Özellik-atanabilir API: Geliştiriciler bir
Barcodenesnesi oluşturdular,Symbology,Data,WidthveHeightözelliklerini atadılar, ardından birSystem.Drawing.Bitmapalmak içinGenerateBarcode()çağrılırdı. - Semboloji Kapsamı: 39 1D semboloji (Code128, Code39, EAN-13, UPC-A, ve daha fazlası) artı beş 2D formatı (DataMatrix, PDF417, MicroPDF417, Code 16K, CODABLOCK F); QR Code veAztekdesteklenmiyor
- Sadece oluşturma: Ürünün parçası olarak hiçbir zaman barkod okuma veya tarama yeteneği yoktu
- Sadece Windows ve .NET Framework:.NET Framework1.1 / 2.0 / 3.x ve .NET Compact Framework'ü hedefliyor; hiçbir .NET Core, .NET 5+, Linux, macOS, Docker, ya da bulut çalışması desteği yok
- NuGet dağıtımı yok: Her proje dosyasında ve derleme hattında manuel DLL referansı gerekli
- Ömrünü Tamamlamış: ComponentSource aracılığıyla satılan yeni lisanslar yok ve 2007'den beri bir kod sürümü yok
Barcode4NET Oluşturma API'si
Barcode4NET'te tam oluşturma iş akışı bir özellik ayarlayıcı deseni 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 tam kapsamını temsil eder. Kütüphane, akıcı zincirleme sunmadı, okuma yeteneği yoktu, QR Code desteği yoktu, ve logo yerleştirme veya hata düzeltme kontrolü gibi gelişmiş 2D seçenekleri yoktu.
IronBarcode Anlama
IronBarcode, Iron Software tarafından geliştirilen ticari bir .NET barkod kütüphanesidir ve tek bir pakette hem barkod oluşturma hem de barkod okuma işlemlerini kapsar. Yalnızca NuGet üzerinden dağıtılmaktadır,.NET Framework4.6.2 ile .NET 9 arasında hedefler ve Windows, Linux, macOS, Docker, Azure ve AWS Lambda üzerinde çalışır.
Kütüphane, akışkan bir statik API etrafında inşa edilmiştir. Oluşturma, bir veri dizesi ve kodlama türü ile BarcodeWriter.CreateBarcode() kullanır, ardından boyut, renk ve format için seçeneklerle zincirlenebilir. Okuma, ayrı bir PDF kütüphanesi gerektirmeden görüntü dosya yollarını, akışları ve PDF belgelerini kabul eden BarcodeReader.Read() kullanır.
IronBarcode'un ana özellikleri:
- Akışkan statik üretim API'si:
BarcodeWriter.CreateBarcode(), tek bir ifadede.ResizeTo(),.AddAnnotationTextAboveBarcode()ve kaydetme yöntemlerini zincirler - Barkod okuma:
BarcodeReader.Read(), görüntülerden ve PDF'lerden yerel olarak barkodları çözer - Geniş format desteği: Code128, Code39, EAN-13, UPC-A, QR Kodu, Data Matrix, PDF417, Aztek ve daha fazlası
- QR kod uzmanlaşması:
QRCodeWriter.CreateQrCode(), logo yerleştirme ve hata düzeltme düzeyi dahil QR'ye özgü seçenekler sağlar - NuGet dağıtımı: Standart
dotnet add package IronBarcodekurulumu;dotnet restoretüm bağımlılıkları yönetir - Platformlar arası: Windows, Linux ve macOS'ta .NET 5, 6, 7, 8 ve 9 üzerinde çalışır,Dockerkonteynerleri ve sunucusuz bulut çalışma zamanları dahil
- Aktif ticari ürün: Düzenli güncellemeler, güvenlik yamaları, .NET sürüm uyumluluk güncellemeleri ve tanımlı fiyat noktalarında satın alınabilir lisanslar
Özellik Karşılaştırması
Aşağıdaki tablo,Barcode4NETve IronBarcode arasındaki en önemli farkları vurgular:
| Özellik | Barcode4NET | IronBarcode |
|---|---|---|
| NuGet paketi | Hayır — sadece manuel DLL | Evet (IronBarcode) |
| Barkod oluşturma | Evet | Evet |
| Barkod okuma | Hayır | Evet |
| Platformlar arası destek | Hayır — yalnızca Windows | Evet — Windows, Linux, macOS |
| Aktif bakım | Hayır (ömrünün sonu) | Evet |
| Yeni lisanslar mevcut | Hayır | Evet |
Ayrıntılı Özellik Karşılaştırması
| Özellik | Barcode4NET | IronBarcode |
|---|---|---|
| Üretim | ||
| Code128 oluşturma | Evet | Evet |
| Code39 oluşturma | Evet | Evet |
| EAN-13 / UPC-A oluşturma | Evet | Evet |
| QR kod üretimi | Hayır | Evet — QRCodeWriter.CreateQrCode() |
| Logolu QR kod | Hayır | Evet — .AddBrandLogo() |
| Data Matrix / PDF417 | Evet | Evet |
| Aztek | Hayır | Evet |
| Akışkan 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, ekstra 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 (ömrünün 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 |
Oluşturma API Tasarımı
Oluşturma API'si, bu iki kütüphane arasındaki en doğrudan karşılaştırma noktasıdır, çünkü oluşturma, Barcode4NET'in sunduğu tek yetenekti.
Barcode4NET Yaklaşımı
Barcode4NET, emir verici bir özellik ayarlayıcı deseni kullandı. Geliştiriciler bir Barcode nesnesi başlattı, bireysel özellikler atandı ve bir System.Drawing.Bitmap almak için GenerateBarcode() çağrıldı:
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önüş türü — System.Drawing.Bitmap —, çağıran kodun resmi kaydetmek, göstermek veya akışa almak için sorumlu olduğu anlamına geliyordu. Bu, bir WinForms uygulamalarında, bir Bitmap doğrudan bir PictureBox atanabilirdi, ancak başka bir çıktı hedefi için ek dönüştürme adımları gerektiriyordu.
IronBarcode Yaklaşımı
IronBarcode, akışkan bir statik API kullanır. Tek bir metod çağrısı oluşturmayı başlatır ve zincirlenebilir metodlar, terminal kaydetme veya dönüşüm metodundan önce 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 ile eşleşir. .ResizeTo(), Width ve Height özellik atamalarının yerini alır. Terminal yöntemleri — .SaveAsPng(), .SaveAsJpeg(), .ToPngBinaryData() — ayrı GenerateBarcode() ve bitmap kaydetme çağrılarının yerini alır. Daha gelişmiş oluşturma senaryoları için IronBarcode barkod oluşturma belgelerine bakın.
Barkod Okuma Yeteneği
Okuma yeteneği, bu iki kütüphane arasındaki en keskin yetenek farkıdır.Barcode4NEThiçbir sürümde barkod okuma sunmadı. IronBarcode, oluşturma ile aynı pakette tam okuma yeteneğini içerir.
Barcode4NET Yaklaşımı
Barcode4NET'in bir okuma API'si yoktu. Görüntülerden veya taranmış belgelerden barkodları çözmesi gereken ekipler, tamamen ayrı bir kütüphane - ya açık kaynaklı bir alternatif olan ZXing.Net ya da ticari bir tarama SDK'sı - entegre etmek zorundaydı. Sonuç, oluşturma içinBarcode4NETve okuma için ikinci bir kütüphane olmak üzere iki ayrı bağımlılık zinciriydi.
IronBarcode Yaklaşımı
IronBarcode, görüntü 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ı ve çoklu barkod algılama üzerinde kontrol sağlar. Yapılandırma seçenekleri için barkod okuma belgelerine bakın.
Platform ve Dağıtım Kapsamı
Platform desteği, .NET modernizasyon projeleri gerçekleştiren ekipler için en önemli farkı temsil eder.
Barcode4NET Yaklaşımı
Barcode4NET,.NET Frameworkderlemelerine karşı derlendi. Windows üzerinde çalışıyor,.NET Frameworkuygulamalarında, IIS barındırılan Web Forms ve Windows Forms projelerinde çalışıyordu. Linux derlemeleri, .NET Core derlemeleri ve bulut çalışma ortamı desteği yoktu. Microsoft, .NET Core'u tanıttığında ve daha sonra platformu .NET 5+ olarak birleştirdiğinde, Barcode4NET'in karşılık gelen güncellemeleri olmadı. net5.0 veya daha yeni bir sürümü hedefleyen herhangi bir proje kütüphaneye hiç başvuramazdı.
DLL dağıtım modeli platform kısıtlamasına neden olmaktadır. Her bir derleme ortamı – geliştirici çalışma istasyonu, derleme ajanı,Dockerkonteyneri – DLL'nin bilinen bir yolda bulunmasını gerektiriyordu. Konteyner tabanlı dağıtımlarda, bu ya DLL'yi özel bir temel imaj içerisine alma ya da yapı sırasında kopyalama anlamına geliyordu, bunlardan hiçbiri standart dotnet restore iş akışları ile uyumlu değildi.
IronBarcode Yaklaşımı
IronBarcode, tek bir NuGet paketinden çoklu çerçeveyi hedefler:.NET Framework4.6.2 ile .NET 9 arasında ve Windows, Linux ve macOS üzerinde mevcut tüm .NET sürümleri.Dockerkonteynerlerine dağıtım, standart .NET çalışma ortamı imajlarını değiştirmeden kullanır. Azure Functions, AWS Lambda ve diğer sunucusuz çalışma zamanları, aynı NuGet paketi aracılığıyla desteklenir. dotnet restore komutu, manuel DLL yönetimi olmadan tüm bağımlılıkları çözer.
Lisans Mimarisi ve Satıcı Durumu
Barcode4NET için lisans durumu rekabetçi bir nokta değil - kütüphaneyi kullanmaya devam edip etmeme kararını şekillendiren pratik bir kısıtlamadır.
Barcode4NET Yaklaşımı
Barcode4NET, etkili bir şekilde ömrünü tamamlamıştır. Yeni lisanslar ComponentSource üzerinden artık satılmıyor, ancak var olan müşteriler sağlayıcının şartlarına göre ComponentSource aracılığıyla Destek ve Yazılım Güncellemeleri yenileyebilir. Bir ekipBarcode4NETkullanan bir takıma yeni bir geliştirici katıldığında, onlar için ek bir koltuk satın alma mekanizması yoktur Son kod sürümü 2007'deki 2.0 sürümüydü, bu yüzden o sürümden beri keşfedilen herhangi bir hata veya güvenlik sorunu yama ile çözülmemiştir.
IronBarcode Yaklaşımı
IronBarcode, sürekli lisanslamayla aktif olarak bakımı yapılan ticari bir üründür. Katmanlar, tek geliştirici Lite lisansı için $749'dan başlar, Plus ($1,499, 3 geliştirici), Professional ($2,999, 10 geliştirici) ve Unlimited ($5,999) katmanlar mevcuttur. Tüm katmanlar telif ücretsiz dağıtım içerir. Güvenlik yamaları, hata düzeltmeleri ve .NET sürüm uyumluluk güncellemeleri düzenli bir serbest bırakma döngüsünde sunulur. Değerlendirme için lisans anahtarı olmadan 30 günlük ücretsiz deneme mevcuttur.
API Eşleme Başvurusu
| Barcode4NET | IronBarcode |
|---|---|
new Barcode4NET.Barcode() |
BarcodeWriter.CreateBarcode(data, encoding) |
barcode.Symbology = Symbology.Code128 |
BarcodeEncoding.Code128 (CreateBarcode parametresi) |
barcode.Data = "ITEM-12345" |
CreateBarcode()'nın ilk parametresi |
barcode.Width = 300; barcode.Height = 100 |
.ResizeTo(300, 100) |
barcode.GenerateBarcode(), Bitmap döndürür |
.SaveAsPng(path) / .ToPngBinaryData() |
Symbology.Code39 |
BarcodeEncoding.Code39 |
Symbology.EAN13 |
BarcodeEncoding.EAN13 |
Symbology.UPCA |
BarcodeEncoding.UPCA |
Symbology.DataMatrix |
BarcodeEncoding.DataMatrix |
Symbology.PDF417 |
BarcodeEncoding.PDF417 |
| (QR Code not supported in Barcode4NET) | BarcodeEncoding.QRCode |
Manuel DLL <Reference Include="Barcode4NET"> |
<PackageReference Include="IronBarcode" /> |
| Okuma API'si yok | BarcodeReader.Read(path) |
| PDF desteği yok | BarcodeReader.Read("doc.pdf") yerel |
| Yalnızca.NET Framework | .NET Framework4.6.2 ile .NET 9 arasında |
Ekipler Barcode4NET'ten IronBarcode'a Geçmeyi Düşündüğünde
Engellenen .NET Yükseltmesi
En yaygın zorlayıcı olay bir .NET modernizasyon projesidir. Bir ekip net8.0 hedefler, .csproj'da çalışır, ve Barcode4NET'in.NET Framework1.1 / 2.0 / 3.x için oluşturulmuş olması ve modern bir .NET hedefinden referans alınamaması nedeniyle yükleme hatasıyla karşılaşır. Bu noktada ekip, ikili bir seçimle karşı karşıya - hedef çerçeve değişikliğini geri almak ve.NET Frameworküzerinde kalmak ya da Barcode4NET'i değiştirmek. Göç ertelenemez çünkü daha geniş modernleştirme çabasını engelleyecektir.
Altyapı Değişikliklerinden Sonra CI/CD Hattı Arızaları
Barcode4NET'in DLL dağıtım modeli, derleme hatlarında gizli bir 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'nin proje dosyasının beklediği yolda manuel olarak yerleştirilmesi gerekmektedir. Bu adımı dikkatle belgelemeyen ekipler, sorunu yalnızca hat hattı başarısız olduğunda keşfederler. IronBarcode'a geçiş yapmak, her şeyi dotnet restore'nun hallettiği anlamına gelir — DLL konum sorunu sona erer.
Yeni Takım Üyelerine Lisans Verilemiyor
Bir yüklenici projeye katıldığında veya ikinci bir geliştirici barkod özellikleri üzerinde çalışmak istediğinde satın alınacak bir lisans yok. Ekip, bu kısıtlamayı aşmak zorundadır - ya yeni geliştirici tamamen barkod kodundan kaçınır ya da birisi orijinal şartlar altında yasal olarak devredilemeyebilir bir lisansı devreder. Her iki duruma da bir ürün geliştiren bir ekip için sürdürülebilir değildir.
Güvenlik ve Uyum Denetimleri
Malzeme Bill'i oluşturma veya ömür sonu veritabanlarına karşı bağımlılıkları kontrol eden organizasyonlar, Barcode4NET'i bir bulgu olarak karşıladı. 2007'den beri herhangi bir kod sürümü olmayan ticari bir üründür ve CVE takibi veya yama akışı yoktur. Güvenlik denetçileri, bu durumdaki bağımlılıkları tipik olarak aktif olarak bakımı yapılan kütüphanelerden farklı şekilde ele alır, ve bulgu genellikle ertelenmiş bir risk olmaktan ziyade resmi bir düzeltme maddesine dönüşür.
Mevcut Bir İş Akışına Okuma Yeteneği Ekleme
Başlangıçta Barcode4NET'i yalnızca oluşturma 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şlemeleri veya PDF faturalarından veri çıkarmaları gerektiğini keşfederler.Barcode4NETile bu, ikinci bir kütüphane entegrasyonunu gerektirir. IronBarcode'un BarcodeReader.Read()'u hem görüntüleri hem de PDF'leri yerel olarak işler, bağımlılığı tek bir bakımlı pakette birleştirir.
Genel Geçiş Dikkat Edilmesi Gereken Hususlar
DLL Referansının Kaldırılması
Barcode4NET hiçbir zaman bir NuGet paketi olarak dağıtılmadığı için dotnet remove package komutu yoktur. Kütüphaneye başvuran her .csproj dosyası, diskteki DLL'ye işaret eden bir <Reference Include="Barcode4NET"> unsurunu içerir. Bu öğelerin her biri manuel olarak bulunmalı ve kaldırılmalıdır. Çözüm boyunca bir grep onları bulur:
grep -rl "Barcode4NET" --include="*.csproj" .
grep -rl "Barcode4NET" --include="*.csproj" .
Kaynak kontrolündeki DLL dizini — tipik olarak ThirdParty/Barcode4NET/ veya lib/ — git rm ile silinmek üzere hazır hale getirilmelidir.
Bitmapten Bayt Dizisine Dönüş Türü Değişikliği
Barcode4NET'in GenerateBarcode()'u bir System.Drawing.Bitmap döndürür. IronBarcode'un akışkan zinciri .ToPngBinaryData()'de sona erer, byte[] döndüren, veya doğrudan diske yazan .SaveAsPng(). Dönüş değerini bir Bitmap türünde değişkene atayan veya bir WinForms PictureBox gibi bir Bitmap bekleyen bir metoda geçiren kod, çağrı yerinde tek satırlık bir ayarlama gerektirir: bayt dizisini bir MemoryStream içine sarın ve Image.FromStream() çağrılır.
Sembololoji Enum Yeniden Adlandırma
Barcode4NET'teki Symbology enum, IronBarcode'daki BarcodeEncoding enum ile doğrudan eşleşir. Tüm yaygın değerler — Code128, Code39, EAN13, UPCA, QRCode — adlarını korur. Symbology. ile BarcodeEncoding. arasında çözüm genelinde bir bul ve değiştir işlemi çoğu durumu kapsar, ancak her değişiklik bağlamın doğrulanması için gözden geçirilmelidir.
Yapı Komut Dosyası Temizliği
Barcode4NET DLL'sini çıktı dizinlerine veya yapı ajanlarına kopyalayan yapı komut dosyaları ve CI/CD yapılandırma dosyaları güncellenmelidir. NuGet göçünden sonra, bu adımların eşdeğeri yoktur — dotnet restore tüm manuel DLL yönetiminin yerini alır. Geçişten sonra eski DLL kopyalama adımlarını yerinde bırakmak yapı hatalarına neden olmaz, ancak gelecekteki bakımcılar için kafa karışıklığı yaratan ölü bir yapılandırmayı temsil eder.
Ek IronBarcode Yetenekleri
Barcode4NET'in yaşam döngüsünde herhangi bir noktasında yer almayan, IronBarcode'da mevcut özellikler:
- Görüntülerden barkod okuma:
BarcodeReader.Read(), PNG, JPEG, TIFF ve diğer görüntü formatlarından tüm büyük 1D ve 2D sembojileri çözer - PDF barkod okuma: Yerel PDF giriş desteği – ayrı bir PDF çıkarım kütüphanesi gerekmez
- QR kod logo gömme: Markalı QR kodlar için
.AddBrandLogo()ileQRCodeWriter.CreateQrCode() - 2D format oluşturma: QR koduna ek olarak Data Matrix, PDF417 ve Aztek
- Ç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 doğruluğa karşı verimi dengeler - ASP.NET Core entegrasyonu: Kontrolör eylem yanıtları için
.ToPngBinaryData()'dan doğrudanbyte[]döndürür
.NET Uyumluluğu ve Geleceğe Hazırlık
IronBarcode,.NET Framework4.6.2'den .NET 9'a kadar destekler ve yeni .NET sürümleri çıktıkça uyumluluk güncellemeleri alır. Barcode4NET, yalnızca.NET Framework1.1 / 2.0 / 3.x ve .NET Compact Framework'ü hedefler ve 2007'den beri bir sürüm almamıştır..NET Framework4.x'te olan ekipler, IronBarcode'a geçebilir ve ardından barkod kütüphanesi kısıtlamaları olmadan hedef çerçevelerini herhangi bir mevcut .NET sürümüne yükseltebilir.
Sonuç
Barcode4NET ve IronBarcode, .NET barkod geliştirme tarihindeki farklı noktaları temsil eder. Barcode4NET, dönemi için işlevsel, iyi tanımlanmış bir kütüphaneydi -.NET Frameworküzerinde Windows Forms ve Web Forms uygulamaları için temiz bitmap çıktılar oluşturan bir özellik ayarlayıcı API. IronBarcode, güncel bir ticari üründür ve akışkan statik API, tam barkod okuma desteği, çapraz platform çalışma ortamı kapsamı ve standart NuGet dağıtımı sunar.
Karşılaştırma alışılmadıktır çünküBarcode4NETartık canlı bir ürün değildir. Güncellemeler, güvenlik yamaları veya yeni lisans satışları almıyor. Yeni bir proje için hangi kütüphaneyi benimseyeceklerini değerlendiren ekipler, Barcode4NET'i bu değerlendirmede bulmazlar — bu yalnızca şu anda üretimde olan ve ne zaman ve nasıl göç edileceğine karar veren ekipler için geçerlidir.
Barcode4NET'i üretimde olan ekipler için,IronBarcode doğal bir yedektir. API eşlemesi doğrudan, kod değişiklikleri yüzey seviyesinde ve oluşturma semantiği eşdeğerdir. Kar elde edilen unsur, aslında sürdürülen, yeni ekip üyeleri tarafından kurulabilen ve modern .NET sürümleri ve dağıtım ortamlarıyla uyumlu bir bağımlılıktır.
Dürüst değerlendirme, bunun iki geçerli seçenek arasında rekabetçi bir seçim olmadığıdır.Barcode4NETyeni ekip üyelerine genişletilemez, modern .NET üzerinde çalışamaz ve güvenlik sorunları için yamalanamaz.IronBarcode yapabilir. Göç kararı, API tercihi veya özellik karşılaştırmasından ziyade 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 bir .NET barkod kütüphanesidir. Geliştiricilerin .NET projeleri için barkod çözümü seçerken değerlendirdiği birkaç alternatiften biridir.
Barcode4.NET ile IronBarcode arasındaki temel farklar nelerdir?
IronBarcode, örnek yönetimi gerektirmeyen statik, durumsuz bir API kullanırken, Barcode4.NET genellikle kullanım öncesi örnek oluşturma ve yapılandırmayı gerektirir. IronBarcode ayrıca tüm ortamlarda yerel PDF desteği, otomatik format algılama ve tek anahtar lisans sunar.
IronBarcode, Barcode4.NET'e göre lisanslanması daha kolay mı?
IronBarcode hem geliştirme hem de üretim dağıtımlarını kapsayan tek bir lisans anahtarı kullanır. Bu, SDK anahtarlarını çalışma zamanı anahtarlarından ayıran lisanslama sistemlerine kıyasla CI/CD hatlarını ve Docker yapılandırmalarını basitleştirir.
IronBarcode, Barcode4.NET'in desteklediği tüm barkod formatlarını destekliyor mu?
IronBarcode, QR Code, Code 128, Code 39, DataMatrix, PDF417, Aztek, EAN-13, UPC-A, GS1 ve daha birçokları dahil olmak üzere 30'dan fazla barkod sembolojisini destekler. Format otomatik algılama, açıkça format sayımını gerektirmez.
IronBarcode doğal PDF barkod okuma desteği sunuyor mu?
Evet. IronBarcode, ayrı bir PDF render kütüphanesi gerektirmeden, BarcodeReader.Read('document.pdf') kullanarak PDF dosyalarından doğrudan barkod okur. Sayfa bazında sonuçlar sayfa numarası, barkod formatı, değeri ve güven puanını içerir.
IronBarcode, Barcode4.NET'e kıyasla toplu işlemi nasıl ele alır?
IronBarcode'un statik yöntemleri durum terkibesizdir ve doğal olarak thread-safe'dir, bu da thread başına örnek yönetimi olmadan Parallel.ForEach'in doğrudan kullanımına olanak tanır. Herhangi bir fiyatlandırma seviyesinde bir throughput tavanı 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 paketinde destekler. Platform hedefleri arasında Windows x64/x86, Linux x64 ve macOS x64/ARM bulunur.
Bir .NET projesine IronBarcode'u nasıl kurarım?
IronBarcode'u NuGet üzerinden kurun: Paket Yöneticisi Konsolunda 'Install-Package IronBarCode' komutunu veya CLI'da 'dotnet add package IronBarCode' komutunu çalıştırın. Ek bir SDK yükleyicisi veya çalışma zamanı dosyası gerekmez.
IronBarcode'u satın almadan önce değerlendirebilir miyim, Barcode4.NET'in aksine?
Evet. IronBarcode'un deneme modu, yalnızca oluşturulan çıktı görüntülerine bir filigran ekleyerek, barkod değerlerini tam olarak döndürür. Satın almadan önce, kendi belgelerinizde okuma doğruluğunu kıyaslayabilirsiniz.
Barcode4.NET ve IronBarcode arasındaki fiyat farkı nedir?
IronBarcode, geliştirme ve üretimi kapsayan, sürekli bir tek geliştirici lisansı için $749'dan başlar. Fiyat detayları ve hacim seçenekleri IronBarcode lisanslama sayfasında mevcuttur. Ayrı bir çalışma zamanı lisansı gerekliliği yoktur.
Barcode4.NET'ten IronBarcode'a geçiş yapmak kolay mı?
Barcode4.NET'ten IronBarcode'a geçiş esas olarak, örnek tabanlı API çağrılarını IronBarcode'un statik yöntemleriyle değiştirmeyi, lisans gerekliliklerini kaldırmayı ve sonuç özelliği adlarını güncellemeyi içerir. Çoğu geçiş, kodun azaltılmasını içerir.
IronBarcode, logolu QR kodları üretebiliyor mu?
Evet. QRCodeWriter.CreateQrCode().AddBrandLogo('logo.png'), konfigüre edilebilir hata düzeltme ile QR koduna yerel olarak bir marka görüntüsü yerleştirir. Renkli QR kodları, ChangeBarCodeColor() ile de desteklenir.

