DevExpress Barkod ve IronBarcode: C# Barkod Kütüphanesi Karşılaştırması
DevExpress, saygın bir .NET UI araç setidir. Izgara, zamanlayıcı, grafik ve pivot tablo kontrolleri gerçekten mükemmeldir ve birçok kurumsal ekip tarafından kullanılır. Ancak, barkod desteği farklı bir hikaye. DevExpress, tasarım zamanında bir form üzerine bir barkod oluşturmanıza olanak sağlayan bir WinForms kontrolü ve bir Blazor DxBarCode etiketi içeren bir BarCodeControl sunar. Destek ekiplerine barkod tanıma hakkında sorulduğunda, yanıt tutarlı olmuştur: okuma özelliği yoktur ve bunu ekleme planı bulunmamaktadır. Barkodlarınız arka plan işinde, bir web API'sinde, bir PDF belgesinde veya herhangi bir UI formu olmadan bir ortamda varsa, kontrol geçerli değildir.
Bu kısıtlama, DevExpress barkod sunumunu belirli bir nişe daraltır: DevExpress WinForms veya Blazor UI içinde görsel olarak barkod oluşturma. Bu niş için gayet iyi çalışır. Başka bir şey için — sunucu tarafı üretim, görüntü veya PDF'den okuma, Azure Fonksiyonları veya Docker konteynerlerinde başsız işleme — farklı bir araç gerektirir.
DevExpress Barkod Kontrollerini Anlama
DevExpress barkod fonksiyonelliği DevExpress.XtraBars.BarCode ve ilgili simgoloji ad alanlarında bulunmaktadır. Bağımsız bir kütüphane değildir. Yaklaşık $2,499+ yıllık maliyete sahip DXperience paketine dahildir. Kurabileceğiniz ayrı bir sadece barkod NuGet paketi yoktur.
BarCodeControl, kontrol hiyerarşisinden türetilen bir WinForms kontrolüdür. Bir semboloji nesnesi ile yapılandırır, özellikleri ayarlarsınız ve ekranda oluşturur. Bu oluşturmayı bir dosyaya kaydetmek, belirli boyutta önceden ayrılmış bir Bitmap bekleyen DrawToBitmap çağrısını gerektirir:
// DevExpress WinForms: UI control, not a library
using DevExpress.XtraBars.BarCode;
using DevExpress.XtraBars.BarCode.Symbologies;
using System.Drawing;
using System.Drawing.Imaging;
var barCode = new BarCodeControl();
var symbology = new Code128Generator();
symbology.CharacterSet = Code128CharacterSet.CharsetAuto;
barCode.Symbology = symbology;
barCode.Text = "ITEM-12345";
barCode.Module = 0.02f; // document units, not pixels
barCode.ShowText = true;
// File output requires DrawToBitmap — you must size the Bitmap manually
barCode.Width = 400;
barCode.Height = 100;
var bitmap = new Bitmap(barCode.Width, barCode.Height);
barCode.DrawToBitmap(bitmap, new Rectangle(0, 0, barCode.Width, barCode.Height));
bitmap.Save("barcode.png", ImageFormat.Png);
bitmap.Dispose();
// DevExpress WinForms: UI control, not a library
using DevExpress.XtraBars.BarCode;
using DevExpress.XtraBars.BarCode.Symbologies;
using System.Drawing;
using System.Drawing.Imaging;
var barCode = new BarCodeControl();
var symbology = new Code128Generator();
symbology.CharacterSet = Code128CharacterSet.CharsetAuto;
barCode.Symbology = symbology;
barCode.Text = "ITEM-12345";
barCode.Module = 0.02f; // document units, not pixels
barCode.ShowText = true;
// File output requires DrawToBitmap — you must size the Bitmap manually
barCode.Width = 400;
barCode.Height = 100;
var bitmap = new Bitmap(barCode.Width, barCode.Height);
barCode.DrawToBitmap(bitmap, new Rectangle(0, 0, barCode.Width, barCode.Height));
bitmap.Save("barcode.png", ImageFormat.Png);
bitmap.Dispose();
Imports DevExpress.XtraBars.BarCode
Imports DevExpress.XtraBars.BarCode.Symbologies
Imports System.Drawing
Imports System.Drawing.Imaging
Dim barCode As New BarCodeControl()
Dim symbology As New Code128Generator()
symbology.CharacterSet = Code128CharacterSet.CharsetAuto
barCode.Symbology = symbology
barCode.Text = "ITEM-12345"
barCode.Module = 0.02F ' document units, not pixels
barCode.ShowText = True
' File output requires DrawToBitmap — you must size the Bitmap manually
barCode.Width = 400
barCode.Height = 100
Dim bitmap As New Bitmap(barCode.Width, barCode.Height)
barCode.DrawToBitmap(bitmap, New Rectangle(0, 0, barCode.Width, barCode.Height))
bitmap.Save("barcode.png", ImageFormat.Png)
bitmap.Dispose()
Burada birkaç sürtüşme noktası fark edin. İlk olarak, barCode.Module piksel yerine dökümantasyon birimlerinde çalışır, bu da piksel boyutlarında düşünüyorsanız bir uyumsuzluk yaratır. İkincisi, Bitmap ayırmadan önce nihai piksel boyutunu bilmelisiniz. Üçüncüsü, kontrol WinForms derlemelerinin yüklenmesini gerektirir — bu da bir ASP.NET Core minimal API veya bir konsol arka plan hizmetinin sadece barkod görüntüsü oluşturmak için Windows Forms altyapısını yüklemesi gerektiği anlamına gelir.
Blazor DxBarCode etiketi kavramsal olarak benzerdir ancak bir UI düzenleme için Razor bileşenidir, sunucu tarafı üretim API'si değil.
Okuma Yeteneği Yok
DevExpress'in resmi pozisyonu, barkod tanıma veya tarama işlevselliği sağlamadıklarıdır. Bu, gelecek bir sürümde doldurulmayı bekleyen bir boşluk değil — yıllardır tutarlı cevap bu olmuştur.
Bir DevExpress WinForms uygulaması ile başlayan ve daha sonra yüklenen bir görüntüden bir barkod tarama veya bir PDF eklentisinden bir QR kodu okuma gereksinimi alan ekipler için, DevExpress araç kutusu yardımcı olamaz. Okuma işlemini yapmak için ayrı bir kütüphane getirmeniz gerekecek, bu da hemen API tutarlılığı için üretim tarafının da bu kütüphaneye geçmesi gerekip gerekmediği sorusunu gündeme getirir.
IronBarcode her iki yönü de işler:
//IronBarcodereading — works on images, PDFs, and byte arrays
// NuGet: dotnet add package IronBarcode
using IronBarCode;
var results = BarcodeReader.Read("scanned-label.png");
foreach (var result in results)
{
Console.WriteLine($"Format: {result.Format}");
Console.WriteLine($"Value: {result.Value}");
}
//IronBarcodereading — works on images, PDFs, and byte arrays
// NuGet: dotnet add package IronBarcode
using IronBarCode;
var results = BarcodeReader.Read("scanned-label.png");
foreach (var result in results)
{
Console.WriteLine($"Format: {result.Format}");
Console.WriteLine($"Value: {result.Value}");
}
Imports IronBarCode
' IronBarcode reading — works on images, PDFs, and byte arrays
' NuGet: dotnet add package IronBarcode
Dim results = BarcodeReader.Read("scanned-label.png")
For Each result In results
Console.WriteLine($"Format: {result.Format}")
Console.WriteLine($"Value: {result.Value}")
Next
PDF dosyasından okuma herhangi ek bir kütüphane gerektirmez.
// Reading barcodes from a PDF — no PdfiumViewer or similar required
var pdfResults = BarcodeReader.Read("shipping-manifest.pdf");
foreach (var result in pdfResults)
{
Console.WriteLine($"Page barcode: {result.Value}");
}
// Reading barcodes from a PDF — no PdfiumViewer or similar required
var pdfResults = BarcodeReader.Read("shipping-manifest.pdf");
foreach (var result in pdfResults)
{
Console.WriteLine($"Page barcode: {result.Value}");
}
Imports System
' Reading barcodes from a PDF — no PdfiumViewer or similar required
Dim pdfResults = BarcodeReader.Read("shipping-manifest.pdf")
For Each result In pdfResults
Console.WriteLine($"Page barcode: {result.Value}")
Next
Paket Sorunu
DevExpress barkod bileşenleri ayrı bir ürün olarak satılmamaktadır. Herhangi bir projede BarCodeControl kullanmak için ekibinizin geliştiren başına yıllık yaklaşık 2.499 dolar olan bir DXperience paketi lisansına ihtiyaçı vardır. Paket, ızgara, grafik, zamanlayıcı, pivot ve birçok diğer kontrolü içerir — tam bir DevExpress WinForms veya Blazor uygulaması inşa ediyorsanız mantıklıdır. Sadece bir arka uç hizmeti için barkod üretimine ihtiyaçınız varsa, hizmetin asla kullanmayacağı bir UI araç seti için ödeme yapıyorsunuz demektir.
IronBarcode bağımsız bir pakettir:
dotnet add package IronBarcode
dotnet add package IronBarcode
Süresiz Lite lisans tek geliştirici için $749'dan başlar. Paketlenmiş bir UI araç seti yoktur. İstediğiniz başka bir şey olmadan barkod üretimi ve okuması, çapraz platform desteği alırsınız.
Başsız Kullanım Sınırlaması
Sunucu tarafı senaryolarında BarCodeControl ile ilgili temel sorun, bunun bir WinForms kontrolü olmasıdır. .NET 6+ ASP.NET Core minimal API projesinde, WinForms derlemeleri varsayılan olarak referans edilmez. BarCodeControl başlatmak için, API projeniz ya Windows'a özel hedeflenmeli ve Windows Forms çalışma zamanını yüklemeli ya da API'nizin asla göstereceği UI altyapısını içeren çözüm yolları referansları eklemelidir.
Bir Azure Fonksiyonu tüketim planında, hiç UI katmanı yoktur. Bir Linux temel görüntüsü çalıştıran bir Docker konteynerinde, Windows Forms GDI+ bağımlılıkları tamamen eksik olabilir. DevExpress resmi olarak bu başsız ortamlarda BarCodeControl kullanımını desteklemez.
IronBarcode tamamen programatik, statik bir API kullanır:
// IronBarcode: works in WinForms, ASP.NET Core, Azure Function, console — same code
// NuGet: dotnet add package IronBarcode
using IronBarCode;
BarcodeWriter.CreateBarcode("ITEM-12345", BarcodeEncoding.Code128)
.SaveAsPng("barcode.png");
// IronBarcode: works in WinForms, ASP.NET Core, Azure Function, console — same code
// NuGet: dotnet add package IronBarcode
using IronBarCode;
BarcodeWriter.CreateBarcode("ITEM-12345", BarcodeEncoding.Code128)
.SaveAsPng("barcode.png");
Imports IronBarCode
' IronBarcode: works in WinForms, ASP.NET Core, Azure Function, console — same code
' NuGet: dotnet add package IronBarcode
BarcodeWriter.CreateBarcode("ITEM-12345", BarcodeEncoding.Code128) _
.SaveAsPng("barcode.png")
Bu kesin çağrı bir konsol uygulamasında, bir ASP.NET Core denetleyicisinde, bir Service Bus mesajı tarafından tetiklenen bir Azure Fonksiyonunda veya Linux üzerinde çalışan bir Docker konteynerinde çalışır. API ortamlar arasında değişmez. Herhangi bir UI derlemesi bağımlılığı yoktur.
Bir PNG dosya yanıtı olarak barkod döndüren bir ASP.NET Core uç noktası şöyle görünür:
app.MapGet("/barcode/{sku}", (string sku) =>
{
var bytes = BarcodeWriter.CreateBarcode(sku, BarcodeEncoding.Code128)
.ResizeTo(400, 100)
.ToPngBinaryData();
return Results.File(bytes, "image/png");
});
app.MapGet("/barcode/{sku}", (string sku) =>
{
var bytes = BarcodeWriter.CreateBarcode(sku, BarcodeEncoding.Code128)
.ResizeTo(400, 100)
.ToPngBinaryData();
return Results.File(bytes, "image/png");
});
Imports Microsoft.AspNetCore.Builder
Imports Microsoft.AspNetCore.Http
app.MapGet("/barcode/{sku}", Function(sku As String)
Dim bytes = BarcodeWriter.CreateBarcode(sku, BarcodeEncoding.Code128) _
.ResizeTo(400, 100) _
.ToPngBinaryData()
Return Results.File(bytes, "image/png")
End Function)
Önemli çözüm yolları olmadan BarCodeControl ile eşdeğer bir desen yoktur.
IronBarcode'u Anlamak
IronBarcode barkod oluşturma ve okuma için bağımsız bir .NET kütüphanesidir. API tamamen statiktir — yönetilecek hiçbir örnek, hiçbir kontrol yaşam döngüsü, hiçbir UI bağımlılığı yoktur. Üretim ve okuma her ikisi de aynı çağrıda çalışır:
// NuGet: dotnet add package IronBarcode
using IronBarCode;
// Generate Code 128
BarcodeWriter.CreateBarcode("ORDER-9921", BarcodeEncoding.Code128)
.ResizeTo(450, 120)
.SaveAsPng("order-label.png");
// Generate and get bytes (for HTTP responses, blob storage, etc.)
byte[] pngBytes = BarcodeWriter.CreateBarcode("ORDER-9921", BarcodeEncoding.Code128)
.ResizeTo(450, 120)
.ToPngBinaryData();
// Read from an image file
var results = BarcodeReader.Read("order-label.png");
Console.WriteLine(results.First().Value); // ORDER-9921
// NuGet: dotnet add package IronBarcode
using IronBarCode;
// Generate Code 128
BarcodeWriter.CreateBarcode("ORDER-9921", BarcodeEncoding.Code128)
.ResizeTo(450, 120)
.SaveAsPng("order-label.png");
// Generate and get bytes (for HTTP responses, blob storage, etc.)
byte[] pngBytes = BarcodeWriter.CreateBarcode("ORDER-9921", BarcodeEncoding.Code128)
.ResizeTo(450, 120)
.ToPngBinaryData();
// Read from an image file
var results = BarcodeReader.Read("order-label.png");
Console.WriteLine(results.First().Value); // ORDER-9921
Imports IronBarCode
' Generate Code 128
BarcodeWriter.CreateBarcode("ORDER-9921", BarcodeEncoding.Code128) _
.ResizeTo(450, 120) _
.SaveAsPng("order-label.png")
' Generate and get bytes (for HTTP responses, blob storage, etc.)
Dim pngBytes As Byte() = BarcodeWriter.CreateBarcode("ORDER-9921", BarcodeEncoding.Code128) _
.ResizeTo(450, 120) _
.ToPngBinaryData()
' Read from an image file
Dim results = BarcodeReader.Read("order-label.png")
Console.WriteLine(results.First().Value) ' ORDER-9921
Lisans aktivasyonu başlatmada tek satırdır:
IronBarCode.License.LicenseKey = "YOUR-KEY";
IronBarCode.License.LicenseKey = "YOUR-KEY";
Imports IronBarCode
IronBarCode.License.LicenseKey = "YOUR-KEY"
Ağ çağrısı yok. Hata işleme şablonu yok. Yerel doğrulama.
QR Kod Yan Yana
QR kodları, bir UI kontrolü ile programatik bir kütüphane arasındaki API boşluğunu gösterir.
DevExpress QR kodu — WinForms kontrolü:
// DevExpress: QR via BarCodeControl + QRCodeGenerator symbology
using DevExpress.XtraBars.BarCode;
using DevExpress.XtraBars.BarCode.Symbologies;
var barCode = new BarCodeControl();
var symbology = new QRCodeGenerator();
symbology.ErrorCorrectionLevel = QRCodeErrorCorrectionLevel.H;
symbology.CompactionMode = QRCodeCompactionMode.AlphaNumeric;
barCode.Symbology = symbology;
barCode.Text = "https://example.com";
barCode.Width = 500;
barCode.Height = 500;
var bitmap = new Bitmap(barCode.Width, barCode.Height);
barCode.DrawToBitmap(bitmap, new Rectangle(0, 0, barCode.Width, barCode.Height));
bitmap.Save("qr.png", ImageFormat.Png);
bitmap.Dispose();
// DevExpress: QR via BarCodeControl + QRCodeGenerator symbology
using DevExpress.XtraBars.BarCode;
using DevExpress.XtraBars.BarCode.Symbologies;
var barCode = new BarCodeControl();
var symbology = new QRCodeGenerator();
symbology.ErrorCorrectionLevel = QRCodeErrorCorrectionLevel.H;
symbology.CompactionMode = QRCodeCompactionMode.AlphaNumeric;
barCode.Symbology = symbology;
barCode.Text = "https://example.com";
barCode.Width = 500;
barCode.Height = 500;
var bitmap = new Bitmap(barCode.Width, barCode.Height);
barCode.DrawToBitmap(bitmap, new Rectangle(0, 0, barCode.Width, barCode.Height));
bitmap.Save("qr.png", ImageFormat.Png);
bitmap.Dispose();
Imports DevExpress.XtraBars.BarCode
Imports DevExpress.XtraBars.BarCode.Symbologies
Imports System.Drawing
Imports System.Drawing.Imaging
Dim barCode As New BarCodeControl()
Dim symbology As New QRCodeGenerator()
symbology.ErrorCorrectionLevel = QRCodeErrorCorrectionLevel.H
symbology.CompactionMode = QRCodeCompactionMode.AlphaNumeric
barCode.Symbology = symbology
barCode.Text = "https://example.com"
barCode.Width = 500
barCode.Height = 500
Dim bitmap As New Bitmap(barCode.Width, barCode.Height)
barCode.DrawToBitmap(bitmap, New Rectangle(0, 0, barCode.Width, barCode.Height))
bitmap.Save("qr.png", ImageFormat.Png)
bitmap.Dispose()
IronBarcode QR kodu — aynı sonuç, UI derlemesi gerekmez:
// IronBarcode: QR in one method chain
QRCodeWriter.CreateQrCode("https://example.com", 500, QRCodeWriter.QrErrorCorrectionLevel.Highest)
.SaveAsPng("qr.png");
// IronBarcode: QR in one method chain
QRCodeWriter.CreateQrCode("https://example.com", 500, QRCodeWriter.QrErrorCorrectionLevel.Highest)
.SaveAsPng("qr.png");
QR kodunun merkezine bir marka logosu ekleme:
QRCodeWriter.CreateQrCode("https://example.com", 500, QRCodeWriter.QrErrorCorrectionLevel.Highest)
.AddBrandLogo("company-logo.png")
.SaveAsPng("qr-branded.png");
QRCodeWriter.CreateQrCode("https://example.com", 500, QRCodeWriter.QrErrorCorrectionLevel.Highest)
.AddBrandLogo("company-logo.png")
.SaveAsPng("qr-branded.png");
QRCodeWriter.CreateQrCode("https://example.com", 500, QRCodeWriter.QrErrorCorrectionLevel.Highest) _
.AddBrandLogo("company-logo.png") _
.SaveAsPng("qr-branded.png")
DevExpress'in gömülü logolar için karşılığı yok. Kontrol standart bir QR kodu oluşturur, başka bir şey değil.
Özellik Karşılaştırması
| Özellik | DevExpress Barkod | IronBarcode |
|---|---|---|
| Barkod oluşturma | Evet (WinForms kontrolü, Blazor etiketi) | Evet (programatik API, tüm ortamlar) |
| Barkod okuma / tarama | Hayır — resmi olarak doğrulandı | Evet — görüntüler, PDF'ler, bayt dizileri |
| PDF barkod okuma | Hayır | Evet — yerel, ek kütüphane yok |
| Bağımsız NuGet paketi | Hayır — DXperience paketi gerekiyor | Evet — yalnızca IronBarcode |
| Paket maliyeti | ~$2,499+/yıl (tam UI paketi) | N/A — bağımsız |
| Lisans maliyeti | Sadece abonelik | Süresiz, $749'dan |
| ASP.NET Core / minimal API | WinForms geçici çözümleri gerektirir | Doğal destek |
| Azure Functions | Başsız desteklenmez | Tam destek |
| Docker / Linux | Linux temel görüntülerde GDI+ sorunları | Tam destek |
| Konsol uygulamaları | WinForms montaj yuklemesi gerektirir | Doğal destek |
| QR kod oluşturma | Evet (QRCodeGenerator semiyolojisi aracılığıyla) | Evet (QRCodeWriter) |
| Gömülü logolu QR | Hayır | Evet — .AddBrandLogo() |
| QR hata düzeltme seviyeleri | H, Q, M, L | En Yüksek, Yüksek, Orta, Düşük |
| Code 128 | Evet | Evet |
| Data Matrix | Evet | Evet |
| PDF417 | Evet | Evet |
| Aztec | Evet | Evet |
| Dosya çıktısı | DrawToBitmap — manuel Bitmap tahsisi | .SaveAsPng(), .SaveAsGif(), .SaveAsSvg() |
| İkili çıktı (HTTP yanıtı) | Manuel Bitmap → MemoryStream | .ToPngBinaryData() |
| Çoklu iş parçacığı okuma | Geçerli değil — okuma yok | MaxParallelThreads = 4 |
| Çoklu barkod okuma | Geçerli değil — okuma yok | ExpectMultipleBarcodes = true |
| Platformlar | Windows (WinForms / Blazor) | Windows, Linux, macOS, Docker, Azure, AWS Lambda |
| .NET sürüm desteği | .NET Framework + modern .NET (Windows) | .NET 4.6.2 ile .NET 9 arasında |
API Eslestirme Referansi
DevExpress BarCodeControl desenine aşina olan ekipler, bu eşdeğerlikleri faydalı bulacaktır:
| DevExpress Barkod | IronBarcode |
|---|---|
new BarCodeControl() |
Statik — örneğe gerek yok |
new Code128Generator() + barCode.Symbology = symbology |
BarcodeEncoding.Code128 parametre olarak geçildi |
new QRCodeGenerator() + QRCodeErrorCorrectionLevel.H |
QRCodeWriter.CreateQrCode("data", 500, QRCodeWriter.QrErrorCorrectionLevel.Highest) |
new DataMatrixGenerator() + DataMatrixSize.Matrix26x26 |
BarcodeWriter.CreateBarcode("data", BarcodeEncoding.DataMatrix) |
new PDF417Generator() |
BarcodeWriter.CreateBarcode("data", BarcodeEncoding.PDF417) |
new AztecGenerator() |
BarcodeWriter.CreateBarcode("data", BarcodeEncoding.Aztec) |
barCode.Module = 0.02f (dökümantasyon birimleri) |
.ResizeTo(width, height) (piksel) |
barCode.ShowText = true |
.AddBarcodeText() |
DrawToBitmap(bitmap, rect) — manuel Bitmap tahsisi |
.SaveAsPng(path) — boyutlandırmayı otomatik olarak işler |
Manuel Bitmap → MemoryStream için HTTP yanıtı |
.ToPngBinaryData() |
| Okuma API'si yok | BarcodeReader.Read(imagePath) |
TextResult türü |
.Value (dize), .Format (BarcodeEncoding) |
| Her projede UI montajı gereklidir | Herhangi bir .NET proje türünde çalışır |
| Yalnızca Suite (~$2,499+/yr) | Bağımsız (süresiz $749'dan başlayan fiyatlarla) |
Takımlar Ne Zaman Geçiş Yapar
Belirli senaryolar genellikle DevExpress barkod denetimlerinden IronBarcode'a geçişi tetikler.
Okuma gereksinimi gelir. En yaygın senaryo, yıllardır barkod üreten ve yeni bir özellik talebinin geldiği WinForms uygulamasıdır: uygulama şimdi yüklenen görüntülerden veya kamera çekimlerinden barkodları taramalı veya doğrulamalıdır. DevExpress'in okuma API'si yok. Ekip, her halükarda yeni bir kutuphane ihtiyaç duyuyor ve bu nedenle aynı kutuphanede üretimi birleştirmek mantıklı.
Bir web API uç noktası ihtiyaçı. Bir ekip, talep üzerine barkod etiketleri oluşturan bir mikro hizmet inşa eder — bir web ön yüzünden, bir mobil uygulamadan veya başka bir servisten çağrılır. ASP.NET Core projisinin WinForms bağımlılığı yoktur ve ekip bir tane eklemek istemez. IronBarcode'un statik API'si, herhangi bir UI montaj taşımadan bir HTTP uç noktasına entegre olur.
Azure Function veya Lambda dağıtımı. Sunucusuz dağıtımlar genellikle Linux tabanlı görüntüler ve minimal çalışma zamanları kullanır. BarCodeControl bu ortam için tasarlanmamıştır. IronBarcode, Linux'ta, Docker konteynerlerinde, Azure Functions'ta ve AWS Lambda'da, yapılandırma değişiklikleri olmadan çalışır.
Tek bir özellik için paket yenileme maliyeti. Yenileme yaklaşırken ve bir ekip DXperience paketinden aslında ne kullandıklarını denetlediğinde, belirli bir hizmetteki tek DevExpress bileşeninin BarCodeControl olduğunu keşfetmek bir maliyet tartışması yaratır. Barkod üretimi için tam bir suiti aboneliği ödemek, süresiz $749 maliyetli bir bağımsız kutuphaneye kıyasla zor bir argümandır.
PDF'lerden çoklu barkod okuma. Belge işleme iş akışları — fatura PDF'lerinden, sevkiyat manifestolarından veya taranmış formlardan barkod okuma — hem PDF desteği hem de okuma yeteneği gerektirir. IronBarcode, PDF dosyalarından doğrudan okuma yapar, ekstra bir kutuphane yok. DevExpress bu yeteneklerin hiçbirini sağlamaz.
Sonuç
DevExpress'in barkod sunumu, en iyi şekilde bir UI araç seti içinde paketlenmiş bir UI oluşturma özelliği olarak anlaşılır. Uygulamanız zaten grid ve grafik kontrolleri için DevExpress'i kullanan bir WinForms veya Blazor uygulamasıysa ve tek barkod gereksiniminiz bir formda barkodu görsel olarak göstermeye yönelikse, BarCodeControl makul bir seçimdir — zaten lisansınız var.
Aşağıdaki herhangi birine ihtiyaç duyduğunuz anda, BarCodeControl doğru araç olmaktan çıkar: barkod okuma, sunucu tarafı bir bağlamda barkod oluşturma, başsız bir ortamda çalıştırma, Linux üzerinde çalışma veya bir WinForms montaj referansı olmadan çalışma. DevExpress desteği, okuma işlevselliğinin olmadığını ve bunu eklemeye dair bir plan olmadığını doğruladı. Başsız sınırlama, yapılandırma sorunu değil, mimari bir problem. Bir UI kontrolüdür, bir UI kontrolüdür.
IronBarcode, programatik barkod işleri için inşa edilmiştir — herhangi bir ortamda, herhangi bir platformda, statik bir API aracılığıyla üretim ve okuma. İki araç farklı sorunları çözer. DevExpress barkodu bir form içinde oluşturma içindir. IronBarcode, kod içinde barkod işlemek içindir.
Sıkça Sorulan Sorular
DevExpress Barkod nedir?
DevExpress Barkod, C# uygulamalarinda barkodlar oluşturmak ve okumak için bir .NET barkod kütüphanesidir. Geliştiriciler .NET projeleri için bir barkod çözümunu degerlendirirken birkac alternatifi arasinda degerlendirirler.
DevExpress Barkod ile IronBarcode arasindaki temel farklar nelerdir?
IronBarcode, örnek yönetimi gerektirmeyen statik, durumsuz bir API kullanirken, DevExpress Barkod genellikle kullanım oncesi örnek oluşturma ve konfigürasyon gerektirir. IronBarcode ayrica yerel PDF desteği, otomatik format algilama ve tüm ortamlarda tek anahtar lisanslama sunar.
IronBarcode, DevExpress Barkod'dan daha kolay mi lisanslanir?
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, DevExpress Barkod'un destekledigi tüm barkod formatlarini 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, DevExpress Barkod'a karsi toplu işlem işleme nasil ele alir?
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.
IronBarcode'u DevExpress'in aksine satın almadan önce degerlendirebilir 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.
DevExpress Barkod ile IronBarcode arasindaki fiyat farki 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.
DevExpress Barkod'dan IronBarcode'a geçiş açık mi?
DevExpress Barkod'dan IronBarcode'a geçiş esas itibariyla örnek tabanli API cagri yerine IronBarcode'un statik metodlarini kullanmayi, lisans şablonlarini kaldirmayı ve sonuc özellik adlarini güncellemeyi icerir. Cogu geçiş, kodda azalma icerir.
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.

