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

Neodynamic Barcode Professional vs IronBarcode: C# Barkod Kütüphanesi Karşılaştırması

Neodynamic Barcode vs IronBarcode: Ayrılmış SDK Mimarisi ve Format Desteği Karşılaştırıldı

Neodynamic'in Barcode Reader SDK'sı QR kodlarını okuyamaz. Her iki Neodynamic SDK'sını satın alabilir ve yine de eşlik eden oluşturucunun ürettiği aynı QR kodlarını okuyamaz hale gelebilirsiniz. Bu tek çelişki — QR Code, DataMatrix, PDF417 ve Aztec'i destekleyen bir oluşturucu ile bu formatların hiçbirini desteklemeyen bir okuyucu — Neodynamic'in barkod araçları ile çalışma deneyimini tanımlar ve IronBarcode ile yapılan karşılaştırmaya çerçeve oluşturur.

Neodynamic Barkod Anlama

Neodynamic, iki tamamen ayrı ticari ürün aracılığıyla barkod işlevselliği sunar: barkod oluşturma için Barcode Professional SDK ve barkod okuma için Barcode Reader SDK. Her ürün, kendi NuGet paketiyle dağıtılır, kendi satın alımını gerektirir ve kendi lisans anahtarını taşır. Hem üretim hem de okuma gerektiren bir proje, her iki paketi bağımsız olarak entegre etmeli, ayrı güncelleme döngüleri boyunca her ikisini de sürdürmeli ve uygulama başlangıcında her ikisini de yapılandırmalıdır.

Barcode Professional SDK, üretim bileşenidir. Lineer formatlar (Code 128, Code 39, EAN-13, UPC-A, Codabar, ITF) ve 2D formatlar (QR Code, DataMatrix, PDF417, Aztec) dahil olmak üzere geniş bir simgoloji yelpazesini destekler. SDK, örnek tabanlı bir API kullanır: bir BarcodeProfessional nesnesi oluşturulur, Code ve Symbology özellikleri atanır ve GetBarcodeImage(), standart System.Drawing.Imaging hattı üzerinden kaydedilen bir System.Drawing.Image üretmek için çağrılır. .NET Framework sürümü System.Drawing bağımlılığı taşır; Ayrı bir .NET Standard sürümü ComponentSource aracılığıyla dağıtılmaktadır.

Barcode Reader SDK, okuma bileşenidir. System.Drawing.Bitmap kabul eder ve yalnızca 1D semboji için sonuç döndürür. QR Code, DataMatrix, PDF417, Aztec ve diğer tüm 2D formatlar okuyucu tarafından desteklenmez. 2D bir barkod gönderildiğinde, SDK sonuç döndürmez — bir istisna fırlatmaz, sadece boş bir sonuç kümesi üretir. Barcode Reader SDK'sı 31 Aralık 2019 tarihinde hizmet ömrünün sonuna geldi ve NuGet paketi (Neodynamic.SDK.BarcodeReader 1.0.2000) Temmuz 2012'den beri güncellenmemiştir ve hedefleri yalnızca .NET Framework 2.0/3.x/4.x'dir. Bu nedenle 2D okuma yeteneğini geri kazanmak, Neodynamic ekosisteminin dışındaki üçüncü bir kütüphaneyi eklemeyi gerektirir.

Neodynamic Barcode'un ana mimari özellikleri:

  • Oluşturma ve okuma için ayrı ürünler: Her iki yeteneği kullanan bir proje için iki NuGet paketi, iki satın alma ve iki lisans anahtarı gereklidir.
  • 2D okuma olmadan 2D üretim: Barcode Professional SDK QR Code, DataMatrix, PDF417 ve Aztec üretir, ancak eşlik eden Barcode Reader SDK bu formatlardan hiçbirini okuyamaz.
  • Örnek tabanlı oluşturma API'si: Oluşturma, bir BarcodeProfessional nesnesi oluşturulmasını ve temellendirilmeden önce özelliklerin atanmasını gerektirir.
  • Çoğu sürümde System.Drawing bağımlılığı: Barcode Professional .NET Windows sürümü ve Barcode Reader SDK, Linux ve konteyner dağıtımı sınırlayan System.Drawing'ya bağımlıdır. Barkod Profesyonel .NET Standard sürümü SkiaSharp kullanır ve bu bağımlılıktan kaçınır.
  • Yalnızca 1D okuma kapsamı: Barcode Reader SDK, Code 128, EAN-13, UPC-A, Code 39, Codabar, Interleaved 2 of 5 ve MSI/Plessey destekler. Hiçbir 2D format dahil değildir.
  • Yerel PDF desteği yok: Hiçbir SDK barkodları doğrudan PDF belgelerinden okumaz; ayrı bir görüntü çıkarım adımı gereklidir.
  • Otomatik format algılama yok: Okuyucu formatı, desteklediği şeylerden, değil görüntü içeriğinden çıkarmak zorundadır.

Dağılmış SDK Mimarisi

Neodynamic SDK'larını satın alan bir proje, başlangıçta iki ayrı lisans bloğunu yapılandırmalıdır. İkili LicenseOwner ve LicenseKey atamaları farklı ad alanları ve farklı sınıf adları kullanır ve hiçbir blok diğerine farkında değildir:

// Neodynamic: two products, two license configurations
using Neodynamic.SDK.Barcode;
using Neodynamic.SDK.BarcodeReader;

// Generation license (Barcode Professional SDK)
BarcodeProfessional.LicenseOwner = "Company";
BarcodeProfessional.LicenseKey = "GEN-KEY";

// Reader license — separate purchase, separate key
Neodynamic.SDK.BarcodeReader.BarcodeReader.LicenseOwner = "Company";
Neodynamic.SDK.BarcodeReader.BarcodeReader.LicenseKey = "READ-KEY";
// Neodynamic: two products, two license configurations
using Neodynamic.SDK.Barcode;
using Neodynamic.SDK.BarcodeReader;

// Generation license (Barcode Professional SDK)
BarcodeProfessional.LicenseOwner = "Company";
BarcodeProfessional.LicenseKey = "GEN-KEY";

// Reader license — separate purchase, separate key
Neodynamic.SDK.BarcodeReader.BarcodeReader.LicenseOwner = "Company";
Neodynamic.SDK.BarcodeReader.BarcodeReader.LicenseKey = "READ-KEY";
Imports Neodynamic.SDK.Barcode
Imports Neodynamic.SDK.BarcodeReader

' Neodynamic: two products, two license configurations

' Generation license (Barcode Professional SDK)
BarcodeProfessional.LicenseOwner = "Company"
BarcodeProfessional.LicenseKey = "GEN-KEY"

' Reader license — separate purchase, separate key
Neodynamic.SDK.BarcodeReader.BarcodeReader.LicenseOwner = "Company"
Neodynamic.SDK.BarcodeReader.BarcodeReader.LicenseKey = "READ-KEY"
$vbLabelText   $csharpLabel

Bu desen, her çevre boyunca — geliştirme, aşama ve üretim — tekrarlar ve her iki ürün de yükseltildiğinde veya yenilendiğinde sürdürülmelidir.

IronBarcode Anlama

IronBarcode, Iron Software tarafından geliştirilen ve tüm barkod işlemlerini kapsayan tek bir NuGet paketi altında tek bir lisans ile barkod oluşturma ve okuma sağlayan ticari bir .NET barkod kütüphanesidir. Kütüphane, statik bir API modeli kullanır: oluşturma BarcodeWriter.CreateBarcode() ve okuma BarcodeReader.Read() üzerinden gerçekleştirilir. Her iki yöntem de format-spesifik kod yolları gerektirmeksizin tüm desteklenen simgolojilerde çalışır.

IronBarcode, System.Drawing bağımlılığı olmadan inşa edilmiştir, bu, platforma özgü yapılandırma gerektirmeden Linux, macOS ve Docker konteynerlerinde dağıtılabilir hale getirir. Kütüphane, görüntü dosyaları, görüntü akışları ve PDF belgelerinden doğal olarak barkod okur, PDF kaynakları için ayrı bir görüntü çıkarım adımı gerektirmez.

IronBarcode'un ana özellikleri:

  • Üretim ve okuma için tek paket: Bir NuGet paketi, bir lisans anahtarı ve bir yapılandırma bloğu tüm barkod işlemlerini kapsar.
  • Birleştirilmiş 1D ve 2D desteği: Aynı API, Code 128, EAN-13, QR Code, DataMatrix, PDF417 ve Aztec dahil 50'den fazla sembologyayı okur ve üretir.
  • Statik fluent API: BarcodeWriter.CreateBarcode(), zincirlenebilir bir sonuç döndürür; BarcodeReader.Read(), dosya yolları, akışlar ve PDF belgelerini kabul eder.
  • Otomatik format algılama: Okuyucu, beklenen formatı belirlemek zorunda kalmadan görüntü içeriğinden simgolojiyi tanımlar.
  • System.Drawing bağımlılığı yok: Linux ve konteynerlerde çapraz-platform dağıtımı, ek yerel kütüphane yapılandırması olmadan çalışır.
  • Yerel PDF okuma: PDF belgelerine gömülü barkodlar doğrudan okunur ve barkod değerlerinin yanında sayfa numarası meta verileri döndürülür.
  • Asenkron ve toplu işlem: BarcodeReader.ReadAsync() ve çok sayfalı toplu işlemler, yüksek geçişli sunucu iş yüklerini destekler.

Özellik Karşılaştırması

Aşağıdaki tablo Neodynamic ürünleri ile IronBarcode arasındaki en üst düzey farklılıkları özetler:

Özellik Neodynamic Barcode Professional Neodynamic Barkod Okuyucu IronBarcode
Barkod oluşturma Evet Hayır Evet
1D barkod okuma Hayır Evet Evet
2D barkod okuma Hayır Hayır Evet
Gerekli ürünler 1 (sadece üretim) 1 (sadece okuma) 1 (her ikisi)
Lisans anahtarları gerekli Satın alınan ürün başına 1 Satın alınan ürün başına 1 Toplam 1
Yerel PDF barkod okuma Hayır Hayır Evet
System.Drawing bağımlılığı Sürüm bazlı Evet Hayır

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

Özellik Neodynamic Barcode Professional Neodynamic Barkod Okuyucu IronBarcode
Üretim
Kod 128 üretimi Evet Yok Evet
EAN-13 / UPC-A oluşturma Evet Yok Evet
Code 39 üretimi Evet Yok Evet
QR Kod oluşturma Evet Yok Evet
DataMatrix oluşturma Evet Yok Evet
PDF417 üretimi Evet Yok Evet
Aztec üretimi Evet Yok Evet
Okuma
Code 128 okuma Yok Evet Evet
EAN-13 / UPC-A okuma Yok Evet Evet
Code 39 okuma Yok Evet Evet
Codabar okuma Yok Evet Evet
QR Kodu okuma Yok Hayır Evet
DataMatrix okuma Yok Hayır Evet
PDF417 okuma Yok Hayır Evet
Aztec okuma Yok Hayır Evet
Otomatik format algılama Yok Hayır Evet
Giriş Kaynakları
Görüntü dosya girişi Evet Evet Evet
PDF belge girdisi Hayır Hayır Evet
Akış girişi Evet Evet Evet
Platform ve Lisanslama
System.Drawing bağımlılığı Sürüm bazlı Evet Hayır
Linux / Docker desteği Evet (.NET Standard sürümü) Hayır Evet
.NET Standard 2.0 Evet (.NET Standard sürümü) Hayır Evet
.NET 8 / .NET 9 Evet (.NET Standard sürümü) Hayır Evet
NuGet paketleri gerekli Ürün başına 1 Ürün başına 1 Toplam 1
Lisans anahtarları gerekli Ürün başına 1 Ürün başına 1 Toplam 1

Okuma Formatı Desteği

İki Neodynamic SDK'sı ile IronBarcode arasındaki okuma formatı sınırı, bu karşılaştırmada en önemli teknik farktır.

Neodynamic Barkod Okuyucu Yaklaşımı

Neodynamic Barcode Reader sadece lineer barkodları destekler. Okuyucuya bir 2D barkod gönderildiğinde, SDK boş veya null sonuç seti döndürür. Hiçbir istisna fırlatılmaz ve ne olduğuna dair bir hata mesajı gösterilmez. Bu SDK ile çalışan ekipler, genellikle QR kodu görüntülerine karşı okuyucuyu çağıran kodu dağıttıktan ve sonuç kümesinin daima boş olduğunu gözlemledikten sonra bu sınırlamayı keşfeder.

Neodynamic Reader kullanan kod tabanlarında yaygın bir savunma yöntemi, 2D bir format beklendiğinde bir istisna fırlatan açık bir kontrol yapısıdır:

using Neodynamic.SDK.BarcodeReader;
using System.Drawing;

public string ReadQrCode(string imagePath)
{
    using var bitmap = new Bitmap(imagePath);
    var reader = new BarcodeReader();
    var results = reader.Read(bitmap);

    // Results will be null or empty — QR codes are not recognised by this SDK
    if (results == null || !results.Any())
    {
        throw new NotSupportedException(
            "Neodynamic Barcode Reader does not support QR codes");
    }

    return results.First().Value;
}
using Neodynamic.SDK.BarcodeReader;
using System.Drawing;

public string ReadQrCode(string imagePath)
{
    using var bitmap = new Bitmap(imagePath);
    var reader = new BarcodeReader();
    var results = reader.Read(bitmap);

    // Results will be null or empty — QR codes are not recognised by this SDK
    if (results == null || !results.Any())
    {
        throw new NotSupportedException(
            "Neodynamic Barcode Reader does not support QR codes");
    }

    return results.First().Value;
}
Imports Neodynamic.SDK.BarcodeReader
Imports System.Drawing

Public Function ReadQrCode(imagePath As String) As String
    Using bitmap As New Bitmap(imagePath)
        Dim reader As New BarcodeReader()
        Dim results = reader.Read(bitmap)

        ' Results will be null or empty — QR codes are not recognised by this SDK
        If results Is Nothing OrElse Not results.Any() Then
            Throw New NotSupportedException("Neodynamic Barcode Reader does not support QR codes")
        End If

        Return results.First().Value
    End Using
End Function
$vbLabelText   $csharpLabel

Bu yöntem, Neodynamic Reader SDK ile yalnız başına tamamlanamaz. NotSupportedException bir geçici çözüm değildir - okuyucunun 2D girdi için gerçek yetenek sınırını yansıtır.

IronBarcode Yaklaşımı

IronBarcode, desteklenen tüm sembojileri aynı BarcodeReader.Read() çağrısı ile okur. Format, görüntü içeriğinden otomatik olarak algılanır. Bir QR kodu, bir Code 128 ve bir DataMatrix barkodu hepsinde aynı çağrı kodunu kullanır:

using IronBarCode;

public string ReadQrCode(string imagePath)
{
    // QR codes, DataMatrix, PDF417 — all handled automatically
    var result = BarcodeReader.Read(imagePath).FirstOrDefault();
    return result?.Value;
}
using IronBarCode;

public string ReadQrCode(string imagePath)
{
    // QR codes, DataMatrix, PDF417 — all handled automatically
    var result = BarcodeReader.Read(imagePath).FirstOrDefault();
    return result?.Value;
}
Imports IronBarCode

Public Function ReadQrCode(imagePath As String) As String
    ' QR codes, DataMatrix, PDF417 — all handled automatically
    Dim result = BarcodeReader.Read(imagePath).FirstOrDefault()
    Return If(result?.Value, Nothing)
End Function
$vbLabelText   $csharpLabel

Çağırıcı, beklenen bir format belirtmez.IronBarcode simgolojiyi tanır ve değeri döndürür. Çoklu barkod algılaması ve görüntü ön işleme dahil olmak üzere görüntü okuma seçeneklerinin tam detayları için bkz. görüntülerden barkod okuma rehberi.

Barkod Oluşturma

Hem Neodynamic Barcode Professional hem de IronBarcode, 1D ve 2D barkodları üretebilir. Fark, çıktı yeteneğinden ziyade API stilinde ve bağımlılık izinde yatar.

Neodynamic Barcode Professional Yaklaşımı

Neodynamic'in jenerasyon API'si instance tabanlıdır. Bir BarcodeProfessional nesnesi oluşturulur, özellikleri tek tek atanır ve GetBarcodeImage(), bir System.Drawing.Image döndürmek için çağrılır. Resim daha sonra System.Drawing.Imaging.ImageFormat numaralandırması kullanılarak kaydedilir:

using Neodynamic.SDK.Barcode;

// Configure license first
BarcodeProfessional.LicenseOwner = "Your Company";
BarcodeProfessional.LicenseKey = "YOUR-KEY";

// Build the barcode through property assignment
var barcode = new BarcodeProfessional();
barcode.Code = "12345678";
barcode.Symbology = Symbology.Code128;
barcode.BarcodeUnit = BarcodeUnit.Pixel;

// Get image and save via System.Drawing
System.Drawing.Image image = barcode.GetBarcodeImage();
image.Save("output.png", System.Drawing.Imaging.ImageFormat.Png);
using Neodynamic.SDK.Barcode;

// Configure license first
BarcodeProfessional.LicenseOwner = "Your Company";
BarcodeProfessional.LicenseKey = "YOUR-KEY";

// Build the barcode through property assignment
var barcode = new BarcodeProfessional();
barcode.Code = "12345678";
barcode.Symbology = Symbology.Code128;
barcode.BarcodeUnit = BarcodeUnit.Pixel;

// Get image and save via System.Drawing
System.Drawing.Image image = barcode.GetBarcodeImage();
image.Save("output.png", System.Drawing.Imaging.ImageFormat.Png);
Imports Neodynamic.SDK.Barcode
Imports System.Drawing

' Configure license first
BarcodeProfessional.LicenseOwner = "Your Company"
BarcodeProfessional.LicenseKey = "YOUR-KEY"

' Build the barcode through property assignment
Dim barcode As New BarcodeProfessional()
barcode.Code = "12345678"
barcode.Symbology = Symbology.Code128
barcode.BarcodeUnit = BarcodeUnit.Pixel

' Get image and save via System.Drawing
Dim image As Image = barcode.GetBarcodeImage()
image.Save("output.png", Imaging.ImageFormat.Png)
$vbLabelText   $csharpLabel

SDK, DPI kontrolü, metin hizalaması, renk ayarları ve sessiz alan boyutlandırması dahil olmak üzere yasalar izin verdiği şekilde özelleştirme seçenekleri sunar. Bunlar, hassas fiziksel boyutların önemli olduğu baskı iş akışları için faydalıdır. Jenerasyon yeteneği kendisi tamdır; Görme taraması gerektiren kısıtlamalar, jenerasyon tarafında değil, okuma tarafındadır.

IronBarcode Yaklaşımı

IronBarcode, akıcı statik bir yaklaşım kullanır. Kodlama ve veriler BarcodeWriter.CreateBarcode() birer parametre olarak geçirilir ve çıktı formatı döndürülen nesne üzerinde bir yöntem adı olarak ifade edilir. Herhangi bir System.Drawing 'e alım gereksinimi yoktur:

using IronBarCode;

BarcodeWriter.CreateBarcode("12345678", BarcodeEncoding.Code128)
    .SaveAsPng("output.png");
using IronBarCode;

BarcodeWriter.CreateBarcode("12345678", BarcodeEncoding.Code128)
    .SaveAsPng("output.png");
Imports IronBarCode

BarcodeWriter.CreateBarcode("12345678", BarcodeEncoding.Code128) _
    .SaveAsPng("output.png")
$vbLabelText   $csharpLabel

2D barkod oluşturma için, adanmış QRCodeWriter sınıfı QR kodlarına özgü ek seçenekler sunar:

using IronBarCode;

QRCodeWriter.CreateQrCode("https://example.com", 500, QRCodeWriter.QrErrorCorrectionLevel.Highest)
    .SaveAsPng("qrcode.png");
using IronBarCode;

QRCodeWriter.CreateQrCode("https://example.com", 500, QRCodeWriter.QrErrorCorrectionLevel.Highest)
    .SaveAsPng("qrcode.png");
Imports IronBarCode

QRCodeWriter.CreateQrCode("https://example.com", 500, QRCodeWriter.QrErrorCorrectionLevel.Highest) _
    .SaveAsPng("qrcode.png")
$vbLabelText   $csharpLabel

Boyutlandırma ve açıklama seçenekleri ile 1D sembollerinin nasıl üretileceği hakkında rehberlik için 1D barkodlar oluşturma rehberi'ne bakın. DataMatrix ve PDF417 dahil olmak üzere 2D barkod oluşturma için 2D barkodlar oluşturma rehberi'ne bakın.

Lisans ve Ürün Yapısı

Lisanslama modeli, hem üretim hem de okuma gerektiren sistemler kuran ekipler için iki seçenek arasındaki en pratik farklardan birini temsil eder.

Neodynamic Yaklaşımı

Neodynamic'in barkod yeteneği iki ayrı lisanslı ürüne bölünmüştür. Barcode Professional SDK üretimi kapsar ve Barcode Reader SDK okuma için kapsam sağlar. Her ürün ayrı satın alım gerektirir ve ayrı bir lisans anahtarı taşır. Her iki ürünü de satın alan bir ekip, iki LicenseOwner / LicenseKey yapılandırma bloğunu korumalı, iki ayrı yenileme tarihini takip etmeli ve sorunlar ortaya çıktığında iki ayrı destek kanalıyla ilgilenmelidir.

Barkod Profesyonel SDK, Temel sürümde tek geliştirici lisansı için yaklaşık 352 USD'den ve Ultimate sürümde yaklaşık 705 USD'den fiyatlandırılmıştır (geliştirici lisansları ComponentSource üzerinden). Barkod Okuyucu SDK ayrı bir maliyet taşır ve eski fiyatlandırma altında sağlanır — ürün hizmet sonu olarak 31 Aralık 2019'da işaretlendi. Bir proje, Neodynamic ürünleri ile herhangi bir fiyatla bu gereksinimi karşılayamayacak olan 2D okuma gerektirir; üçüncü bir kütüphane eklenmelidir. Tek bir birleşik lisansın kapsadığıların tam listesini görmek için IronBarcode desteklenen barkod formatları sayfası'ne bakın.

IronBarcode Yaklaşımı

IronBarcode, tüm barkod işlemlerini – tüm desteklenen sembolojilerde üretim ve okuma – tek bir lisans anahtarı altında kapsayan tek bir ürün olarak satılır. Ayrı bir okuma lisansı yoktur, ayrı bir jeneratör lisansı yoktur ve 2D format desteği için ek maliyet yoktur. Lisans anahtarı uygulama başlangıcında bir kez ayarlanır ve daha fazla yapılandırma gerekmez:

IronBarCode.License.LicenseKey = "YOUR-LICENSE-KEY";
IronBarCode.License.LicenseKey = "YOUR-LICENSE-KEY";
Imports IronBarCode

IronBarCode.License.LicenseKey = "YOUR-LICENSE-KEY"
$vbLabelText   $csharpLabel

IronBarcode Lite, tek bir geliştirici için $749 fiyatla belirlenmiştir ve tam yetenek setini kapsar. Mevcut fiyat düzeyleri ve hacim seçenekleri için IronBarcode lisans sayfası'na bakın.

API Eşleme Başvurusu

Neodynamic API IronBarcode Eşdeğeri Notlar
BarcodeProfessional.LicenseOwner = "..." IronBarCode.License.LicenseKey = "key" Tek anahtar, sahibe + anahtar çiftini değiştirir
BarcodeProfessional.LicenseKey = "..." (part of single key above) Ayrı bir sahip alanı yoktur
Neodynamic.SDK.BarcodeReader.BarcodeReader.LicenseOwner (removed) Gerekli değil
Neodynamic.SDK.BarcodeReader.BarcodeReader.LicenseKey (removed) Gerekli değil
new BarcodeProfessional() BarcodeWriter.CreateBarcode(data, encoding) Statik yöntem, instance yok
barcode.Code = data CreateBarcode İlk parametresi Yaratılışta geçirilir
barcode.Symbology = Symbology.Code128 BarcodeEncoding.Code128 İkinci parametre
barcode.Symbology = Symbology.QRCode BarcodeEncoding.QRCode Tam döngü desteklenir
barcode.GetBarcodeImage().Save(path, ImageFormat.Png) .SaveAsPng(path) Akıcı, ImageFormat enum yok
new BarcodeReader().Read(bitmap) BarcodeReader.Read(imagePath) Statik yöntem, dosya yolunu kabul eder
result.Value result.Value Aynı özellik adı
QR için throw new NotSupportedException(...) BarcodeReader.Read(imagePath) Standart okuma çağrısı ile değiştir

Takımlar Neodynamic Barcode'dan IronBarcode'ya Geçmeyi Düşündüğünde

QR Kod Okuma Gereksinimleri

Ekipleri Neodynamic'ten IronBarcode'ya yönlendiren en yaygın senaryo, Barcode Professional SDK tarafından üretilen QR kodlarının Barcode Reader SDK tarafından yeniden okunamayacağının keşfedilmesidir. Ürün etiketleme sistemleri, envanter yönetim araçları veya belge takip iş akışları inşa eden ekipler genellikle üretim ve okumayı daha büyük bir sistemin ayrı aşamaları olarak uygular. Üretim önce Barcode Professional kullanılarak inşa edildiğinde, okuma komponenti denendiğinde okuyucu sınırlaması sadece belirgin hale gelir. Bu noktada, proje zaten üretim için Neodynamic'e taahhütte bulunmuştur ve 2D okuma için üçüncü bir kütüphane eklemek sürüm yönetimi karmaşıklığı yaratır ki bu birleşik bir SDK'da yoktur.

Ürün Karmaşıklığı Azaltma

Bazı takımlar belirli bir format boşluğu nedeniyle değil, kavramsal olarak tek bir yetenek olan şey için iki ayrı ürünü sürdürmenin önemsiz bir sürtüşme noktası haline gelmesi nedeniyle taşınma kararı verir. .NET veya Windows güncellemeleri uygulandığında potansiyel uyumsuzluk kaynakları olarak uygulanacak .NET yükseltme sırasında bağımlılık denetimi yapan ekipler, genellikle Neodynamic çift paket düzenlemesini bir basitleştirme fırsatı olarak görür.

PDF Barkod İşleme

İçinde barkodlar bulunan PDF belgelerini işleyen uygulamalar, her iki Neodynamic SDK'nın da aynı anda yetersiz kaldığı bir senaryo temsil eder. Ne üretim SDK'sı ne de okuma SDK'sı bir PDF dosyasını açabilir ve sayfalarından barkod değerleri çıkarabilir. Kargo manifestoları, fatura belgeleri, tıbbi kayıtlar veya barkodların PDF'lerde gömülü olduğu herhangi bir belge iş akışı üzerinde çalışan ekipler, herhangi bir okuma gerçekleşmeden önce bir ara resim çıkarma adımı uygulamak zorundadır. Bu çıkarma adımı ek bir kütüphane gerektirir, bu da projenin, tek bir IronBarcode kurulumunun ortadan kaldıracağı bir sınırlamayı aşmak için zaten üçüncü bir bağımlılık taşıdığı anlamına gelir.

Okuma ve Yazma Üzerinde Format Tutarlılığı

Barkod iş akışlarını ölçek üzerinde işleten ekipler bazen, üretim ve okuma arasında format desteğindeki tutarsızlıklar test ve doğrulama sorunlarına neden olur. Bir sistem bir amaç için QR kodları üretip başka bir amaç için farklı format türlerini okuduğunda, üreticinin desteklediği ile okuyucunun desteklediği arasındaki ayrışma, döngü testi boşlukları oluşturur. Üretim ve okuma aynı kütüphaneyi ve aynı destekli format listesini paylaştığında bir sistemi doğrulamak daha basittir. Üretilen bir barkodun başarıyla geri okunabileceğini doğrulamak, çoklu kütüphane entegrasyon testi yerine, tek bir kütüphane işlemi haline gelir.

Genel Geçiş Dikkat Edilmesi Gereken Hususlar

Çift Paket Kaldırma

Neodynamic'den geçiş yapmak, her iki NuGet paketinin de kaldırılmasını gerektirir: Neodynamic.SDK.Barcode ve Neodynamic.SDK.BarcodeReader. Her iki .csproj dosyasından kaldırılmalı ve her iki karşılık gelen using komutları kaynak dosyalardan kaldırılmalıdır. Her biri için dotnet remove package çalıştırmak yeterlidir; ikisi arasında ek bir temizleme gerektirecek ortak bir bağımlılık yoktur.

Çift Lisans Yapılandırma Temizleme

Her ikisi de BarcodeProfessional ve Neodynamic.SDK.BarcodeReader.BarcodeReader için olan iki lisans yapılandırma bloğu, tek bir IronBarCode.License.LicenseKey ataması ile değiştirilir. Bu atama uygulama başlangıcında bir kez yapılır, genellikle Program.cs veya uygulamanın bağımlılık enjeksiyon açılış yolunda. Geçiş doğrulandıktan sonra Neodynamic lisans anahtarlarını saklayan herhangi bir yapılandırma dosyası veya ortam değişkenleri devre dışı bırakılabilir.

NotSupportedException Kaldırma

Geliştirme sırasında 2D okuma sınırlamasıyla karşılaşan kod tabanları, genellikle QR kodu veya DataMatrix okuma için NotSupportedException fırlatan yer tutucu yöntemler içerir. Bu yöntemler geçici çözümler değildir - yetenek mevcut olmadığı için dürüst kabulleridir. IronBarcode'a geçişten sonra, her bir yöntem gövdesi standart bir BarcodeReader.Read(imagePath) çağrısı ile değiştirilir. Özel bir işleme gerek yoktur; format otomatik olarak tespit edilir.

Ek IronBarcode Yetenekleri

Ana karşılaştırma noktalarının ötesinde, IronBarcode, herhangi bir Neodynamic ürününde bulunmayan yetenekler sağlar:

  • Yerel PDF barkod okuma: BarcodeReader.Read("document.pdf") barkodları doğrudan PDF belgelerinden okur ve barkod değerleri ile birlikte sayfa numara bilgisini döndürür, arada herhangi bir resim çıkarımı gerektirmez.
  • Asenkron toplu işlem: BarcodeReader.ReadAsync(), yüksek hacimli görüntülerin veya belgelerin sunucu tarafı iş yükleriyle eşzamanlı olarak işlenmesi için uygundur.
  • Makine öğrenme hata düzeltme: IronBarcode, doğrulayıcıları kullanılabilir hale getiren standart kod çözücülerden boş sonuç döndürecek zarar görmüş, kısmen gizlenmiş veya düşük çözünürlüklü barkod resimlerinden değerler kurtarmak için ML tabanlı hata düzeltme uygular.
  • Çoklu barkod tespiti: Bir tek BarcodeReader.Read() çağrısı, bir görüntüde bulunabilecek tüm barkodları dönüşümlü olarak döndürür, hem 1D hem de 2D semboji içeren karışık formatlı görüntüler dahil.
  • Barkod damgalama PDF'lere: IronBarcode, mevcut PDF belgelerine doğrudan barkod resimlerini yazabilir, ayrı bir PDF kütüphanesi gerektirmez.
  • Resim işleme seçenekleri: Parlaklık düzeltmesi, döndürme işleme ve gürültü azaltma, zorlu koşullar altında çekilen resimlerde tanıma oranlarını artırmak için okuyucu üzerinde yapılandırılabilir.

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

IronBarcode, .NET Standard 2.0, .NET Framework 4.6.2 ve üstü, .NET Core 3.1 ve .NET 8 ve .NET 9 dahil tüm güncel .NET sürümlerini destekler. Kütüphane, System.Drawing bağımlılığına sahip olmadığı için, Linux ve Docker konteynerlerinde değişiklik yapmadan çalışır.Neodynamic Barkod Okuyucu SDK yalnızca .NET Framework 2.0/3.x/4.x sürümlerini hedeflemektedir — NuGet paketi Temmuz 2012'den bu yana güncellenmemiştir ve ürün 31 Aralık 2019'da hizmet ömrünün sonu olarak işaretlenmiştir, dolayısıyla .NET Core, .NET 5+, Linux veya Docker desteklememektedir. Barcode Professional SDK çeşitli sürümlerle gelir; .NET Standard sürümü SkiaSharp kullanır ve .NET Core / .NET 5+ üzerinde çalışırken, .NET Windows sürümü System.Drawing bağımlılığını korur. IronBarcode, .NET yayın ritmine uygun olarak güncellemeler almaktadır.

Sonuç

Neodynamic Barcode Professional SDK veNeodynamic Barkod Okuyucu SDK birlikte, jenerasyon ve okumanın ayrı ticari tekliflerle ayrı yetenek sınırlarına sahip ayrı ürün modellerini temsil eder. Üretici QR Code, DataMatrix, PDF417 ve Aztec'i destekler. Okuyucu desteklemez. Bu asimetri küçük bir eksiklik değildir — iki ürün, 2D barkod okuma gerektiren hiçbir uygulama için tam bir barkod iş akışı oluşturamaz ve mobil ödemeler, farmasötik izleme, kargo lojistik ve belge işleme için en yaygın kullanılan formatlar, okuyucunun yetenek setinde yoktur.

Neodynamic Barcode Professional, yalnızca jenerasyon gereksinimi olduğunda meşru bir seçimdir. SDK, geniş bir semboloji yelpazesinde yüksek kaliteli çıktı üretir, DPI kontrolü ve baskıya özgü özelleştirme destekler ve daha geniş Neodynamic ThermalLabel ekosistemi ile entegrasyon sağlar. Yanlızca 1D okuma gereksinimi olan Windows odaklı dağıtımlar yapmaya ihtiyacı olan ekipler, format sınırlarına maruz kalmadan Barcode Reader SDK'yı da kullanabilir. Bu dar operasyonel kapsamda – yalnızca jenerasyon, veya Windows üzerinde yalnızca 1D okuma - Neodynamic'in ürünleri tarif ettikleri şeyi sunar.

IronBarcode, bir projenin hem üretim hem de okumayı gerektirdiği, iş akışının herhangi bir bölümünde 2D formatlar olduğu, PDF belgelerinin barkod girişi kaynağı olduğu veya bağımlılık yönetimi için tek paketlik bir mimarinin tercih edildiği durumlarda uygun seçimdir. Birleşik lisans modeli, System.Drawing bağımlılığının bulunmaması ve tüm desteklenen semboji üzerinden otomatik format algılama, onu çapraz platform uygulamaları, bulut dağıtımları ve çeşitli kaynaklardan gelen farklı barkod formatlarını işleyen sistemler için uygun hale getirir.

Nihayetinde iki seçim arasındaki fark, Neodynamic'in okuyucusundaki format sınırının ilgili projeyi etkileyip etkilemediği sorusuna iner. Çalışma akışları yalnızca Windows üzerinde belirli 1D barkod jenerasyonu ve okunmasına sınırlı olan ekipler için, o sınırla asla karşılaşılmayabilir. Aynı sistemin hem üretim hem de okuma aşamalarında QR kodlarına ihtiyacı olan ekiplerde, sınır Neodynamic ürün ailesinde aşılmazdır ve seçilen ürün ne olursa olsun, farklı bir kütüphane gereklidir.

Sıkça Sorulan Sorular

Neodynamic Barcode Professional Nedir?

Neodynamic Barcode Professional, C# uygulamalarında barkod oluşturma ve okuma için bir .NET barkod kütüphanesidir. .NET projeleri için bir barkod çözümü seçerken geliştiricilerin değerlendirdiği birkaç alternatiften biridir.

Neodynamic Barcode Professional ve IronBarcode arasındaki temel farklar nelerdir?

IronBarcode, örnek yönetimi gerektirmeyen statik, durumsuz bir API kullanırken, Neodynamic Barcode Professional genellikle kullanım öncesi örnek oluşturma ve yapılandırma gerektirir. IronBarcode ayrıca yerel PDF desteği, otomatik format tanıma ve tüm ortamlarda tek anahtarlı lisanslama sunar.

IronBarcode, Neodynamic Barcode Professional'den daha mı kolay lisanslanır?

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, Neodynamic Barcode Professional'ın 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, toplu işlem konusunda Neodynamic Barcode Professional'a kıyasla nasıl bir performans sergiliyor?

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.

Neodynamic'in aksine IronBarcode'u satın almadan önce değerlendirebilir miyim?

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.

Neodynamic Barcode Professional ile 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.

Neodynamic Barcode Professional'dan IronBarcode'a geçiş kolay mı?

Neodynamic Barcode Professional'dan IronBarcode'a geçiş, esas olarak örnek tabanlı API çağrılarını IronBarcode'un statik metotları ile değiştirmeyi, lisanslama şablonunu kaldırmayı ve sonuç özelliği adlarını güncellemeyi içerir. Çoğu geçiş, kod eklemek yerine kodu azaltmayı 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.

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

Daha Fazla Oku

Iron Destek Ekibi

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