IRONSOFTWAREHOME
DIĞER BILEŞENLERLE KARŞILAŞTIRIN

Accusoft BarcodeXpress vs IronBarcode: Lisanslama, İşlem Hızı ve API Tavizleri

Curtis Chau
Curtis Chau
Updated: 26 Nisan 2026

Bir barkod kütüphanesini deneme sürümü ile değerlendirirken, satın almadan önce görüntülerinizde gerçekten çalışıp çalışmadığını görmek istersiniz. Accusoft BarcodeXpress size bu seçeneği vermez. Değerlendirme modunda, çözümlenen barkod değerleri " UNLICENSED accusoft.com " dizesiyle damgalanır ve üretilen 2D barkodlar aynı damgayı taşır. Kütüphanenin bir barkod bulduğunu doğrulayabilirsiniz, ancak barkodu doğru okuyup okumadığını doğrulayamazsınız. Bu, doğrulamadan önce taahhüt etme durumu ve fiyatlandırmadan önce önemli bir sürtüşme noktasıdır.

Accusoft BarcodeXpress Anlama

Accusoft, yıllardır kurumsal ortamlar için belge görüntüleme yazılımı geliştiriyor. BarcodeXpress, PrizmDoc, ImageGear ve Accusoft Imaging'i içeren daha geniş bir ürün ailesinin parçasıdır. Bu ürünleri şimdiden kullanmakta olan ekipler, tanıdık bir API yüzeyi ile karşılaşır ve mevcut bir Accusoft hesap ilişkisine dayanabilir. Yalnızca barkod kullanımı için, bu bağlam daha az değer sağlar.

Çekirdek SDK, .NET Core için NuGet paketi olarak mevcuttur. API, örnek tabanlıdır — bir BarcodeXpress nesnesi oluşturur, Licensing özelliğini yapılandırır ve ardından gerçek işlemler için çocuk reader ve writer nesnelerini kullanırsınız. İki anahtarlı lisanslama sistemi, BarcodeXpress'i çoğu alternatiften ayırır.

BarcodeXpress'in ana mimari özellikleri:

  • Örnek tabanlı API: Her işlem bir BarcodeXpress örneği gerektirir; statik rahatlık yöntemleri tasarımda yer almaz
  • İki katmanlı lisanslama: SDK lisanslama (SetSolutionName + SetSolutionKey) ve OEM/çalışma zamanı lisanslama (SetOEMLicenseKey) ayrı sistemlerdir ve ayrı satın alma işlemleri gerektirir
  • Değerlendirme modu damgalama: Değerlendirme modunda, çözümlenen değerler " UNLICENSED accusoft.com " ile damgalanır (ve üretilen 2D barkodlar aynı dize ile damgalanır), bu da satın alma öncesi doğruluk testini imkânsız hale getirir
  • Manuel format belirtimi: Okuyucu, aranacak simboility özelliklerini belirtmek için açıkBarcodeTypes yapılandırması gerektirir; belirtilmeyen formatlar tespit edilmez
  • 40 PPM Standart tavanı: Standart Sürüm, işleme hızını dakikada 40 sayfa ile sınırlar; bu sınır çoğu ekip tarafından dağıtımdan sonra, öncesinde değil, fark edilir
  • Yerli PDF desteği yok: PDF dosyaları okuyucu işleyebilsin diye ayrı bir kütüphane yardımıyla görüntüye dönüştürülmelidir
  • Minimum beş çalışma zamanı lisansı: Tek bir sunucu dağıtımı için bile en az beş çalışma zamanı lisansı satın alınması gerekmektedir

İki Anahtar Sisteminin Açıklaması

BarcodeXpress, lisanslamayı iki kavramsal olarak ayrı katmana böler:

// BarcodeXpress: two separate license keys required
using Accusoft.BarcodeXpressSdk;

// Constructor takes the path to the runtime files (e.g. ".").
var barcodeXpress = new BarcodeXpress(".");

// Step 1: SDK license (for development).
// SetSolutionName and SetSolutionKey are methods, not properties.
// SetSolutionKey takes four 32-bit integers (not a parsed long).
barcodeXpress.Licensing.SetSolutionName("YourCompanyName");
barcodeXpress.Licensing.SetSolutionKey(1, 2, 3, 4);

// Step 2: OEM/runtime license (for production — minimum 5 purchased).
try
{
    barcodeXpress.Licensing.SetOEMLicenseKey("YourOEMLicenseString");
}
catch (Exception ex)
{
    // Without a valid OEM license, the SDK runs in stamped evaluation mode.
    Console.WriteLine($"OEM license activation failed: {ex.Message}");
}

SetSolutionKey çifti, SDK'yı kendisi etkinleştirir. SetOEMLicenseKey çağrısı, üretim dağıtım yeteneklerini etkinleştirir. Üretim dağıtımı, barkod değerlerini " UNLICENSED accusoft.com " damgası olmadan döndürebilmesi için her ikisinin de geçerli olması gereklidir.

Kod incelemesinde, bu desen öngörülebilir bir soruyu ortaya çıkarır: "Neden iki ayrı lisans aktivasyonumuz var?" Cevap — Accusoft, SDK lisanslamayı ve dağıtım lisanslamayı ayrı ürünler olarak ayrı faturalandırma ile değerlendirir — API'nın kendisinden her zaman açık değildir. Bu kodu, ilk kurulumdan altı ay sonra bakımını yapan ekipler genellikle hangi anahtarın hangi olduğunu anlamak için belgelere başvurmak zorunda kalır.

Geçerli bir OEM lisansı olmadan, SetOEMLicenseKey atar ve SDK değerlendirme moduna geri döner. Takımlar, genellikle aktivasyonu try/catch içine sararak eğer başarısızlık varsa sessizce damgalı barkod değerleri üretmek yerine sesli hata mesajı kaydedilmesini sağlar:

try
{
    barcodeXpress.Licensing.SetOEMLicenseKey(oemKey);
}
catch (Exception ex)
{
    // In evaluation mode, barcode values are stamped with
    // " UNLICENSED accusoft.com " in the output.
    throw new InvalidOperationException(
        "OEM license activation failed — barcode values will be stamped", ex);
}

Bu koruma, takımların, değerlendirme modunun çıktısı sessizce sonuçları damgalamak yerine çözülmüş değerleri ya da değeri fırlattığını fark ettiğinde ekledikleri desendir.

IronBarcode Anlama

IronBarcode, NuGet paketi dışında hiçbir dış bağımlılığı olmayan bağımsız bir .NET barkod kütüphanesidir. Her iki oluşturma ve okuma, statik fabrika yöntemleriyle yönetilir; bu, yönetilecek bir örnek yaşam döngüsü olmadığı ve uygulama kodunda yaygın olarak bulunan kurucu çağrılarının olmadığı anlamına gelir.

Tek anahtarlı lisans modeli, deneme modunda test ettiğiniz şeyin üretimde de çalıştığı ve tek farkın deneme sırasında oluşturulan barkod görüntüleri üzerinde bir filigran olduğudur. Çözülen değerler her zaman eksiksizdir; bu, satın alıp almama kararından önce gerçek belgelerinizde okuma doğruluğunu kıyaslayabileceğiniz anlamına gelir.

IronBarcode'un ana özellikleri:

  • Statik API tasarımı: BarcodeReader.Read() ve BarcodeWriter.CreateBarcode() durum bilgisi olmayan statik yöntemlerdir — hiçbir örnek yönetimi gerektirmez
  • Tek lisans anahtarı: Bir anahtar, hem geliştirme hem de üretim dağıtımını kapsar; ayrı bir çalışma zamanı lisans katmanı yok
  • Tam deneme değerleri: Deneme modunda, tam çözülen değerler döner; filigran, yalnızca oluşturulan çıktı görüntülerine uygulanır, okuma sonuçlarına değil
  • Otomatik format algılama: IronBarcode, tüm desteklenen formatlar arasında sembolojiyi otomatik olarak algılar; BarcodeTypes numaralandırması gerekli değildir
  • Yerel PDF desteği: BarcodeReader.Read("document.pdf"), PDF dosyalarını ayrı bir işleme adımı olmadan doğrudan işler
  • Kapasite tavanı yok: İşleme hızı, yazılım tarafından dayatılan bir tavanla sınırlı değildir; yalnızca donanım ve ağ kapasitesi sınırları ile sınırlıdır
  • Tasarım itibariyle iplik güvenli: Durum bilgisi olmayan statik yöntemler, herhangi bir sayıda iplikten eşzamanlı olarak çağrılabilir ve örnek izolasyonu gerektirmez

Özellik Karşılaştırması

ÖzellikAccusoft BarcodeXpressIronBarcode
Lisans modeliSDK lisansı + ayrı çalışma zamanı lisansıTek süreli anahtar
Değerlendirme modu davranışıBarkod değerleri " UNLICENSED accusoft.com " damgası ile damgalanırTam değerler döner, yalnızca oluşturulan çıktıda filigran var
Verimlilik limiti (Standart)Dakikada 40 sayfaVerimlilik kısıtlaması yok
PDF desteğiGörüntü çıkartımı için harici PDF kütüphanesi gerekliDoğal — BarcodeReader.Read("doc.pdf")
API stiliÖrnek-tabanlı, söylemli yapılandırmaStatik fabrika yöntemleri, akıcı API
Thread güvenliğiHer iplik için ayrı örnek gerekDurumsuz statik yöntemler — doğal iplik güvenliği sağlar
Fiyat başlangıç noktası$1,960+ SDK + $2,500+ çalışma zamanı (min 5)$999 kalıcı (Lite, 1 gelişt.)

Ayrıntılı Özellik Karşılaştırması

ÖzellikAccusoft BarcodeXpressIronBarcode
Lisanslama
Lisans modeliSDK anahtarı + çalışma zamanı anahtarıTek süreli anahtar
Minimum çalışma zamanı lisansları5 (hatta 1 sunucu için)Çalışma zamanı lisans konsepti yok
Değerlendirme düzeyiDeğerler " UNLICENSED accusoft.com " damgası ile damgalanırTam değerler, yalnızca çıktı görüntüleri üzerinde filigran
Süresiz lisansStandart değil — satış ekibiyle iletişime geçinEvet, tüm katmanlar
Yıllık yenilemeDestek için gereklidirOpsiyonel
Okuma
Format otomatik algılamaManuel — barkod türleri belirtilmelidirDesteklenen tüm formatlarda otomatik
PDF okumaHarici PDF kütüphanesi gereklidirYerel
Görüntü başına çoklu barkodEvet, BarcodeTypes yapılandırması ileEvet, ExpectMultipleBarcodes seçeneği ile
Sonuç özellikleriBarcodeValue, BarcodeTypeValue, Format, Confidence, PageNumber
Veri işleme sınırı40 S/DK (Standart Sürüm)Herhangi bir katmanda sınırlama yok
Üretim
Kod 128 üretimiEvet, writer.BarcodeType üzerindenEvet, BarcodeWriter.CreateBarcode() üzerinden
QR kod üretimiEvetEvet, QRCodeWriter.CreateQrCode() üzerinden
Logolu QR kodManuel görüntü yerleştirme gerekliAddBrandLogo("logo.png") yerleşik
Çıkış formatlarıDosya kaydetmePNG, JPG, PDF, ikili veri, akış
Platform ve Uygulama
.NET FrameworkAyrı eski SDK.NET Framework 4.6.2+
.NET Core / .NET 5+Evet (.NET Core SDK).NET Core 3.1+, .NET 5/6/7/8/9
Linux/DockerEvetEvet — Windows x64/x86, Linux x64, macOS x64/ARM
Docker lisans konfigürasyonuLisans dosyası veya lisans sunucusuÇevre değişkeni
CI/CD entegrasyonuHem SDK hem de çalışma zamanı anahtarları gerekliTek bir sır
Toplu İşleme
İş parçacığı güvenliğiHer iplik için ayrı örnek gerekDurumsuz — Parallel.ForEach güvenli
Paralel toplu işlemHer iş parçacığı için ayrı örnek yönetimi gerekirDoğrudan Parallel.ForEach desteği

Lisans Mimarisi

BarcodeXpress ve IronBarcode arasındaki lisans karmaşıklığı farkı, üretimde çalışacak başlatma kodu yazarken en görünür haldedir.

BarcodeXpress Yaklaşımı

using Accusoft.BarcodeXpressSdk;

public class BarcodeService
{
    private readonly BarcodeXpress _barcodeXpress;

    public BarcodeService()
    {
        _barcodeXpress = new BarcodeXpress(".");

        // Layer 1: SDK license
        _barcodeXpress.Licensing.SetSolutionName("AcmeCorp");
        _barcodeXpress.Licensing.SetSolutionKey(1, 2, 3, 4);

        // Layer 2: OEM/runtime license — separate purchase, minimum 5
        try
        {
            _barcodeXpress.Licensing.SetOEMLicenseKey("OEMLicenseString");
        }
        catch (Exception ex)
        {
            throw new InvalidOperationException(
                "OEM license activation failed — barcode values will be stamped", ex);
        }
    }
}

Bu yapıcı tamamen herhangi bir barkod işlemi başlamadan önce iki ayrı lisans aktivasyonunu yönetmek için vardır. SetOEMLicenseKey etrafındaki try/catch isteğe bağlı değildir — onsuz, hizmet herhangi bir ortamda OEM anahtarı eksik veya yanlış yapılandırılmış olduğunda sessizce damgalanmış değerler döndürür.

IronBarcode Yaklaşımı

using IronBarCode;

// In Program.cs or startup configuration
IronBarCode.License.LicenseKey = "YOUR-LICENSE-KEY";

Bu, lisans kurulumunun tamamıdır. Ayrı bir çalışma zamanı kilidi açma yok, çözüm adı yok, iki argümanlı UnlockRuntime çağrısı yok. Docker'da, bu başlangıçta okunan bir çevre değişkeni haline gelir. Bir CI/CD hattında, bu bir sırdır. Bir konteyner orkestratöründe, bu bir çevre değişkeni olarak kaba eklenir.

Barkodları Okuma

Barkod okuma, iki kütüphanenin yapılandırma felsefeleri arasındaki farkı ortaya çıkarır — BarcodeXpress, açık format enumerasyonu ve bir özellik tabanlı kurulum API'si gerektirirken, IronBarcode, her şeyi tek bir yöntem çağrısıyla otomatik olarak algılar.

BarcodeXpress Yaklaşımı

BarcodeXpress ile okuma, görüntüyü bir System.Drawing.Bitmap'ye yüklemeyi, sembol setini reader.BarcodeTypes'ye bir System.Array olarak BarcodeType değerleriyle atamayı ve sonuç almak için Analyze(bitmap) çağrısını gerektirir. SDK, PDF'leri doğrudan okumaz — belgelenmiş giriş formatları TIFF, JPEG, PNG ve BMP'dir:

using Accusoft.BarcodeXpressSdk;
using System.Drawing;

public IEnumerable<string> ReadAllBarcodes(string imagePath)
{
    var barcodeXpress = new BarcodeXpress(".");
    barcodeXpress.Licensing.SetSolutionName("AcmeCorp");
    barcodeXpress.Licensing.SetSolutionKey(1, 2, 3, 4);
    barcodeXpress.Licensing.SetOEMLicenseKey("OEMLicenseString");

    using var bitmap = new Bitmap(imagePath);

    // BarcodeTypes is a System.Array of BarcodeType values (not a [Flags]
    // enum). Pass Enum.GetValues to scan for everything, or assign a
    // narrower array to restrict the search space.
    barcodeXpress.reader.BarcodeTypes = new[]
    {
        BarcodeType.Code128Barcode,
        BarcodeType.DataMatrixBarcode,
        BarcodeType.QRCodeBarcode
    };

    Result[] results = barcodeXpress.reader.Analyze(bitmap);
    return results.Select(r => r.BarcodeValue);
}

Analyze bir Bitmap alır ve bir Result[] döndürür. Bir belge, BarcodeTypes dizisinde bulunmayan bir format içeriyorsa, bulunamayacaktır. Belge kaynakları değiştiğinde bu, bakım yükü oluşturur. PDF'ler, Analyze'e beslenmeden önce, ayrı bir kütüphane ile görüntülere önceden işlenmeyi gerektirir.

IronBarcode Yaklaşımı

using IronBarCode;

public IEnumerable<string> ReadAllBarcodes(string imagePath)
{
    var results = BarcodeReader.Read(imagePath);
    return results.Select(r => r.Value);
}

IronBarcode, desteklenen tüm sembolojliler arasında formatı otomatik olarak algılar. Görüntü bir Kod 128, bir QR kodu ve bir DataMatrix içeriyorsa, yapılandırma değişikliği olmadan tümü sonuç koleksiyonunda geri döner. BarcodeReaderOptions sınıfı, okuma davranışı üzerinde daha fazla kontrol sağlamak için hız, iş parçacığı sayısı ve çoklu barkod ayarlarını ortaya çıkarır.

Aynı yöntemle yerel PDF okuma da mevcuttur:

using IronBarCode;

// Native PDF support — no separate library needed
var results = BarcodeReader.Read("invoice-batch.pdf");

foreach (var result in results)
{
    Console.WriteLine($"Page {result.PageNumber}: [{result.Format}] {result.Value}");
}

BarcodeXpress yerel olarak PDF'leri okuyamaz. Her sayfayı ayrı bir kütüphane kullanarak önce bir görüntüye render etmeniz ve ardından bu görüntüleri BarcodeXpress okuyucuya iletmeniz gerekir. Bu, bir bağımlılık ekleyerek, bir dönüşüm adımı ekleyerek ve seçilen PDF kütüphanesine bağlı olarak başka bir lisans maliyeti ekleyerek geliyor.

Toplu İşleme ve İş Parçacığı Güvenliği

Yüksek hacimli barkod işleme, BarcodeXpress'in durumsal örnek modelini ve IronBarcode'un durumsuz statik API'sini arasındaki mimari farkı ortaya çıkarır.

BarcodeXpress Yaklaşımı

BarcodeXpress, örnek tabanlıdır ve reader nesnesi durum bilgilidir. Paralel işleme, her iş parçacığı için bir örnek gerektirir ve tam iki katmanlı lisans başlatması her iş parçacığı bağlamında yinelenir:

using Accusoft.BarcodeXpressSdk;
using System.Collections.Generic;
using System.Drawing;

public Dictionary<string, string> ProcessBatch(IEnumerable<string> imagePaths)
{
    var results = new Dictionary<string, string>();

    foreach (var path in imagePaths)
    {
        using var bitmap = new Bitmap(path);

        _barcodeXpress.reader.BarcodeTypes = new[]
        {
            BarcodeType.Code128Barcode,
            BarcodeType.QRCodeBarcode
        };

        var barcodes = _barcodeXpress.reader.Analyze(bitmap);
        if (barcodes.Length > 0)
            results[path] = barcodes[0].BarcodeValue;
    }

    return results;
}

Standart Sürüm, ayrıca dakikada 40 sayfa sınırı uygular. 100.000 belgeyi 40 S/DK ile işlemek yaklaşık 41 saat sürer. Profesyonel Sürüm, bu sınırı kaldırır ama çalışma zamanı lisansları zaten satın alındıktan sonra daha yüksek bir geliştirici koltuk maliyetine sahiptir.

IronBarcode Yaklaşımı

using IronBarCode;
using System.Collections.Concurrent;
using System.Threading.Tasks;

// IronBarcode — parallel batch with thread-safe static API
var files = Directory.GetFiles("/incoming/scans", "*.png");
var allResults = new ConcurrentBag<string>();

Parallel.ForEach(files, file =>
{
    var r = BarcodeReader.Read(file);
    foreach (var barcode in r)
        allResults.Add($"{file}: {barcode.Value}");
});

IronBarcode'un statik yöntemleri durum bilgisi olmadığı için, üzerinde Parallel.ForEach güvenli olup, örnek yalıtımı gerektirmez. IronBarcode, herhangi bir fiyatlandırma katmanında veri işleme sınırı uygulamaz. Okuma performansını ayarlamak için, BarcodeReaderOptions sınıfı ReadingSpeed ve MaxParallelThreads ayarlarını sağlar.

using IronBarCode;

var options = new BarcodeReaderOptions
{
    Speed = ReadingSpeed.Balanced,
    ExpectMultipleBarcodes = true,
    MaxParallelThreads = 4
};

var results = BarcodeReader.Read("warehouse-scan.png", options);

ReadingSpeed.Balanced varsayılandır. Barkodların temiz olduğu yüksek verimli hatlar için ReadingSpeed.Faster veya hasarlı veya düşük kontrastlı görüntüler için ReadingSpeed.Detailed kullanın.

API Eşleme Başvurusu

Accusoft BarcodeXpressIronBarcode
new BarcodeXpress(".")Statik yöntemler — örnek gerektirmez
Licensing.SetSolutionName("...")IronBarCode.License.LicenseKey = "YOUR-LICENSE-KEY"
Licensing.SetSolutionKey(int, int, int, int)(removed — not needed)
Licensing.SetOEMLicenseKey(string)(removed — no separate runtime license concept)
try/catch OEM aktivasyonu etrafında(removed — license is always either valid or not)
reader.Analyze(bitmap) (ilk System.Drawing.Bitmap yükler)BarcodeReader.Read(path)
reader.BarcodeTypes = new[] { BarcodeType.Code128Barcode, ... }(removed — auto-detection handles all formats)
result.BarcodeValueresult.Value
result.BarcodeTyperesult.Format
writer.BarcodeType = BarcodeType.Code128BarcodeWriter.CreateBarcode("data", BarcodeEncoding.Code128)
writer.BarcodeValue = "data"(first argument to CreateBarcode)
writer.SaveToFile(path).SaveAsPng(path)
40 S/DK Standart sınırHerhangi bir katmanda veri işleme sınırı yok
Değerlendirme: "UNLICENSED accusoft.com" damgası ile değerlerDeneme: tam değerler, sadece çıktı görüntülerinde filigran

Takımlar BarcodeXpress'ten IronBarcode'a Geçmeyi Düşündüğünde

40 S/DK Duvarının Ötesinde Ölçeklendirme

Standart Sürümün dakikada 40 sayfa sınırı, bir iş takımı bir yıllık arşivlenmiş faturalar üzerinde gün sonu toplu işlemeyi çalıştırmayı planlayana kadar cömert geliyor. O hızda 100.000 belgeden oluşan bir toplu iş yaklaşık 41 saat sürer. Profesyonel Sürüm'e geçmek bu sınırı kaldırır ama zaten satın alınan çalışma zamanı lisanslarının üstüne daha yüksek bir geliştirici koltuk maliyetine sahiptir. Kayıt satın alma emri imzalandıktan sonra veri işleme sınırını keşfeden ekipler, kaldırmanın toplam maliyetinin başlangıçtaki tahminleri önemli ölçüde aştığını sıklıkla bulurlar.

CI/CD Hattı Lisanslama Karmaşıklığı

Tipik bir CI/CD kurulumu, geçici konteynerlerde derlemeler gerçekleştirir. BarcodeXpress ile her derleme ortamının hem SDK anahtarı çifti hem de çalışma zamanı kilit anahtarlarının mevcut olması, ayrı sırlar olarak yönetilmesi gerekir. Çalışma zamanı anahtarı eksik veya yanlış yapılandırılmışsa, derleme başarılı olabilir ama entegrasyon testleri bulanık değerler döndürür — bir test boru hattında test yapılmayan barkod içeriğine karşı dikkatlice yazılmayan test iddiaları varsa kolayca gözden kaçan sessiz bir hata modudur.

İzole ve Güvenli Dağıtım Gereksinimleri

Bazı ortamlar — hasta kayıtlarını işleyen sağlık sistemleri, hükümet belge iş akışları, finans kurumu arka ofis işlemeleri — lisans doğrulamasının dışa doğru ağ aramaları yapmasına izin veremez. BarcodeXpress'in çalışma zamanı lisans sistemi, Accusoft'un lisanslama altyapısını içerir ve sıkı ağ çıkış kısıtlamalarına sahip ortamlarda uyum endişesi olabilir. Bu ortamlarda faaliyet gösteren ekipler sıklıkla lisans doğrulaması tamamen yerel olan kütüphaneleri seçerler.

Docker ve Konteyner Dağıtımı

Docker'da BarcodeXpress tipik olarak bir konteynerde bilinen bir yola bir lisans dosyası monte etmek ya da bir lisans sunucusu yapılandırmak ve konteyneri ona yönlendirmek gerektirir. Her iki yaklaşım da dağıtım karmaşıklığı ekler — lisans dosyalarının dağıtılması ve senkronize tutulması gerekir ve bir lisans sunucusu bakım yapılması gereken ek bir altyapı parçasıdır. Mikro hizmet mimarilerine veya sunucusuz dağıtım desenlerine geçen ekipler, konfigürasyon dosyası yaklaşımının değiştirilemez konteyner görüntülerine temiz bir şekilde tercüme edilmediğini bulurlar.

Değerlendirme Doğruluğu Gereksinimleri

Satın almadan önce kendi belgeleri üzerinde okuma doğruluğunu doğrulaması gereken ekipler, BarcodeXpress'in değerlendirme modunu temelde sınırlayıcı bulurlar. Gerçek dünya belge taramalarına karşı test etmek — kütüphanenin düşük kontrastlı barkodları, eğik görüntüleri veya çoklu barkodlu sayfaları nasıl işlediğini kontrol etmek — tam çözümlenmiş değerler gerektirir. Kısmen bulanık çıktı, sadece kütüphanenin bir barkod bulduğunu gösterir, doğru okuyup okumadığı değil.

Genel Geçiş Dikkat Edilmesi Gereken Hususlar

Örnek Yönetiminden Statik Çağrılara

BarcodeXpress, herhangi bir işlemden önce BarcodeXpress örneğinin oluşturulmasını ve lisanslanmasını gerektirir. IronBarcode'un statik yöntemlerine örnek gerekmez. Taşınan ekiplerde genellikle yapıcı yapısı büyük ölçüde lisans şablonu olan bir BarcodeService sınıfı vardır - taşındıktan sonra bu yapıcı tamamen kaldırılabilir veya tek bir lisans anahtarı atamasına indirgenebilir.

BarcodeTypes Numaralandırma Kaldırma

Her BarcodeXpress okuma işlemi, aranacak simboiliteleri numaralandırmak için bir BarcodeTypes Dizi ataması gerektirir. IronBarcode, varsayılan olarak tüm desteklenen formatları otomatik olarak algılar. Taşıma sırasında, tüm reader.BarcodeTypes = ... atamaları herhangi bir yedekleme olmadan silinebilir. Arama alanını sınırlamak için bir performans nedeni varsa, BarcodeReaderOptions zorunlu bir varsayılan yerine açık bir seçim olarak format filtrelemeyi destekler.

Sonuç Özellik Adı Değişiklikleri

İki özellik yeniden adlandırması, tüm sonuç işleme kodunu etkiler: result.BarcodeValue, result.Value olur ve result.BarcodeType, result.Format olur. Çözüm genelinde bir arama ve değiştirme her ikisini de ele alır.IronBarcode sonuçları ayrıca, BarcodeXpress eşdeğeri olmayan ve mevcut sonuç işleme kodunda değişiklik yapmadan ek filtreleme için kullanılabilecek result.Confidence ve result.PageNumber özelliğini de ortaya çıkarır.

Docker Lisans Konfigürasyonu

BarcodeXpress Docker dağıtımları tipik olarak monte edilmiş bir lisans konfigürasyon dosyası kullanır.IronBarcode bir çevre değişkeni kullanır. Taşıma, yapılandırma dosyası için COPY talimatının kaldırılmasını ve tek bir ortam değişkeni atamasının eklenmesini içerir. Kubernetes'te, lisans anahtarı pod spezifikasyonunda monte edilmiş bir hacim yerine bir sır referansı haline gelir.

Ek IronBarcode Yetenekleri

Bu karşılaştırmada ele alınan temel özelliklerin ötesinde, IronBarcode, BarcodeXpress'in tekliflerinin bir parçası olmayan yetenekler sağlar:

  • Logo ile QR Kodu: QRCodeWriter.CreateQrCode().AddBrandLogo("logo.png"), bir marka imajını QR Koduna yerel olarak ekler, tarama güvenilirliğini korumak için yapılandırılabilir hata düzeltme seviyesi ile
  • PDF Üzerine Barkod Damgalama: Mevcut PDF belgelerine ayrı bir PDF kütüphanesi olmadan doğrudan barkod yazın
  • Toplu İhracat: Tek bir çağrıda tüm PDF belgelerini işleyin ve sayfa numarası, format, değer ve güven skoru ile sayfa bazında sonuçlar alın

.NET Uyumluluğu ve Geleceğe Hazırlık

IronBarcode, .NET Framework 4.6.2 ve üzerini, .NET Core 3.1'i ve .NET 5, 6, 7, 8 ve 9'u destekler. Platform hedefleri arasında Windows x64 ve x86, Linux x64 ve macOS x64 ve ARM bulunur. Hierousoft'u legacy .NET Framework versiyonundan bir ayıran BarcodeXpress için .NET Core, ayrı bir SDK'dır — uygulamalarının hedeflenen çerçevesini yükselten ekiplerin bunun hesaplamasını yapmaları gerekir. IronBarcode'un tek paketi, desteklenen tüm çalışma zamanlarını kapsar. Yayınlandıkları anda yeni .NET sürümlerini izleyen düzenli güncellemeler.

Sonuç

BarcodeXpress ve IronBarcode, ticari .NET barkod kütüphaneleri için iki farklı tasarım felsefesini temsil eder. BarcodeXpress, SDK erişimini ve üretim dağıtımını, ayrı faturalandırma, ayrı anahtar sistemleri ve ayrı minimum satın alma gereksinimleri olan ayrı lisanslı ürünler olarak ele alır. IronBarcode, kütüphaneyi geliştirmeden üretime kadar her ortamı kapsayan tek bir anahtarla tek bir ürün olarak ele alır.

BarcodeXpress, Accusoft ürünü ekosistemine zaten gömülü olan ekipler için makul bir seçimdir — PrizmDoc veya ImageGear kullanan kuruluşlar, BarcodeXpress'in API'sini tanıdık bulacaklar ve Accusoft hesap ilişkilerini destek için kullanışlı bulacaklar. Bu ekipler için, iki anahtar lisanslama sistemi yeni bir sürtünme yerine yerleşik bir operasyonel desendir. SDK, ayrıca doküman kaynaklarının iyi kontrol edildiği ve format gereksinimlerinin sabit olduğu ortamlar için de uygundur, bu da manuel BarcodeTypes belirtiminin devam eden bir bakım yerine kabul edilebilir bir seferlik yapılandırma olmasını sağlar.

IronBarcode, lisans yönetimi karmaşıklığının doğrudan operasyonel ek yükü etkilediği konteynerler, CI/CD hattı ve bulut ortamlarına dağıtım yapan ekipler için daha uygundur. Otomatik algılama modeli, statik API ve yerel PDF desteği entegrasyon kodunun yüzey alanını azaltır ve tek anahtar lisanslama modeli, geliştirme, test ve üretim ortamları arasında sır yönetimini basitleştirir. Satın almadan önce okuma doğruluğunu değerlendirmesi gereken ekipler için, tam deneme çıktısı — oluşturulan görüntülerde filigran, okuma sonuçlarında değil — gerçek satın alma öncesi karşılaştırmaya olanak tanır.

Fiyat farkı her kademede önemli ölçüde fark yaratır. Tek bir geliştirici düzeyinde, BarcodeXpress SDK artı minimum çalışma zamanı lisansları ile IronBarcode'un Lite katmanı arasındaki fark önemli ölçüde büyüktür. Bu maliyet farkının Accusoft ekosistem entegrasyonuna ikincil olduğu ekipler için BarcodeXpress tutarlı bir seçimdir. Barkod kütüphanelerini kendi niteliklerine göre değerlendiren ekipler için, değerlendirme modu sınırlamaları, iki anahtar lisanslama ve veri işleme sınırları, IronBarcode'u daha anlaşılır bir seçenek yapmaktadır.

[[i: (Accusoft, ilgili sahibinin tescilli ticari markasıdır. Bu site, Accusoft ile ilişkili, desteklenen veya sponsorlu değildir. Tüm ürün adları, logolar ve markalar kendi sahiplerine aittir. Karşılaştırmalar, yalnızca bilgilendirme amaçlıdır ve yazı sırasında halka açık bilgilerle alakalı olarak yansıtılmaktadır.)]]

Curtis Chau
Teknik Yazar

Curtis Chau, Bilgisayar Bilimleri alanında Lisans Derecesine (Carleton Üniversitesi) sahip ve Node.js, TypeScript, JavaScript ve React konularında uzmanlaşmış ön uç geliştirmeyle ilgileniyor. Sezgisel ve estetik açıdan hoş kullanıcı arayüzleri oluşturma tutkunu, Curtis modern çerçevelerle çalışmayı ve iyi yapılandırılmış, görsel olarak çekici kılavuzlar oluşturmayı seviyor.

...
Daha Fazla Oku

İlgili Makaleler

Key in blue circle

Ücretsiz 30 günlük Deneme Anahtarınızı anında edinin.

Your trial license will be sent to your email address

Herhangi bir sınırlama yoktur. %100 erişim. Kredi kartı gerekmez.

bullet_checkedKredi kartı veya hesap oluşturma gerektirmezHerhangi bir sınırlama yoktur. %100 erişim. Kredi kartı gerekmez.
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
Ücretsiz Canlı Demo rezervasyonu yapın
Booking Badge

Dünya Çapında Milyonlarca Mühendisin Güvendiği

Iron Software müşteri logoları
Bağımsız Danışmanlık Alın
Aşağıdaki formu doldurun veya sales@ironsoftware.com adresine e-posta gönderin
Bilgileriniz daima gizli kalacaktır.
Dünya Çapında Milyonlarca Mühendisin Güvendiği
Iron Software müşteri logoları
Ücretsiz 30 Günlük Deneme Anahtarınızı anında alın.
Kredi kartı veya hesap oluşturma gerektirmez