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

Scandit SDK vs IronBarcode: C# Barkod Kütüphanesi Karşılaştırması

Scandit SDK vs IronBarcode: Kamera Boru Hattı Tarama vs Dosya Tabanlı Belge İşleme

Barkodları okumaya Scandit ile başlamak için bir DataCaptureContext yapılandırırsınız, bir BarcodeCaptureSettings oluşturursunuz, sembolojileri açıkça etkinleştirirsiniz, bir kamera alırsınız, kare kaynağı olarak ayarlarsınız, kamerayı Açık duruma getirirsiniz ve yakalamayı etkinleştirirsiniz. Fiyatlandırma yalnızca satışlarla iletişim kurularak yapılır, yayınlanmış bir liste fiyatı yoktur.

Bu kombinasyon — öncelikli bir kamera boru hattı ve bir iletişim satışları fiyatlandırma modeli — Scandit'in hangi .NET senaryolarına uyup uymadığını şekillendirir ve hangi senaryolara uymadığını belirler. Sunucu tarafı belge işleme için, yüklenen dosyalardan barkod okuyan birASP.NET CoreAPI'si veya gönderim PDFları işleyen bir Azure Fonksiyonu, kamera boru hattı varsayımları kabiliyet yerine sürtünme yaratır. Bu karşılaştırma, Scandit'in mimarisinin nereden geldiğini, IronBarcode'un nerede daha uygun olduğunu ve iki kütüphanenin pratikte nasıl farklı olduğunu inceler.

Scandit SDK'yı Anlamak

Scandit SDK, mobil ve uç bilgisayar ortamları için geliştirilen ticari bir kurumsal barkod tarama platformudur. Kütüphane, iOS, Android ve MAUI cihazlarında gerçek zamanlı kamera taramayı desteklemek için tasarlanmıştır ve artırılmış gerçeklik kaplamaları, çoklu barkod eşzamanlı algılama ve kimlik belgesi tarama gibi özelleştirilmiş ürün hatlarını kapsar. Scandit'in birincil dağıtım bağlamı, bir fiziksel kamera ve canlı bir kullanıcının her ikisinin de bulunduğu mobil saha çalışanları, depo operasyonları ve perakende etkileşim noktası senaryolarıdır.

Kütüphanenin mimarisi, birleştirilmiş durumsal sistem olarak kamera oturumunu, çerçeve analizi ayarlarını ve barkod yakalama yapılandırmasını koordine eden DataCaptureContext hattı etrafında organize edilmiştir. Çünkü Scandit platformundaki her ürün hattı — SparkScan, MatrixScan, Kimlik Taraması, AR Üstü Kaplamalar ve Ayrıştırıcı — ayrı olarak lisanslanmış ve fiyatlandırılmıştır ve bir satış iletişim modeliyle fiyatlandırılmıştır, herhangi bir Scandit entegrasyonunun toplam maliyeti ancak bir satış görüşmesinden sonra belirlenebilir.

Scandit SDK'nın ana mimari özelliklerinden bazıları şunlardır:

  • Kamera-İlk Tasarım: SDK, fiziksel bir kamera ve çalışan bir çerçeve kaynağı varsayar. Tüm barkod okuma, statik dosyalar veya akışlar yerine canlı video çerçevelerinde gerçekleştirilir.
  • Zorunlu DataCaptureContext Başlatma: Her entegrasyon, herhangi bir barkod işleme başlamadan önce DataCaptureContext oluşturup bir kamera örneğine bağlayarak başlar.
  • Açık Semboloji Deklarasyonu: Yakalama oturumu başlamadan önce barkod formatları EnableSymbologies kullanılarak bireysel olarak etkinleştirilmelidir. Otomatik algılama mevcut değildir.
  • Olay Tabanlı Sonuç Teslimi: Barkod sonuçları, bir yöntem çağrısından eşzamanlı olarak döndürülmek yerine olay geri çağrıları (BarcodeScanned) üzerinden asenkron olarak teslim edilir.
  • Modüler Ürün Mimarisi: SparkScan, MatrixScan, Kimlik Taraması, AR Üstü Kaplamalar ve Ayrıştırıcı, ayrı fiyatlandırılmış özelliklerdir ve bireysel sözleşme satır öğeleri gerektirir.
  • Teklif Tabanlı Fiyatlandırma: Scandit'in fiyatlandırma sayfasına göre, ücretli sürümler sürüm, cihazlar, tarama hacmi ve sözleşme süresine göre tekliflendirilir; Ücretsiz bir deneme sürümü ve Topluluk Sürümü mevcuttur.
  • Mobil-İlkPlatformHedefleme: Birincil destek iOS ve Android içindir. Sunucu tarafı, Docker ve sunucusuz dağıtımlar kütüphanenin tasarım kapsamı dışındadır.

DataCaptureContext Hattı

Her Scandit entegrasyonu, tek bir barkod okunmadan önce bu kamera başlatma dizisiyle başlar:

// Scandit SDK: full camera pipeline setup
// NuGet: Scandit.DataCapture.Core.Maui, Scandit.DataCapture.Barcode.Maui

var dataCaptureContext = DataCaptureContext.ForLicenseKey("YOUR-SCANDIT-LICENSE");

var settings = BarcodeCaptureSettings.Create();
settings.EnableSymbologies(new HashSet<Symbology>
{
    Symbology.Ean13Upca,
    Symbology.Ean8,
    Symbology.Code128,
    Symbology.QrCode
});

var barcodeCapture = BarcodeCapture.Create(dataCaptureContext, settings);
var camera = Camera.GetDefaultCamera();
await dataCaptureContext.SetFrameSourceAsync(camera);
await camera.SwitchToDesiredStateAsync(FrameSourceState.On);
barcodeCapture.IsEnabled = true;
// Scandit SDK: full camera pipeline setup
// NuGet: Scandit.DataCapture.Core.Maui, Scandit.DataCapture.Barcode.Maui

var dataCaptureContext = DataCaptureContext.ForLicenseKey("YOUR-SCANDIT-LICENSE");

var settings = BarcodeCaptureSettings.Create();
settings.EnableSymbologies(new HashSet<Symbology>
{
    Symbology.Ean13Upca,
    Symbology.Ean8,
    Symbology.Code128,
    Symbology.QrCode
});

var barcodeCapture = BarcodeCapture.Create(dataCaptureContext, settings);
var camera = Camera.GetDefaultCamera();
await dataCaptureContext.SetFrameSourceAsync(camera);
await camera.SwitchToDesiredStateAsync(FrameSourceState.On);
barcodeCapture.IsEnabled = true;
Imports Scandit.DataCapture.Core.Maui
Imports Scandit.DataCapture.Barcode.Maui

' Scandit SDK: full camera pipeline setup
' NuGet: Scandit.DataCapture.Core.Maui, Scandit.DataCapture.Barcode.Maui

Dim dataCaptureContext = DataCaptureContext.ForLicenseKey("YOUR-SCANDIT-LICENSE")

Dim settings = BarcodeCaptureSettings.Create()
settings.EnableSymbologies(New HashSet(Of Symbology) From {
    Symbology.Ean13Upca,
    Symbology.Ean8,
    Symbology.Code128,
    Symbology.QrCode
})

Dim barcodeCapture = BarcodeCapture.Create(dataCaptureContext, settings)
Dim camera = Camera.GetDefaultCamera()
Await dataCaptureContext.SetFrameSourceAsync(camera)
Await camera.SwitchToDesiredStateAsync(FrameSourceState.On)
barcodeCapture.IsEnabled = True
$vbLabelText   $csharpLabel

Bu bloktaki her satır, kamera altyapısını yapılandırır. API, bu giriş noktasında bir dosya yolu, PDF veya akış argümanını ortaya çıkarmaz — barkod çalışması başlamadan önce çalışan bir kamera varsayar.

IronBarcode Anlama

IronBarcode, barkod okuma ve üretimi için ticari bir .NET kütüphanesidir. Kütüphane, barkod verisinin dosyalar, akışlar, bayt dizileri veya PDF belgeleri içine gömülü içerik olarak geldiği sunucu tarafı, masaüstü ve bulut ortamları için tasarlanmıştır. API, durum-değişiksizdir — başlatılması gereken oturum nesnesi, kamera hattı ve okumalar arasında yönetilmesi gereken kalıcı bir bağlam yoktur. BarcodeReader.Read için tek bir statik çağrı, bir dosya yolu, akış, bayt dizisi veya PDF kabul eder ve sonuçların bir koleksiyonunu döndürür.

IronBarcode, 50'den fazla 1D ve 2D barkod formatında tüm okuma ve oluşturma yeteneklerini içeren tek bir NuGet paketi olarak sunulur. Kütüphane, otomatik format algılamayı destekler, yani çağrıcının aranacak sematolojileri belirtmesi gerekmez. Fiyatlandırma, bir satış konuşması gerektirmeden ürün sayfasında yayımlanmıştır.

IronBarcode'un ana özellikleri şunlardır:

  • Durum-Değişiksiz Dosya Tabanlı API: Okuma, bir dosya yolu, akış, bayt dizisi veya PDF belgesini kabul eden tek bir metod çağrısıyla başlar.
  • Otomatik Format Algılama: Desteklenen tüm barkod formatları otomatik olarak algılanır. Açık sematoloji yapılandırması, bir ön koşul değil, isteğe bağlı bir performans optimizasyonudur.
  • Yerel PDF Desteği: Çok sayfalı PDF belgeleri doğrudan okunur ve sonuçlar sayfa numarasıyla indekslenir. Dış bir PDF işleme kütüphanesi gerekli değildir.
  • Sunucu ve Bulut Hazırlığı: ASP.NET Core, Azure Fonksiyonları, Linux üzerine Docker ve kapsüllenmiş dağıtımları mimari geçici çözümler olmadan destekler.
  • Eşzamanlı İşleme: Durumsuz API doğası gereği threaded-safe'dir ve yüksek verimli toplu iş senaryoları için Parallel.ForEach ve asenkron örüntüleri sağlar.
  • Barkod Üretimi: Tüm desteklenen sematolojilerde görüntü ve PDF formatında barkod üretir. Üretim ve okuma aynı paketin içindedir.
  • Yayımlanmış Süresiz Lisanslama: Fiyatlar, tek seferlik süresiz satın alma olarak açıklanır ve tarama başına veya cihaz başına ücret yoktur.

Özellik Karşılaştırması

Aşağıdaki tablo,Scandit SDKve IronBarcode arasındaki temel farklılıkları vurgular:

Özellik Scandit SDK IronBarcode
Birincil Kullanım Durumu Mobilde gerçek zamanlı kamera tarama Sunucuda dosya, akış ve PDF barkod okuma
Kamera Gereklidir Evet Hayır
PDF Barkod Çıkartma Desteklenmiyor Yerel destek
Fiyatlandırma Modeli Ürün başına, satışla iletişim Yayımlanmış süresiz aşamalar
Sunucu Tarafı İşleme Belgelendirilmiş bir hedef değil Birincil dağıtım hedefi
Sematoloji Yapılandırması Tarama öncesinde zorunludur İsteğe bağlı; auto-detection is default
Barkod Üretimi Desteklenmiyor Tek pakette dahil edilmiştir

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

Özellik Scandit SDK IronBarcode
Okuma
Görüntü dosyası okuma Belgelendirilmiş bir hedef değil Birincil odak
PDF barkod çıkarımı Desteklenmiyor Yerel çok sayfalı
Akış / bayt dizisi giriş Desteklenmiyor Evet
Otomatik format algılama Hayır (belirtmek gerekir) Evet
1D biçimler (Kod 128, EAN, UPC, vb.) Kapsamlı (Scandit semboloji belgelerine göre) 50+
2D biçimler (QR, DataMatrix, Aztec, PDF417) Evet Evet
Belge başına çoklu barkod algılama MatrixScan (ayrı ürün) Evet (tek paket)
Hasarlı barkod kurtarma Belgelendirilmiş bir dosya işleme özelliği değil Evet (ML destekli)
Üretim
Barkod oluşturma Desteklenmiyor Evet
Görüntü dosyasına çıktı Desteklenmiyor Evet
PDF'ye çıktı Desteklenmiyor Evet
Mimari
Başlatma modeli Durumlu kamera hattı Durum-değişiksiz metod çağrısı
Sonuç teslimi Olay geri çağrısı (async) Senkron dönüş değeri
Kamera bağımlılığı Gereklidir Uygulanamaz
Sematoloji ön beyanı Gereklidir Opsiyonel
Platform
iOS / Android (MAUI) Birincil hedef Programatik kullanım
ASP.NET Core Belgelendirilmiş bir hedef değil Tam destek
Azure Fonksiyonları / sunucusuz Pratik değil Tam destek
Docker / Linux sunucu Desteklenmiyor Tam destek
Konsol / arka plan hizmeti Belgelendirilmiş bir hedef değil Tam destek
Lisanslama
Fiyat şeffaflığı Satışla iletişim gereklidir Web sitesinde yayınlanmış
Lisans türü Yıllık (ürün başına) Süresiz tek seferlik
Tarama başına veya cihaz başına ücretler Mümkün (fiyatlandırma değişkenleri olarak listelenmiş) Hayır
Tüm özelliklere tek paket erişimi Hayır (modüler ürünler) Evet

Barkod Okuma Mimarisi

Bu iki kütüphane arasındaki en önemli yapısal fark, girdiler ve çıktı arasındaki ilişkiyi nasıl modelledikleridir.

Scandit SDK Yaklaşımı

Scandit kameranın çerçevelerini gerçek zamanlı işler. DataCaptureContext, aktif bir kamera oturumunu barındırır ve BarcodeCapture, gelen her çerçevedeki barkodları dinler. Barkod sonuçları, BarcodeScanned olayı aracılığıyla asenkron olarak teslim edilir. Scandit ile statik bir görüntü dosyası okuma, bir dosyayı çerçeve kaynağı olarak ele almak için kamera hattını uyarlamayı gerektirir — doğal olarak desteklenmeyen ve mühendislik çabası gerektiren bir iş akışı.

// Scandit SDK: event-callback result delivery
barcodeCapture.BarcodeScanned += (sender, args) =>
{
    foreach (var barcode in args.Session.NewlyRecognizedBarcodes)
    {
        string value = barcode.Data;
        string symbology = barcode.Symbology.ToString();
        ProcessBarcode(value, symbology);
    }
};
// Scandit SDK: event-callback result delivery
barcodeCapture.BarcodeScanned += (sender, args) =>
{
    foreach (var barcode in args.Session.NewlyRecognizedBarcodes)
    {
        string value = barcode.Data;
        string symbology = barcode.Symbology.ToString();
        ProcessBarcode(value, symbology);
    }
};
Imports System

' Scandit SDK: event-callback result delivery
AddHandler barcodeCapture.BarcodeScanned, Sub(sender, args)
    For Each barcode In args.Session.NewlyRecognizedBarcodes
        Dim value As String = barcode.Data
        Dim symbology As String = barcode.Symbology.ToString()
        ProcessBarcode(value, symbology)
    Next
End Sub
$vbLabelText   $csharpLabel

Olay odaklı model, barkodların bir video akışında öngörülemez bir şekilde geldiği sürekli canlı tarama için uygundur. Dosya tabanlı işlem için, model gereksiz karmaşıklık tanıtır: girdi bilinen bir tamamlama sınırına sahiptir, kamera oturumu doğal olarak sona ermez ve asenkron geri çağırma deseni, istek-yanıt sunucu mimarileriyle iyi bir şekilde bir araya gelmez.

IronBarcode Yaklaşımı

IronBarcode, her girdiyi belirlenebilir sonuçla ayrı bir belge olarak ele alır. BarcodeReader.Read yöntemi bir dosya yolu, akış veya bayt dizisini kabul eder, tüm algılamayı eşzamanlı yürütür ve sonuçların bir koleksiyonunu döndürür. Açılması gereken bir oturum, yapılandırılacak bir çerçeve kaynağı ve abone olunacak bir olay yoktur.

// IronBarcode: direct file reading
// NuGet: dotnet add package IronBarcode

IronBarCode.License.LicenseKey = "YOUR-LICENSE-KEY";
var results = BarcodeReader.Read("barcode.png");
foreach (var result in results)
    Console.WriteLine($"{result.Value} ({result.Format})");
// IronBarcode: direct file reading
// NuGet: dotnet add package IronBarcode

IronBarCode.License.LicenseKey = "YOUR-LICENSE-KEY";
var results = BarcodeReader.Read("barcode.png");
foreach (var result in results)
    Console.WriteLine($"{result.Value} ({result.Format})");
Imports IronBarCode

' IronBarcode: direct file reading
' NuGet: dotnet add package IronBarcode

IronBarCode.License.LicenseKey = "YOUR-LICENSE-KEY"
Dim results = BarcodeReader.Read("barcode.png")
For Each result In results
    Console.WriteLine($"{result.Value} ({result.Format})")
Next
$vbLabelText   $csharpLabel

Görüntülerden barkod okuma için, durum-değişiksiz API lisans anahtarından öte bir başlatma gerektirmez. Biçim algılama otomatiktir. Yukarıdaki tam program, üç satırlık operasyonel kodla bir görüntü dosyasından desteklenen herhangi bir barkod formatını okur.

Platform ve Dağıtım Desteği

Bir barkod kütüphanesinin dağıtım bağlamı, özellik kapasitelerinden bağımsız olarak, hedef ortamda çalışıp çalışamayacağını belirler.

Scandit SDK Yaklaşımı

Scandit'in mimarisi, kamera donanımını ve bir yerel kamera API'si aracılığıyla ona erişebilen bir mobil platformu gerektirir. iOS ve Android birincil desteklenen hedeflerdir. Windows masaüstü ikincil bir hedeftir. ASP.NET Core, Azure Fonksiyonları, Docker konteynerleri ve Linux sunucuları kütüphanenin tasarım kapsamı dışındadır. DataCaptureContext, sunucusuz bilişim ortamları, konteyner dağıtımları veya arka plan işleme hizmetlerinde eşdeğeri olmayan çalışan bir kamera oturumunu varsayar.

Platform Scandit SDK
iOS / Android (MAUI) Birincil hedef
Windows Masaüstü İkincil destek
ASP.NET Core Belgelendirilmiş bir hedef değil
Azure Functions Pratik değil
Docker / Linux sunucu Desteklenmiyor
Konsol / arka plan hizmeti Belgelendirilmiş bir hedef değil

IronBarcode Yaklaşımı

IronBarcode, sunucu, bulut ve kapsüllenmiş ortamlar için inşa edilmiştir. Durum-değişiksiz API'nin donanım bağımlılıkları yoktur ve platforma özgü başlatma gereklilikleri bulunmaz. Azure Fonksiyonları için barkod işleme dağıtımı desteklenen, belgelenmiş bir yoldur. Linux üzerinde Docker, standart bir dağıtım hedefidir. Yüklenen dosyalardan barkod okuyanASP.NET Coreuç noktaları, mimari geçici çözümler gerektirmeyen bir çekirdek desteklenen senaryoyu temsil eder.

Platform IronBarcode
iOS / Android (MAUI) Programatik dosya işleme
ASP.NET Core Tam destek
Azure Fonksiyonları / Lambda Tam destek
Docker / Linux sunucu Tam destek
Konsol / arka plan hizmeti Tam destek
Blazor Sunucusu Tam destek

Eşzamanlı Toplu İşleme

Çok sayıda barkod taşıyan belgeyi işlemek, iki kütüphanenin temelde farklı pozisyonlardan yaklaştığı ortak bir sunucu tarafı gerekliliktir.

Scandit SDK Yaklaşımı

Scandit'in kamera hattı, tek bir kullanıcıya veya cihaza hizmet eden tek bir kamera oturumu için tasarlanmıştır. FrameSourceState modeli, kalıcı, sürekli bir kamera oturumunu varsayar — verimlilikte işlenen belgeler kuyruğu değildir. Kütüphaneyi dosyaların gruplarını işlemek için adapte etmek, her belge için bir kamera oturumu simüle etmeyi veya paylaşılan bir hat aracılığıyla belge işlemlerini seri hale getirmeyi gerektirir, ki bunlar desteklenen veya verimli bir deseni temsil etmez.

IronBarcode Yaklaşımı

IronBarcode'un BarcodeReader.Read yöntemi durumsuz olduğundan, aynı anda birden fazla thread'den çağrı yapmak doğası gereği güvenlidir. Eşzamanlı toplu işlem, BarcodeReaderOptions tanımlamaktan öte özel bir yapılandırma gerektirmez:

// IronBarcode: concurrent batch processing
var options = new BarcodeReaderOptions
{
    Speed = ReadingSpeed.Balanced,
    ExpectMultipleBarcodes = true,
    MaxParallelThreads = 4
};

var files = Directory.GetFiles("./incoming/", "*.pdf");
var allResults = new ConcurrentBag<BarcodeResult>();

Parallel.ForEach(files, file =>
{
    var results = BarcodeReader.Read(file, options);
    foreach (var r in results)
        allResults.Add(r);
});
// IronBarcode: concurrent batch processing
var options = new BarcodeReaderOptions
{
    Speed = ReadingSpeed.Balanced,
    ExpectMultipleBarcodes = true,
    MaxParallelThreads = 4
};

var files = Directory.GetFiles("./incoming/", "*.pdf");
var allResults = new ConcurrentBag<BarcodeResult>();

Parallel.ForEach(files, file =>
{
    var results = BarcodeReader.Read(file, options);
    foreach (var r in results)
        allResults.Add(r);
});
Imports System.IO
Imports System.Collections.Concurrent
Imports System.Threading.Tasks

' IronBarcode: concurrent batch processing
Dim options As New BarcodeReaderOptions With {
    .Speed = ReadingSpeed.Balanced,
    .ExpectMultipleBarcodes = True,
    .MaxParallelThreads = 4
}

Dim files = Directory.GetFiles("./incoming/", "*.pdf")
Dim allResults As New ConcurrentBag(Of BarcodeResult)()

Parallel.ForEach(files, Sub(file)
    Dim results = BarcodeReader.Read(file, options)
    For Each r In results
        allResults.Add(r)
    Next
End Sub)
$vbLabelText   $csharpLabel

Asenkron ve çok iş parçacıklı barkod okuma üzerine ayrıntılı desenler için,IronBarcode belgeleri iş parçacığı güvenli desenler ve verim ayar seçeneklerini kapsar.

PDF Belge İşleme

PDF barkod çıkarma, görüntü tabanlı okumadan belirgin şekilde farklı bir yetenektir ve iki kütüphane arasında önemli bir ayrılışı temsil eder.

Scandit SDK Yaklaşımı

Scandit'in yerel PDF desteği yoktur. Scandit ile bir PDF'den barkod çıkarmak, her PDF sayfasını ayrı bir PDF işleme kütüphanesi kullanarak raster bir görüntüye işlemek ve ardından bu görüntüleri kamera simülasyon hattına beslemek gerektirir. Bu yaklaşım, ek bir bağımlılığı, ek lisans maliyetini ve belge işleme iş akışlarında rutin olan bir görev için kayda değer mühendislik çabasını tanıtır. Çok sayfalı belgeler, sayfaları yinelemeyi, işlenen görüntüler için belleği yönetmeyi ve sonuçları sayfalar arasında manuel olarak koordine etmeyi gerektirir.

IronBarcode Yaklaşımı

IronBarcode, PDF belgelerinden barkodları yerel olarak okur. Bir PDF'ye giden dosya yolu BarcodeReader.Read için geçerli bir argümandır ve sonuçlar, belgede her barkodun hangi sayfada bulunduğunu gösteren bir PageNumber özelliğini içerir:

// IronBarcode: extract barcodes from every page of a PDF
var results = BarcodeReader.Read("shipping-manifest.pdf");

foreach (var barcode in results)
{
    Console.WriteLine($"Page {barcode.PageNumber}: {barcode.Value} ({barcode.Format})");
}
// IronBarcode: extract barcodes from every page of a PDF
var results = BarcodeReader.Read("shipping-manifest.pdf");

foreach (var barcode in results)
{
    Console.WriteLine($"Page {barcode.PageNumber}: {barcode.Value} ({barcode.Format})");
}
Imports IronBarcode

' IronBarcode: extract barcodes from every page of a PDF
Dim results = BarcodeReader.Read("shipping-manifest.pdf")

For Each barcode In results
    Console.WriteLine($"Page {barcode.PageNumber}: {barcode.Value} ({barcode.Format})")
Next
$vbLabelText   $csharpLabel

PDF'lerden barkod okuma üzerine tam rehberlik için, sayfa aralığı seçimi ve çoklu barkod çıkarma seçenekleri dahil,IronBarcode belgeleri PDF işleme senaryolarının tamamını kapsar.

Fiyatlandırma ve Lisanslama

Lisans yapısı yalnızca bir kütüphanenin maliyetini değil, aynı zamanda değerlendirme ve benimseme için gereken zaman çizelgesini de etkiler.

Scandit Yaklaşımı

Scandit liste fiyatlarını yayınlamaz. Ürün sayfası özellikleri ve ürün adlarını listeler — SparkScan, MatrixScan, ID Tarama, AR Overlays, Parser — ve fiyatlandırma sorgularını bir satış görüşmesi ile yönlendirir. Teklif süreci genellikle kullanım senaryosunu tanımlamayı, tarama hacmini tahmin etmeyi, cihazları belirlemeyi, destek seviyelerini tartışmayı ve bir maliyet rakamı sağlanmadan önce bir sözleşme süresi seçmeyi içerir. Her Scandit ürün serisi ayrı ayrı fiyatlandırılır ve ayrı ayrı sözleşmeli olabileceğinden, özellik erişimini genişletmek ek bir satış döngüsü gerektirebilir.

IronBarcode Yaklaşımı

IronBarcode lisans aşamalarını ürün sayfasında form doldurma veya satış sorgulaması gerektirmeden yayımlar.

Lisans Fiyat Geliştiriciler Projeler
Lite $749 tek seferlik 1 1
Plus $1,499 tek seferlik 3 3
Profesyonel $2.999 bir kerelik 10 10
Unlimited $5.999 tek seferlik Unlimited Unlimited

Lisanslar süresizdir. Tarama başına ücret yok, cihaz başına ücret yok, ve kademe değiştiren hacim eşikleri yok. Yıllık yenileme, orijinal maliyetin yarısı kadardır, ancak satın alınan lisans yenileme olmadan geçerliliğini sürdürür. Tek bir IronBarcode paketindeki tüm özellikler — okuma, oluşturma, PDF desteği, çoklu barkod tespiti — her seviyede dahildir.

API Eşleme Başvurusu

Aşağıdaki tablo, bir geçişin çeviri maliyetini değerlendiren ekipler içinScandit SDKkavramlarınıIronBarcode karşılıklarına eşliyor:

Scandit SDK IronBarcode Notlar
DataCaptureContext.ForLicenseKey("key") IronBarCode.License.LicenseKey = "key" Tek görev; kontrol nesnesi gerekmez
BarcodeCaptureSettings.Create() new BarcodeReaderOptions() IronBarcode'da opsiyonel
settings.EnableSymbologies(Symbology.Code128, ...) (not needed) Otomatik tespit varsayılandır
Camera.GetDefaultCamera() (not applicable) Dosya işleme konseptinde kamera yok
dataCaptureContext.SetFrameSourceAsync(camera) (not applicable) IronBarcode'da çerçeve kaynağı yok
camera.SwitchToDesiredStateAsync(FrameSourceState.On) (not applicable) Kamera durum makinesi yok
barcodeCapture.IsEnabled = true BarcodeReader.Read(path) Tek bir çağrı okumayı başlatır
BarcodeScanned += olay işleyici BarcodeReader.Read() dönüş değerinin üzerinde yineleme Eşzamanlı koleksiyon; olay sistemi yok
args.Session.NewlyRecognizedBarcodes BarcodeReader.Read() dönüş değeri Doğrudan koleksiyon erişimi
barcode.Data result.Value Aynı anlamsal içerik
barcode.Symbology result.Format Eşdeğer format numaralandırması
SparkScan, MatrixScan, ID Tarama (ayrı ürünler) Tek IronBarcode paketi Ayrı eklentiler yok

Ekipler Scandit SDK'dan IronBarcode'a Geçmeyi Düşünürken

Sunucu Tarafı İşleme Gereksinimleri

ASP.NET Core API'leri, arka plan işlem hizmetleri veya Azure İşlevleri oluşturan ekipler, Scandit'in mimarisinin bir sunucu ortamında geçerliliği olmayan varsayımlar etrafında şekillendiğini fark eder. DataCaptureContext ve kamera hattı kamera donanımı ve canlı kare kaynağı bekler. Bir projenin barkod gereksinimleri tamamen sunucu tarafındaysa — yüklenen dosyalardan okuma, belge kuyruklarını işleme, gelen PDF'lerden barkod verilerini çıkarma — kamera hatları işleme ile alakasız olan başlatma adımları ve platform kısıtlamaları ekler.

Toplu Belge İşleme

Barkod içeren belgeleri yüksek hacimlerde işleyen organizasyonlar — sevkiyat belgeleri, faturalar, envanter kayıtları, tıbbi formlar — Scandit'in çerçeve kaynak modeli sürekli kamera oturumlarına yönelik olduğu, ayrı belgelerle belirlenebilir başlangıç ve bitiş noktaları ile olmadığını fark eder. Belge hacmi büyüdüğünde ve paralel işlem gereksinimi ortaya çıktığında, kamera boru hattının durumlu tasarımı adaptasyon için ek mühendislik gerektirir.

Fiyatlandırma Şeffaflığı

Bütçe teklifleri, satıcı karşılaştırmaları veya yeni projeler için fayda-maliyet analizleri üzerinde çalışan geliştirme ekiplerinin Scandit lisans maliyetini belirlemek için bir satış konuşmasına ihtiyacı vardır. Bir proje tanımlanmış bir bütçeye ve belirlenmiş bir zaman çizelgesine sahipse, bir fiyat teklifi almak için bir satış konuşması gereksinimi değerlendirme ve planlama açısından adımlar ekler. Aynı anda birden fazla kütüphane seçeneğini değerlendiren ekipler, yayınlanan fiyatlandırma eksikliğinin yapılandırılmış yan yana karşılaştırmayı zorlaştırdığını fark edebilir.

Hattın Karmaşıklığını Azaltmak

Scandit mobil kamera taraması için zaten konuşlandırılmış olsa da, aynı uygulamadaki sunucu tarafı barkod gereksinimleri farklı bir araç gerektirebilir. Gerçek zamanlı mobil tarama için uygun olan kamera boru hattı, statik belge işlemeye uygulandığında karmaşıklık ekler. Bu noktaya ulaşan ekipler genellikle mevcut bir Scandit kullanımı ile birlikte sunucu tarafı işlem için IronBarcode'u benimser, belgeler üzerinde çalışan iş akışlarını kapsamaya kamera boru hattını genişletmek yerine.

Genel Geçiş Dikkat Edilmesi Gereken Hususlar

Kamera Hattının Dosya Eşdeğeri Yoktur

Tüm DataCaptureContext başlatma bloğu — bağlam oluşturma, ayarların yapılandırılması, semboloji etkinleştirme, kamera edinimi, kare kaynağı ataması ve durum geçişi — IronBarcode'un dosya tabanlı API'sinde bir eşdeğer yoktur. Sunucu tarafı entegrasyon kodunu taşırken, bu blok bütünüyle silinmektedir. Çeviri yapılmaz; kaldırılır. IronBarcode'un yedeği, bir lisans anahtarının atanması ve ardından bir BarcodeReader.Read çağrısını içerir.

Olay Geri Çağrısından Doğrudan Dönecek Değer

Scandit, canlı kamera taramanın doğası gereği asenkron olması nedeniyle barkod sonuçlarını BarcodeScanned olayı aracılığıyla teslim eder.IronBarcode ise, sonucunu eşzamanlı olarak bir tiplenmiş koleksiyon olarak döner çünkü dosya tabanlı okuma, bilinen bir tamamlanma sınırına sahiptir. Geçiş, olay işleyici mantığını standart yinelemeye dönüştürmeyi içerir:

// Scandit callback pattern (removed during migration)
barcodeCapture.BarcodeScanned += (sender, args) =>
{
    foreach (var barcode in args.Session.NewlyRecognizedBarcodes)
        ProcessBarcode(barcode.Data, barcode.Symbology.ToString());
};

//IronBarcode direct return (replacement)
foreach (var result in BarcodeReader.Read("document.png"))
    ProcessBarcode(result.Value, result.Format.ToString());
// Scandit callback pattern (removed during migration)
barcodeCapture.BarcodeScanned += (sender, args) =>
{
    foreach (var barcode in args.Session.NewlyRecognizedBarcodes)
        ProcessBarcode(barcode.Data, barcode.Symbology.ToString());
};

//IronBarcode direct return (replacement)
foreach (var result in BarcodeReader.Read("document.png"))
    ProcessBarcode(result.Value, result.Format.ToString());
Imports System.Collections.Generic

' Scandit callback pattern (removed during migration)
AddHandler barcodeCapture.BarcodeScanned, Sub(sender, args)
    For Each barcode In args.Session.NewlyRecognizedBarcodes
        ProcessBarcode(barcode.Data, barcode.Symbology.ToString())
    Next
End Sub

' IronBarcode direct return (replacement)
For Each result In BarcodeReader.Read("document.png")
    ProcessBarcode(result.Value, result.Format.ToString())
Next
$vbLabelText   $csharpLabel

Semboloji Beyanı Kaldırma

Scandit'in tarama başlamadan önce EnableSymbologies çağrılarını açıkça yapması gerekir. IronBarcode, semboloji ön bildirimi gerektirmez — tüm formatlar otomatik olarak tespit edilir. Geçiş sırasında, tüm settings.EnableSymbologies(...) çağrıları kaldırılır. Orijinal Scandit kodu performans nedenleriyle sembolojileri kısıtlıyorsa, IronBarcode'da eşdeğer optimizasyon BarcodeReaderOptions.ExpectBarcodeTypes yoluyla sağlanabilir, ancak başlamanız için gerekli değildir.

Ek IronBarcode Yetenekleri

Yukarıdaki karşılaştırmada kapsanan alanların ötesinde,IronBarcode belge ve veri işleme senaryolarında faydasını artıran yetenekler sağlar:

  • Barkod Üretimi: Tüm desteklenen sembolojilerde, QR kodları, Kod 128, Veri Matrisi ve PDF417 dahil olmak üzere görüntü dosyaları olarak barkodlar üretilir veya PDF'lere gömülür.
  • GS1 ve Yapılandırılmış Verilerin Ayrıştırılması: Barkod sonuçlarından doğrudan GS1-128 uygulama tanımlayıcıları dahil olmak üzere yapılandırılmış barkod veri formatlarını çözer.
  • Görüntü Düzeltme ve Ön İşleme: Eğik, düşük kontrastlı veya hasarlı barkodlar için otomatik görüntü düzeltme, taranan belgelerde okuma oranlarını manuel ön işleme gerektirmeden iyileştirir.
  • Çoklu Barkod Algılama: Tek bir BarcodeReader.Read çağrısı, bir belgedeki tüm barkodları, aynı sayfada karışık formatlar dahil, ExpectMultipleBarcodes seçeneğini kullanarak algılar.
  • MAUI Barkod Okuma: MAUI uygulamalarında yakala-ve-proses modelini kullanarak, IronBarcode, bir fotoğraf çekildikten sonra işleme adımını MediaPicker kullanarak yönetir.
  • Akış ve Bayt Dizisi Girişi: Dosya yollarına ek olarak, BarcodeReader.Read, Stream ve byte[] girişlerini kabul ederek, geçici dosya oluşturulmadan yükleme işleyicileri, bellek tamponları ve ağ akışları ile entegrasyonu mümkün kılar.

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

IronBarcode, .NET Framework 4.6.2 ve sonrasını, .NET Standard 2.0, modern .NET sürümlerinin de dahil olduğu .NET 6, .NET 8, .NET 9 ve .NET 10'u destekler. Kütüphane, mevcut .NET sürümleriyle uyumlu kalmak için düzenli güncellemeler alır. Stateless API tasarımı, modern .NET genelinde kullanılan async-first programlama modeline uyar ve Linux ve containerized dağıtımları için desteği bulut tabanlı iş yüklerine uygun hale getirir. Kütüphane, .NET çalışma zamanı dışında platforma özgü çalışma zamanı bağımlılıkları olmadan tek bir NuGet paketi olarak gönderildiği için, .NET sürümleri arasında yükseltme yapmak ayrı kütüphane güncellemeleri veya ek yapılandırma gerektirmez.

Sonuç

Scandit SDK ve IronBarcode, farklı hedef dağıtım bağlamlarını yansıtan temelde farklı barkod işleme yaklaşımlarını temsil eder. Scandit, mobil donanımda gerçek zamanlı kamera taraması için oluşturulmuştur ve canlı bir kamera oturumunu, kare başına analiz ayarlarını ve olay odaklı sonuç teslimatını koordine eden bir mimariye sahiptir. IronBarcode, sunucular, masaüstüler ve bulut altyapısı üzerinde dosya tabanlı ve belge merkezli işleme işlemleri için oluşturulmuştur ve stateless bir API sunar, dosyaları, akışları ve PDF'leri kabul eder ve eşzamanlı sonuçlar döner. Bunlar aynı fikrin rekabet eden uygulamaları değildir — farklı kullanım durumlarına hizmet eden farklı fikirlerdir.

Scandit SDK, bir kullanıcı bir cihazın kamerasını fiziksel bir barkoda yönlendirdiğinde ve 100ms'nin altında görsel geri bildirim gerektiğinde mobil uygulamalar için uygun seçenektir. AR örtü kaplama yetenekleri, MatrixScan ile çoklu barkod eşzamanlı tespiti ve ID Tarama yoluyla kimlik belgesi tarama, hiçbir dosya tabanlı barkod kütüphanesinin kopyalayamadığı amaca yönelik özelliklerdir. Mobil saha çalışanlarını geniş ölçekte devreye sokan, tüketici odaklı tarama deneyimlerini çalıştıran veya kurumsal mobil tarama SLA'ları gerektiren kuruluşlar, Scandit'in hizmet etmek üzere tasarlandığı hedef kitleyi incelerler.

Barkod verileri dosya olarak geldiğinde IronBarcode uygun seçenektir — görüntüler, PDF'ler, bayt dizileri veya yükleme akışları — ve işleme bir kamera, bir kullanıcı ve bir kullanıcı arayüzü olmadan gerçekleşir. Sunucu tarafı belge işleme,ASP.NET CoreAPI uç noktaları, Azure Fonksiyonları, zamanlanmış toplu işler ve konteynerleştirilmiş mikro hizmetler, IronBarcode'un çalıştırmak için tasarlandığı ortamlara örnektir. Yayınlanan fiyatlandırması, tek paket özellik erişimi ve doğrudan dosya okuma API'si, Scandit'in kamera-pipeline modeli ve satış temelli fiyatlandırmasının farklı bir dağıtım şekline yönelik olduğu bu senaryolar için tasarlanmıştır.

Dürüst bir değerlendirme, seçimin büyük ölçüde tercih yerine dağıtım bağlamına bağlı olduğunu belirtir. Canlı mobil kamera taraması gerektiren bir proje net bir yanıta sahiptir. Sunucu tarafı PDF barkod çıkarması gerektiren bir proje, eşit derecede net bir yanıta sahiptir. İki kütüphanenin bazen karıştırıldığı yer, MAUI uygulamaları, hibrit mimariler ve hem mobil tarama hem de belge işleme gereksinimlerine sahip olan kuruluşlardır. Bu durumlarda, iki kütüphane bir arada var olabilir: Scandit, kamera odaklı işi üstlenirken,IronBarcode belge işleme işini üstlenir ve hiçbiri tasarlanmadığı bir role zorlanmaz.

Sıkça Sorulan Sorular

Scandit SDK nedir?

Scandit SDK, C# uygulamalarında barkod oluşturma ve okuma için kullanılan bir .NET barkod kütüphanesidir. Geliştiricilerin .NET projeleri için barkod çözümü seçerken değerlendirdikleri birkaç alternatiften biridir.

Scandit SDK ile IronBarcode arasındaki ana farklar nelerdir?

IronBarcode, hiçbir örnek yönetimi gerektirmeyen statik, durumdan bağımsız bir API kullanır, oysa Scandit SDK genellikle kullanım öncesinde örnek oluşturma ve yapılandırmayı gerektirir. IronBarcode ayrıca yerel PDF desteği, otomatik format algılama ve tüm ortamlar arasında tek anahtarla lisanslama sağlar.

IronBarcode lisanslamak Scandit SDK'dan daha mı kolay?

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, Scandit SDK'nı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, Scandit SDK'ya kıyasla toplu işlemi nasıl ele alıyor?

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, Scandit'ten farklı olarak, 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.

Scandit SDK ile IronBarcode arasındaki fiyatlandırma 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.

Scandit SDK'den IronBarcode'a geçmek kolay mı?

Scandit SDK'den IronBarcode'a geçiş, öncelikle örnek tabanlı API çağrılarının IronBarcode'un statik yöntemleriyle değiştirilmesini, lisans şablonlarının kaldırılmasını ve sonuç özelliği adlarının güncellenmesini içerir. Çoğu geçiş, kod eklemekten ziyade 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