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

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()
$vbLabelText   $csharpLabel

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
$vbLabelText   $csharpLabel

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
$vbLabelText   $csharpLabel

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
SHELL

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")
$vbLabelText   $csharpLabel

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)
$vbLabelText   $csharpLabel

Ö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
$vbLabelText   $csharpLabel

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"
$vbLabelText   $csharpLabel

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()
$vbLabelText   $csharpLabel

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");
$vbLabelText   $csharpLabel

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")
$vbLabelText   $csharpLabel

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 BitmapMemoryStream 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.

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

Iron Destek Ekibi

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