DevExpress Barkod vs IronBarcode: C# Barkod Kütüphanesi Karşılaştırması
DevExpress Barkodvs IronBarcode: UI Kontrol vs Bağımsız Kütüphane
DevExpress, iyi bilinen bir .NET UI araç takımıdır. Izgara, zamanlayıcı, grafik ve pivot tablo kontrolleri, kurumsal ekipler tarafından yaygın olarak kullanılır. Barkod desteği ise farklı bir hikaye. DevExpress, bir BarCodeControl — bir WinForms kontrolü ve bir Blazor DxBarCode etiketi — sunar ve bu, bir form üzerine barkod oluşturmanızı sağlar. DevExpress desteği, okuma yeteneği olmadığını ve eklemeyi planlamadıklarını teyit etti. Barkodlarınız bir arka plan işinde, bir web API'si, bir PDF belgesi veya bir UI formu olmayan herhangi bir ortamda yaşıyorsa, kontrol geçerli değildir.
Bu kısıtlama, DevExpress barkod teklifini belirli bir nişe daraltır: bir DevExpress WinForms veya Blazor UI içinde bir barkodu görsel olarak işleme. Bu niş için iyi çalışır. Başka herhangi bir şey için — sunucu tarafı üretim, görüntülerden veya PDF'lerden okuma, Azure Fonksiyonları veya Docker kaplarında başsız işleme — farklı bir araca ihtiyacınız vardır.
DevExpress Barkod Kontrollerini Anlamak
DevExpress BarCodeControl, DevExpress.XtraEditors içinde bulunur ve semboloji oluşturma sınıfları DevExpress.XtraPrinting.BarCode içindedir. Bağımsız bir kütüphane değildir. Bu, 1.699,99 $'dan başlayan DXperience paketinde paketlenmiştir (Evrensel abonelikler 2.299,99 $'dır). Kurulabilir ayrı barkod-only NuGet paketi yoktur.
BarCodeControl bir WinForms kontrolüdür. Bunu bir semboloji nesnesiyle yapılandırır, özellikleri ayarlarsınız ve ekrana çizer. Bu render'ı bir dosyaya kaydetmek, doğru boyutta önceden tahsis edilmiş bir Bitmap bekleyen DrawToBitmap çağrısını gerektirir:
// DevExpress WinForms: UI control, not a library
using DevExpress.XtraEditors; // BarCodeControl
using DevExpress.XtraPrinting.BarCode; // Code128Generator, etc.
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.XtraEditors; // BarCodeControl
using DevExpress.XtraPrinting.BarCode; // Code128Generator, etc.
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.XtraEditors
Imports DevExpress.XtraPrinting.BarCode
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()
Birçok sürtünme noktasına dikkat edin. İlk olarak, barCode.Module piksel yerine belge birimleri cinsindedir, bu da piksel boyutlarında düşünüyorsanız bir uyumsuzluk yaratır. İkincisi, Bitmap'yi tahsis etmeden önce son piksel boyutunu bilmelisiniz. Üçüncüsü, kontrolün WinForms derlemelerinin yüklenmesini gerektirir — bu, bir ASP.NET Core minimal API veya bir konsol arka plan hizmeti, yalnızca barkod görüntüsü üretmek için Windows Forms altyapısını yüklemelidir.
Blazor DxBarCode etiketi kavramsal olarak benzerdir, ancak bir Razor bileşenidir ve UI render'ı içindir, server-side generation API değildir.
Okuma Kapasitesi Yok
DevExpress'in resmi pozisyonu, barkod tanıma veya tarama işlevselliği sağlamadııklarıdır. DevExpress Destek Merkezi "DevExpress BarCode kontrolü sadece barkod oluşturmak için tasarlanmıştır. Barkod tanıma/tarama işlevi sağlamıyoruz." Şu an için eklemeyi planlamıyoruz.
Bir DevExpress WinForms uygulamasıyla başlayan ve daha sonra yüklenen bir görüntüden barkod taraması veya bir PDF ekinden QR kodu okuma gereksinimi alan ekipler için, DevExpress araç kutusu yardımcı olamaz. Okumayı işlemek için ayrı bir kütüphane getirmeniz gerekecektir, bu da hemen API tutarlılığı için, üretim tarafının da bu kütüphaneye taşınıp taşınmaması gerektiği sorusunu ortaya çıkarır.
IronBarcode her iki yönü de ele alır:
//IronBarcode reading — 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}");
}
//IronBarcode reading — 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
Bir PDF dosyasından okuma, ekstra kütüphaneler 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, bağımsız bir ürün olarak satılmaz. Herhangi bir projede BarCodeControl'yi kullanmak için, ekibinizin bir DevExpress aboneliğine ihtiyacı vardır — ASP.NET & Blazor seviyesi $1.099,99/yıl, DXperience (WinForms + WPF) $1.699,99/yıl ve Universal $2.299,99/yıl'dan başlar. Paket, grid, grafik, takvim, pivot ve birçok diğer kontrolü içerir — bu, tam bir DevExpress WinForms veya Blazor uygulaması oluşturuyorsanız makul bir durumdur. Yalnızca bir arka uç hizmeti için barkod üretimine ihtiyacınız varsa, hizmetin asla kullanmayacağı bir tam UI araç takımına para ödersiniz.
IronBarcode bağımsız bir paket:
dotnet add package IronBarcode
dotnet add package IronBarcode
Perpetual Lite lisansı, bir geliştirici için $749'dan başlar. Bir UI araç takımı içermez. Barkod üretme ve okuma, çapraz platform desteği dışında istemediğiniz hiçbir şey yok.
Başsız Kullanım Kısıtlaması
Sunucu tarafı senaryolarda BarCodeControl ile ilgili temel sorun, bunun bir WinForms kontrolü olmasıdır. .NET 6+ ile bir ASP.NET Core minimal API projesinde, WinForms derlemeleri varsayılan olarak referans alınmaz. BarCodeControl'yi başlatmak için, API projenizin ya özellikle Windows'u hedeflemesi ve Windows Forms çalışma zamanını yüklemesi gerekir ya da API'nizin asla render yapmayacağı UI altyapısını çeken geçici referanslar eklemesi gerekir.
Bir Azure Funktion tüketim planında, hiç bir UI katmanı yoktur. Linux tabanlı bir görüntü çalıştıran bir Docker kapsülünde, Windows Forms GDI+ bağımlılıkları tamamen eksik olabilir. DevExpress, bu başsız ortamlarda BarCodeControl kullanımını resmi olarak desteklememektedir.
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 belirli çağrı bir konsol uygulamasında, bir ASP.NET Core denetleyicisinde, Service Bus mesajıyla tetiklenen bir Azure Fonksiyonunda veya Linux üzerinde çalışan bir Docker kapsülünde çalışır. API ortamlar arasında değişmez. Hiçbir UI derleme bağımlılığı yoktur.
PNG dosya yanıtı olarak bir 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 geçici çözümler olmaksızın BarCodeControl ile eşdeğer bir model yoktur.
IronBarcode Anlama
IronBarcode barkod üretme ve okuma için bağımsız bir .NET kütüphanesidir. API tamamen statiktir — yönetilecek hiçbir örnek yok, kontrol yaşam döngüsü yok, UI bağımlılığı yok. Üretim ve okuma 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şlangıçta tek bir satırdır:
IronBarCode.License.LicenseKey = "YOUR-LICENSE-KEY";
IronBarCode.License.LicenseKey = "YOUR-LICENSE-KEY";
Imports IronBarCode
IronBarCode.License.LicenseKey = "YOUR-LICENSE-KEY"
Ağ çağrısı yok. Hata yönetimi ş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östermektedir.
DevExpress QR kodu — WinForms kontrolü:
// DevExpress: QR via BarCodeControl + QRCodeGenerator symbology
using DevExpress.XtraEditors; // BarCodeControl
using DevExpress.XtraPrinting.BarCode; // QRCodeGenerator + QRCodeErrorCorrectionLevel
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.XtraEditors; // BarCodeControl
using DevExpress.XtraPrinting.BarCode; // QRCodeGenerator + QRCodeErrorCorrectionLevel
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.XtraEditors ' BarCodeControl
Imports DevExpress.XtraPrinting.BarCode ' QRCodeGenerator + QRCodeErrorCorrectionLevel
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 ortasına 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 gömülü logolar için eşdeğer sunmaz. Kontrol, standart bir QR kodu render eder ve başka bir şey yapmaz.
Ö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 onaylandı | Evet — resimler, PDF'ler, bayt dizileri |
| PDF barkod okuma | Hayır | Evet — yerel, ekstra kütüphane yok |
| Bağımsız NuGet paketi | Hayır — DXperience paketi gerekli | Evet — yalnızca IronBarcode |
| Paket maliyeti | Yıllık 1.099,99 $'dan başlayan fiyatlar (ASP.NET & Blazor) 2.299,99 $'a kadar (Evrensel) | Geçerli değil — bağımsız |
| Lisans maliyeti | Yalnızca abonelik | $749'dan itibaren süresiz |
| ASP.NET Core / minimal API | WinForms çözümleri gerektirir | Yerel destek |
| Azure Fonksiyonları | Başsız desteklenmez | Tam destek |
| Docker / Linux | Linux tabanlı görüntülerde GDI+ sorunları | Tam destek |
| Konsol uygulamaları | WinForms derleme yüklemesini gerektirir | Yerel destek |
| QR kod üretimi | Evet (QRCodeGenerator sembolojisi ile) | 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 |
| Kod 128 | Evet | Evet |
| Veri Matrisi | Evet | Evet |
| PDF417 | Evet | Evet |
| Aztek | Evet | Evet |
| Dosya çıkışı | DrawToBitmap — manuel Bitmap allocate etme | .SaveAsPng(), .SaveAsGif(), .SaveAsSvg() |
| İkili çıkış (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 Framework 4.6.2 üzerinden modern .NET |
API Eşleme Başvurusu
DevExpress BarCodeControl modeline aşina olan ekipler bu eşdeğerlikleri faydalı bulacaktır:
| DevExpress Barkod | IronBarcode |
|---|---|
new BarCodeControl() |
Statik — örnek gerekmez |
new Code128Generator() + barCode.Symbology = symbology |
Parametre olarak geçirilen BarcodeEncoding.Code128 |
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 (belge birimleri) |
.ResizeTo(width, height) (pikseller) |
barCode.ShowText = true |
.AddBarcodeText() |
DrawToBitmap(bitmap, rect) — manuel Bitmap tahsisi |
.SaveAsPng(path) — boyutlandırmayı otomatik olarak yönetir |
Manuel Bitmap → HTTP yanıtı için MemoryStream |
.ToPngBinaryData() |
| Okuma API'si yok | BarcodeReader.Read(imagePath) |
| Sonuç tipi okuma yok | .Value (string), .Format (BarcodeEncoding) |
| Her projede UI derlemesi gerekli | Herhangi bir .NET proje türünde çalışır |
| Yalnızca Suite (1.099,99 $/yıldan itibaren) | Bağımsız (sürekli $749'dan) |
Takımlar Geçiş Yaptığında
Belirli birkaç senaryo genellikle DevExpress barkod kontrollerinden IronBarcode'a geçişi tetikler.
Okuma gereksinimi gelir. En yaygın senaryo, yıllardır barkod üreten bir WinForms uygulamasıdır ve yeni bir özellik isteği gelir: Uygulama artık yüklenen görüntülerden veya kamera çekimlerinden barkod taramak veya doğrulamak zorundadır. DevExpress'in bir okuma API'si yok. Takımın yine de yeni bir kütüphaneye ihtiyacı var ve üretimi aynı kütüphane üstünde konsolide etmek mantıklıdır.
Web API uç noktası ihtiyacı. Bir ekip talep üzerine barkod etiketleri üreten bir mikroservis oluşturur — bir web önyüzü, bir mobil uygulama veya başka bir servis tarafından çağrılır. ASP.NET Core projesinin WinForms bağımlılığı yoktur ve ekip bunun eklenmesini istemez. IronBarcode'un statik API'si, herhangi bir UI derlemeliği yükü olmaksızın bir HTTP uç noktasına entegre olur.
Azure Function veya Lambda konuşlandırması. Sunucusuz konuşlandırmalar sıklıkla Linux tabanlı imajlar ve minimal çalıştırma süreleri kullanır. BarCodeControl bu ortam için tasarlanmamıştır. IronBarcode, yapılandırma değişiklikleri olmadan Linux üzerinde, Docker kaplarında, Azure Functions'ta ve AWS Lambda'da çalışır.
Tek bir özellik için Suite yenileme maliyeti. Yenileme vakti geldiğinde ve bir ekip, DXperience suite'den gerçekte ne kullandıklarını denetlediğinde, belirli bir hizmetteki tek DevExpress bileşeninin BarCodeControl olduğunu keşfetmek bir maliyet tartışması yaratır. Bağımsız bir kütüphane süresiz 749 $ iken barkod oluşturma için tam bir DXperience aboneliği (yeni 1.699,99 $/yıl, yenilemede 849,99 $/yıl) ödemek zor bir tartışma konusudur.
PDF'lerden çoklu barkod okuma. Belge işleme iş akışları — fatura PDF'lerinden, gönderi manifestolarından veya taranmış formlardan barkod okuma — hem PDF desteği hem de okuma yeteneği gerektirir. IronBarcode, ekstra bir kütüphane olmaksızın doğrudan PDF dosyalarından okur. DevExpress bu yeteneklerin hiçbirini sağlamaz.
Sonuç
DevExpress'in barkod teklifi, bir UI araç seti içine paketlenmiş bir UI render özelliği olarak en iyi şekilde anlaşılır. Uygulamanız zaten ızgara ve grafik kontrolleri için DevExpress kullanan bir WinForms veya Blazor uygulamasıysa ve tek barkod ihtiyacınız bir formda görsel olarak barkod göstermekse, BarCodeControl makul bir seçimdir — zaten lisansa sahipsiniz.
Aşağıdakilerden herhangi biri gerektiğinde, 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'ta çalışma veya bir WinForms derleme referansı olmadan çalıştırma. DevExpress destek, okuma işlevselliği olmadığı ve onu ekleme planlarının olmadığını doğrulamıştır. Başsız sınırlama yapı ile ilgilidir, bir yapılandırma sorunu değildir. Bir UI kontrolü, bir UI kontrolüdür.
IronBarcode programlanabilir barkod çalışması için inşa edilmiştir — her ortamda, her platformda, statik bir API ile üretim ve okuma. İki araç farklı sorunlar çözer. DevExpress barkodu, bir form içine render için. IronBarcode, kod içerisinde barkod işleme içindir.
Sıkça Sorulan Sorular
DevExpress Barcode nedir?
DevExpress Barcode, 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ç alternatiftir.
DevExpress Barcode ile IronBarcode arasındaki temel farklar nelerdir?
IronBarcode, örnek yönetimi gerektirmeyen statik, durumsuz bir API kullanırken, DevExpress Barcode 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, DevExpress Barcode'a 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, DevExpress Barcode'un 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, DevExpress Barcode'a 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, DevExpress'ten farklı olarak?
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.
DevExpress Barcode 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.
DevExpress Barcode'dan IronBarcode'a geçiş yapmak kolay mı?
DevExpress Barcode'dan 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.

