Scanbot SDK vs IronBarcode: C# Barkod Kütüphanesi Karşılaştırması
Scanbot SDK vs IronBarcode: Kamera Boru Hattı vs Dosya İşleme
Scanbot SDK, cihaz kamerasını kullanarak tam ekran barkod tarama görünümü açar. Orada BarcodeScanner.Read(imagePath) yöntemi yok. Tarayıcı, kamera UI'dır. Barkodunuz bir sunucudaki bir PDF faturasında ise, Scanbot yardımcı olamaz. Bu bir eleştiri değil — bu mimari bir açıklamadır. Scanbot SDK, yerel iOS, Android, ve UWP/WinUI 3 tarama API'lerini arama bileşeni haline dönüştüren bir kamera kontrolüdür. ScanbotSDKMain.Barcode.StartScannerAsync(configuration), kullanıcı cihazı bir barkoda yönlendirir, SDK bunu canlı video akışında algılar ve sonuç uygulamanıza döner. Karşılaştırma önemlidir çünkü NuGet paket adı — ScanbotBarcodeSDK.MAUI — ve ürün kategorisi — "barcode SDK" — geliştiricileri bunu sunucu tarafı belge işleme, WPF masaüstü uygulamaları veyaASP.NET CoreAPI'leri için değerlendirmeye yönlendirebilir. Bu makale iki araç arasındaki mimari farkı ve her birinin ne için yapıldığını açıklar.
Scanbot SDK'yı Anlama
Scanbot SDK, doo GmbH tarafından geliştirilmiş ticari bir barkod tarama SDK'sıdır. Ana .NET teklifi, ScanbotBarcodeSDK.MAUI (v8.0.0) olup, net9.0-android ve net9.0-ios hedefleyen bir pakettir. Ayrı bir paket, Scanbot.BarcodeSDK.Windows (v7.0.0), Windows 10 1809+ (x64) üzerinde UWP ve WinUI 3 masaüstü uygulamalarını otomatik odaklamalı kamera ile kapsar. Desteklenen tüm hedefler kameraya bağlıdır — SDK, bir konsol uygulaması, bir sınıf kütüphanesi, birASP.NET Coreprojesi veya macOS hedefleyen bir MAUI uygulaması ile çalışmaz.
Scanbot kamera öncelikli bir ürün olarak tasarlanmıştır. Tüm API yüzeyi, canlı vizör deneyimi etrafında yapılandırılmıştır: yapılandırma nesneleri kamera UI'nin nasıl göründüğünü, canlı video hattının hangi biçimleri izlediğini ve kullanıcıya geri bildirimin nasıl iletildiğini kontrol eder. Kütüphane, iOS, Android ve Windows (UWP/WinUI 3) tüketici ve kurumsal uygulamalar için bir tarama bileşeni sunar.
- Birincil Platform Hedefi: iOS ve Android, .NET MAUI ile; ayrıca ayrı
Scanbot.BarcodeSDK.Windowspaketi ile Windows 10 1809+ üzerinde UWP/WinUI 3;macOS MAUIhedefleri desteklenmez - Giriş Modeli: Yalnızca canlı cihaz kamerası akışı — dosya yolu, akış veya bayt dizisi aşırmaları mevcut değil
- API Tasarımı:
ScanbotSDKMain.Barcode.StartScannerAsync(configuration)tam ekran kamera deneyimine kontrol verir veIsSuccessveValue.Itemskoleksiyonu ile sonuç döner - Kamera UI Özellikleri: Tarama bölgesi kaplama, el feneri kontrolü, en boy oranı yapılandırması, ses ve dokunsal geri bildirim ve yön kilidi ile gerçek zamanlı vizör
- Desteklenen Formatlar:20+tek boyutlu format (Code 128, EAN-13, UPC ve diğerleri) ve birkaç iki boyutlu format (QR, DataMatrix, PDF417, Aztec)
- Dosya İşleme Yok: Kaydedilmiş bir görüntü dosyasından, bir akıştan veya bir PDF belgesinden bir barkod okumak için herhangi bir mekanizma yok
- Barkod Oluşturma Yok: SDK barkodları okur; onları üretmez
- Lisanslama Modeli: Yıllık sabit ücret; yıllık maliyet tarama hacmine bakılmaksızın sabittir
- Proje Tipi Kapsamı: Desteklenen NuGet paketleri, kameraya bağlı çalışma zamanını (MAUI iOS/Android ve UWP/WinUI 3) hedefler; konsol, sınıf kütüphanesi, ASP.NET Core, WPF, WinForms, Azure Fonksiyonları ve Docker sunucu barındırma hedefleri dışında kalır
Kamera Pipeline Mimarisi
Scanbot'un mimarisi, uygulama başlatıldığında başlatma ve ardından bir kamera temelli tarama çağrısı gerektirir. Taramacı yöntemi, tüm işlemin kamera odaklı olması nedeniyle BarcodeScannerScreenConfiguration gerektirir:
using ScanbotSDK.MAUI;
using ScanbotSDK.MAUI.Barcode;
// In MauiProgram.cs — initialization required before any scan
// ScanbotSDKMain.Initialize(new SdkConfiguration {
// LicenseKey = "YOUR-SCANBOT-LICENSE-KEY",
// LoggingEnabled = false
// }, builder);
// Configure scanner appearance and behavior
var configuration = new BarcodeScannerScreenConfiguration
{
UseCase = new SingleScanningMode()
};
// Open full-screen camera scanner — UI takes over the entire screen
var result = await ScanbotSDKMain.Barcode.StartScannerAsync(configuration);
if (result.IsSuccess)
{
foreach (var item in result.Value.Items)
Console.WriteLine($"{item.Barcode.Format}: {item.Barcode.Text}");
}
using ScanbotSDK.MAUI;
using ScanbotSDK.MAUI.Barcode;
// In MauiProgram.cs — initialization required before any scan
// ScanbotSDKMain.Initialize(new SdkConfiguration {
// LicenseKey = "YOUR-SCANBOT-LICENSE-KEY",
// LoggingEnabled = false
// }, builder);
// Configure scanner appearance and behavior
var configuration = new BarcodeScannerScreenConfiguration
{
UseCase = new SingleScanningMode()
};
// Open full-screen camera scanner — UI takes over the entire screen
var result = await ScanbotSDKMain.Barcode.StartScannerAsync(configuration);
if (result.IsSuccess)
{
foreach (var item in result.Value.Items)
Console.WriteLine($"{item.Barcode.Format}: {item.Barcode.Text}");
}
Imports ScanbotSDK.MAUI
Imports ScanbotSDK.MAUI.Barcode
' In MauiProgram.vb — initialization required before any scan
' ScanbotSDKMain.Initialize(New SdkConfiguration With {
' .LicenseKey = "YOUR-SCANBOT-LICENSE-KEY",
' .LoggingEnabled = False
' }, builder)
' Configure scanner appearance and behavior
Dim configuration As New BarcodeScannerScreenConfiguration With {
.UseCase = New SingleScanningMode()
}
' Open full-screen camera scanner — UI takes over the entire screen
Dim result = Await ScanbotSDKMain.Barcode.StartScannerAsync(configuration)
If result.IsSuccess Then
For Each item In result.Value.Items
Console.WriteLine($"{item.Barcode.Format}: {item.Barcode.Text}")
Next
End If
SDK, canlı video karelerini gerçek zamanlı işler, vizörde tespit edilen barkodları vurgular ve bir barkod onaylandığında veya kullanıcı iptal ettiğinde döner. Yapılandırma nesnesi, kamera UI görünümünü kontrol eder, işleme davranışını değil. Bu, tam modeldir.
IronBarcode Anlama
IronBarcode, Iron Software tarafından geliştirilen ticari bir .NET barkod okuma ve oluşturma kütüphanesidir. Dosya işleme modelinde çalışır: giriş kaynakları dosya yolları, akışlar, bayt dizileri ve PDF belgeleridir. Kamera UI'si yoktur ve mobil donanım gereksinimi yoktur. Kütüphane, her .NET proje türünde çalışır.
IronBarcode'ın statik BarcodeReader.Read() yöntemi, çağrı kodunun sağladığı kaynak ne olursa olsun kabul eder, bu kaynağın nasıl üretildiği önemli olmaksızın. Bir HTTP üzerinden yüklenen dosya, disk üzerinde bir PDF, blob deposundan bir görüntü veya base64 string'den çözülen bir bayt dizisi hepsi eşdeğer girdilerdir. Kütüphane, barkod değeri, formatı ve varsa sayfa numarasını taşıyan dekode edilmiş sonuçlar koleksiyonu döner.
- Giriş Kaynakları: Dosya yolları, akışlar, bayt dizileri ve PDF belgeleri (görüntü çıkarımı değil, yerel PDF ayrıştırma)
- Desteklenen Proje Türleri: Konsol uygulamaları, ASP.NET Core, WPF, WinForms, Blazor Server, Azure Functions, AWS Lambda, Docker, Windows Hizmetleri, .NET MAUI (Windows ve macOS dahil tüm hedefler) ve .NET Framework 4.6.2+
- Barkod Oluşturma: Görüntüler veya HTML ve PDF belgelerine gömülü barkodlar üretir
- Format Kapsamı:30+tek boyutlu format veQR, DataMatrix, PDF417, Aztekve MaxiCode dahil olmak üzere beş iki boyutlu format
- Okuma Geliştirmeleri: Zor gerçek dünya görüntüleri için makine öğrenimi tabanlı hata düzeltme ve hasarlı barkod kurtarma
- Yapılandırma Nesnesi:
BarcodeReaderOptionsişleme davranışını kontrol eder (hız, çoklu barkod algılama) yerine kamera UI görünümünü kontrol etmez - Lisanslama Modeli: Dört kademede tek seferlik süresiz satın alma (Lite 749$, Plus 1.499$, Professional 2.999$, Unlimited 5.999$); yıllık yenileme gerektirmez
Özellik Karşılaştırması
Aşağıdaki tablo,Scanbot SDKve IronBarcode arasındaki temel farkları vurgular:
| Özellik | Scanbot SDK | IronBarcode |
|---|---|---|
| Birincil Kullanım Durumu | Mobil cihazlarda canlı kamera barkod taraması | Dosya ve belge barkod okuma ve oluşturma |
| Giriş Modeli | Yalnızca cihaz kamerası akışı | Dosya yolu, akış, bayt dizisi, PDF |
| Platform Desteği | iOS/Android MAUI ve UWP/WinUI 3 (kameraya bağlı) | Tüm .NET platformları ve proje türleri |
| Barkod Üretimi | Hayır | Evet |
| PDF Barkod Çıkartma | Hayır | Evet |
| Lisanslama Modeli | Yıllık sabit ücret | Tek seferlik süresiz |
| Canlı Kamera UI'si | Evet — cilalı vizör bileşeni | Hayır (fotoğraf çekimi için MediaPicker kullanın) |
Ayrıntılı Özellik Karşılaştırması
| Özellik | Scanbot SDK | IronBarcode |
|---|---|---|
| Okuma | ||
| Dosya yolundan giriş | Hayır | Evet |
| Akıştan giriş | Hayır | Evet |
| Bayt dizisinden giriş | Hayır | Evet |
| PDF barkod çıkarımı | Hayır | Evet |
| Canlı kamera vizörü | Evet | Hayır |
| Gerçek zamanlı kare tarama | Evet | Hayır |
| Otomatik format algılama | Evet | Evet |
| ML hata düzeltmesi | Hayır | Evet |
| Hasarlı barkod kurtarma | Hayır | Evet |
| 1D format sayısı | 20+ | 30+ |
| 2D format sayısı | QR, DataMatrix, PDF417, Aztek | QR, DataMatrix, PDF417, Aztec, MaxiCode |
| Üretim | ||
| Barkod oluşturma | Hayır | Evet |
| Platform | ||
| iOS MAUI | Evet | Evet |
| Android MAUI | Evet | Evet |
| Windows MAUI | Hayır | Evet |
| macOS MAUI | Hayır | Evet |
| UWP / WinUI 3 (kamera ile) | Evet (ayrı Windows paketi) | Evet |
| Konsol Uygulaması | Hayır | Evet |
| ASP.NET Core | Hayır | Evet |
| Blazor Sunucusu | Hayır | Evet |
| WPF Uygulaması | Hayır | Evet |
| WinForms Uygulaması | Hayır | Evet |
| Azure Functions | Hayır | Evet |
| AWS Lambda | Hayır | Evet |
| Docker / Linux | Hayır | Evet |
| Windows Hizmeti | Hayır | Evet |
| .NET Framework 4.6.2+ | Hayır | Evet |
| Lisanslama | ||
| Lisans modeli | Yıllık sabit ücret | Tek seferlik süresiz |
| Yayınlanmış fiyatlandırma | Satışla iletişime geçin | Evet (749$–5.999$) |
| Hacim indirimi | N/A (sabit ücret) | N/A (süresiz kademeler) |
Mimari: Kamera Pipeline'ı vs Dosya İşleme
Scanbot SDK ve IronBarcode arasındaki en önemli fark bir özellik açığı değil — her bir kütüphanenin girişini nasıl kavramsallaştırdığına dair temel bir mimari farktır.
Scanbot SDK Yaklaşımı
Scanbot'un mimarisi, yerel bir kamera hattı etrafında inşa edilmiştir. ScanbotSDKMain.Barcode.StartScannerAsync(configuration) çağrıldığında, kütüphane kontrolü, cihazın iOS, Android veya Windows üzerindeki yerel kamera API'leri tarafından desteklenen tam ekran bir kamera deneyimine verir. Kütüphane, canlı video karelerini sürekli işler, her kareye barkod tespiti uygular ve bir barkod onaylandığında veya kullanıcı tarayıcıyı kapattığında çağrı uygulamasına kontrolü geri verir. Scanbot modelinde statik görüntü kavramı yoktur — giriş her zaman cihaz kamerasından gelen canlı video karelerinin bir akışıdır.
Bu tasarım, gerçek zamanlı barkodların vizör içinde vurgulandığı, oran kontrolü ile yapılandırılabilir tarama bölgesi, el feneri geçişi, sesli ve dokunsal geri bildirim ve yön kilidi içeren bir tarama deneyimi üretir. Bunlar, kamera kullanım vakası için oluşturulmuş UI özellikleridir. Takas, kütüphanenin kamera donanımından ve onu çalıştıran işletim sisteminden ayrılamaz olmasıdır.
IronBarcode Yaklaşımı
IronBarcode, barkod içeren bir görüntünün herhangi bir ikili temsilini kabul eder ve görüntünün nasıl elde edildiği önemli olmaksızın, aynı statik yöntemle dekode edilmiş sonuçları döner:
// Install: dotnet add package BarCode
using IronBarCode;
IronBarCode.License.LicenseKey = "YOUR-LICENSE-KEY";
// From a file path — works in any project type
var results = BarcodeReader.Read("barcode.png");
foreach (var result in results)
Console.WriteLine($"{result.Value} ({result.Format})");
// From a PDF — reads all barcodes on all pages
var pdfResults = BarcodeReader.Read("invoice.pdf");
foreach (var result in pdfResults)
Console.WriteLine($"Page {result.PageNumber}: {result.Value}");
// From a stream — useful for HTTP file uploads
using var stream = File.OpenRead("document.pdf");
var streamResults = BarcodeReader.Read(stream);
// With processing options
var options = new BarcodeReaderOptions { Speed = ReadingSpeed.Balanced };
var configuredResults = BarcodeReader.Read("image.png", options);
// Install: dotnet add package BarCode
using IronBarCode;
IronBarCode.License.LicenseKey = "YOUR-LICENSE-KEY";
// From a file path — works in any project type
var results = BarcodeReader.Read("barcode.png");
foreach (var result in results)
Console.WriteLine($"{result.Value} ({result.Format})");
// From a PDF — reads all barcodes on all pages
var pdfResults = BarcodeReader.Read("invoice.pdf");
foreach (var result in pdfResults)
Console.WriteLine($"Page {result.PageNumber}: {result.Value}");
// From a stream — useful for HTTP file uploads
using var stream = File.OpenRead("document.pdf");
var streamResults = BarcodeReader.Read(stream);
// With processing options
var options = new BarcodeReaderOptions { Speed = ReadingSpeed.Balanced };
var configuredResults = BarcodeReader.Read("image.png", options);
Imports IronBarCode
IronBarCode.License.LicenseKey = "YOUR-LICENSE-KEY"
' From a file path — works in any project type
Dim results = BarcodeReader.Read("barcode.png")
For Each result In results
Console.WriteLine($"{result.Value} ({result.Format})")
Next
' From a PDF — reads all barcodes on all pages
Dim pdfResults = BarcodeReader.Read("invoice.pdf")
For Each result In pdfResults
Console.WriteLine($"Page {result.PageNumber}: {result.Value}")
Next
' From a stream — useful for HTTP file uploads
Using stream = File.OpenRead("document.pdf")
Dim streamResults = BarcodeReader.Read(stream)
End Using
' With processing options
Dim options = New BarcodeReaderOptions With {.Speed = ReadingSpeed.Balanced}
Dim configuredResults = BarcodeReader.Read("image.png", options)
Aynı çağrı konsol uygulamasında, birASP.NET Corekontrolcüsünde, bir Azure İşlevinde, bir WPF formunda veya bir MAUI sayfasında çalışır.IronBarcodePDFlardan barkodları genel olarak okur — PDFlerden çıkarılan görüntü olarak değil, PDF yapısını doğrudan çözümleyerek her sayfada barkodları bulur.
Platform ve Dağıtım Kapsamı
Scanbot SDK'nın platform kapsamı, NuGet paketinin desteklediği hedeflerle sabittir. IronBarcode'un kapsamı, .NET çalışma zamanı ile eşleşir.
Scanbot SDK Yaklaşımı
Scanbot MAUI paketi net9.0-android ve net9.0-ios hedefler. Sadece bu iki hedefi tanımlayan bir .NET MAUI Application projesi başarılı bir şekilde derlenir. Ancak, net9.0-maccatalyst veya birWindows MAUIhedefi TargetFrameworks eklendiğinde, Scanbot MAUI paket referansı bu hedeflerde çözülemez. Bu bir yapılandırma sorunu değildir — MAUI paketi Windows veyamacOS MAUIiçin montajlar sağlamaz. Windows masaüstü, otomatik odaklamalı kameraya sahip UWP/WinUI 3 uygulamaları için ayrı Scanbot.BarcodeSDK.Windows paketi ile kapsanır.
Sonuç olarak, Scanbot'un .NET paket seti, MAUI mobil ve UWP/WinUI 3 masaüstünü hedefliyor, sunucu veya kameraya bağlı olmayan masaüstü proje türlerini değil.
IronBarcode Yaklaşımı
IronBarcode, tüm .NET proje türleri ve hedef çerçeveleri üzerinde düzgün bir şekilde çözülen tek bir NuGet paketi olarak dağıtılır:
# Same package, same API — works in ASP.NET Core, WPF, console, MAUI, Azure Functions
dotnet add package BarCode
# Same package, same API — works in ASP.NET Core, WPF, console, MAUI, Azure Functions
dotnet add package BarCode
Windows veya macOS'u hedefleyen MAUI uygulamaları için, IronBarcode, platform koşullu yapılandırma olmadan dört MAUI hedefini tek bir paket referansından destekler. iOS, Android ve Windows'u hedefleyen bir MAUI projesi inşa eden ekipler, IronBarcode'u bir kez ekleyebilir ve üç platformun tamamında değiştirilmeden BarcodeReader.Read() kullanabilir.
MAUI Entegrasyon Desenleri
Her iki kütüphane de .NET MAUI projelerinde kullanılabilir, ancak entegrasyon deseni her bir kütüphanenin giriş modeline bağlı olarak önemli ölçüde farklılık gösterir.
Scanbot SDK Yaklaşımı
iOS ve Android'i hedefleyen bir MAUI projesinde, Scanbot uygulamanın gezinme akışına gömülü bir yerel kamera vizörü sağlar. ScanbotSDKMain.Barcode.StartScannerAsync() çağrısı, tam ekran tarayıcıyı sunar ve kullanıcı taramayı tamamladığında veya kapattığında, sonuç çağrı sayfasına döner. Bu entegrasyon, mobil uygulamaya platforma yerelmiş gibi hissettiren bir tarama UI'si kazandırır.
Sınırlama proje genişlediğinde ortaya çıkar. Bir macOS hedefi veya birWindows MAUIhedefi eklemek, bu platformlarda derlemeyi bozuyor (Windows masaüstü, bunun yerine ayrı Scanbot.BarcodeSDK.Windows paketi ile UWP/WinUI 3 uygulamaları için ele alınır). Barkod işleme gerektiren başsız sunucu tarafı bir bileşen eklemek, ayrı bir kütüphane gerektirir — Scanbot bağımlılığı projeyi ASP.NET Core, Azure Fonksiyonları veya Docker'a kadar takip edemez.
IronBarcode Yaklaşımı
Bir MAUI projesinde,IronBarcode platformun MediaPicker ile çalışarak fotoğraf çeker ve elde edilen görüntülerden barkodları okur. Tarama iş akışı, özel bir vizör yerine sistem kamerasını kullanır:
// Works on iOS, Android, Windows, andmacOS MAUItargets
// NuGet: dotnet add package BarCode
using IronBarCode;
private async void ScanButton_Clicked(object sender, EventArgs e)
{
var photo = await MediaPicker.CapturePhotoAsync();
if (photo == null) return;
using var stream = await photo.OpenReadAsync();
using var ms = new MemoryStream();
await stream.CopyToAsync(ms);
var results = BarcodeReader.Read(ms.ToArray());
foreach (var result in results)
await DisplayAlert("Scanned", $"{result.Format}: {result.Value}", "OK");
}
// Works on iOS, Android, Windows, andmacOS MAUItargets
// NuGet: dotnet add package BarCode
using IronBarCode;
private async void ScanButton_Clicked(object sender, EventArgs e)
{
var photo = await MediaPicker.CapturePhotoAsync();
if (photo == null) return;
using var stream = await photo.OpenReadAsync();
using var ms = new MemoryStream();
await stream.CopyToAsync(ms);
var results = BarcodeReader.Read(ms.ToArray());
foreach (var result in results)
await DisplayAlert("Scanned", $"{result.Format}: {result.Value}", "OK");
}
Imports IronBarCode
Imports System.IO
Imports System.Threading.Tasks
Private Async Sub ScanButton_Clicked(sender As Object, e As EventArgs)
Dim photo = Await MediaPicker.CapturePhotoAsync()
If photo Is Nothing Then Return
Using stream = Await photo.OpenReadAsync()
Using ms As New MemoryStream()
Await stream.CopyToAsync(ms)
Dim results = BarcodeReader.Read(ms.ToArray())
For Each result In results
Await DisplayAlert("Scanned", $"{result.Format}: {result.Value}", "OK")
Next
End Using
End Using
End Sub
Ödün, canlı vizör kaplaması. Kullanıcı, özel bir tarama bölgesi yerine sistem kamera UI'sini görür, bu da noktadan çekimin yeterli olduğu iş uygulamaları için yeterlidir. .NET MAUI barkod tarayıcı öğreticisi, iOS ve Android hedefleri için tam MAUI entegrasyon desenini, izin yapımını ve proje yapılandırmasını içerir.
Lisanslama Modeli
Scanbot SDK ve IronBarcode, temelde farklı ticari lisanslama yapılarını kullanır.
Scanbot Yaklaşımı
Scanbot, yıllık sabit ücret modeli üzerinde çalışır. Yıllık lisans maliyeti tarama hacmiyle ölçülmez. Bu, yalnızca mobil dağıtımlar için sabit bütçeleme sağlar. Kesin fiyatlandırma için Scanbot'un satış ekibiyle iletişime geçilmesi gerekir; yayınlanmış rakamlar mevcut değildir. Yıllık yenileme yükümlülüğü, lisansın devam eden bir işletim maliyeti olduğu anlamına gelir.
IronBarcode Yaklaşımı
IronBarcode, Lite için 749$, Plus için 1.499$, Professional için 2.999$, Unlimited için 5.999$ olmak üzere dört kademede tek seferlik süresiz satın alma şeklinde satılır. Satın alınan sürümün devam eden kullanımına yönelik yıllık yenileme gereksinimi yoktur. Lisans dönemi içindeki yazılım güncellemeleri dahildir. Fiyatlandırma, Iron Software web sitesinde satış görüşmesi gerektirmeden yayınlanır.
API Eşleme Başvurusu
İki kütüphane arasındaki mimari farkı değerlendiren ekipler, bu eşlemeyi kavram eşitliklerini anlamak için faydalı bulacaktır:
| Scanbot SDK | IronBarcode |
|---|---|
ScanbotSDKMain.Initialize(new SdkConfiguration { LicenseKey = "..." }, builder) |
IronBarCode.License.LicenseKey = "key" |
new BarcodeScannerScreenConfiguration { UseCase = new SingleScanningMode() } |
new BarcodeReaderOptions() |
ScanbotSDKMain.Barcode.StartScannerAsync(configuration) |
BarcodeReader.Read(path / stream / bytes) |
result.IsSuccess |
results.Any() veya results.FirstOrDefault() != null kontrol et |
result.Value.Items |
BarcodeReader.Read() dönüş değeri |
item.Barcode.Format |
result.Format (IronBarCode.BarcodeEncoding) |
item.Barcode.Text |
result.Value |
BarcodeFormat.Code128 |
BarcodeEncoding.Code128 |
BarcodeFormat.QrCode |
BarcodeEncoding.QRCode |
BarcodeFormat.Ean13 |
BarcodeEncoding.EAN13 |
| Kamera tarama bölgesi / oran yapılandırması | Karşılığı yok — görüntü çerçeveleme MediaPicker ile sağlanır |
| Kamera flaş / el feneri yapılandırması | Karşılığı yok — MediaPicker seçeneklerini kullanın |
| Sadece kamera girişi | Dosya yolu, akış, bayt dizisi veya PDF |
| iOS/Android MAUI and UWP/WinUI 3 | Tüm .NET platformları |
Scanbot SDK'dan IronBarcode'a Geçmeyi Düşünen Ekipler
Geliştirme ekipleri genellikleScanbot SDKyerine veya tamamlayıcı olarak IronBarcode'u değerlendirdikleri birkaç durum vardır.
Sunucu Tarafı ve Arka Plan İşleme
Scanbot ile oluşturulmuş bir mobil uygulama genellikle belge yükleme, toplu işler veya API uç noktalarını yöneten bir sunucu tarafı bileşeninin yanına yerleştirilir. O sunucu tarafı bileşeni barkod işlemeyi gerektirdiğinde — yüklenen PDF belgelerinden barkod çıkarma, gelen belgelerde barkod değerlerini doğrulama veya resim eklerinden barkod verilerini işleme — Scanbot kullanılabilir değildir. Paket, ASP.NET Core, Azure İşlevleri, konsol uygulamaları veya herhangi bir MAUI dışı projede derlenemez. Bu durumdaki ekipler, mobil barkod bağımlılığını ayrı bir sunucu tarafı barkod çözümü ile sürdürüyor veya IronBarcode'un her iki rolü tek bir paketle kapsayıp kaplayamayacağını değerlendiriyor.
Masaüstü Uygulama Gereksinimleri
MAUI'nin değer teklifi genellikle çapraz platform kapsamadır: iOS, Android ve Windows'u hedefleyen tek bir kod tabanı.Windows MAUIhedefi yol haritasına girdiğinde — ya başlangıç gereksinimlerinden ya da daha sonra bir ekleme olarak — ScanbotBarcodeSDK.MAUI paketi o hedefte çözülmez, çünkü Scanbot Windows'u MAUI Windows yerine ayrı bir UWP/WinUI 3 paketi (Scanbot.BarcodeSDK.Windows) ile kapsar. Çok hedefli bir MAUI projesindeki tek Windows derleme yolunu isteyen ekipler veya bir başsız Windows bileşeni (örneğin, bir Windows Servisi) ihtiyacı olanlar, Scanbot'un paket setinden bunu elde edemez. IronBarcode,Windows MAUIhedefinde çözülen ve aynı zamanda başsız masaüstü ve sunucu bağlamlarında çalışan tek bir paket sunar.
PDF ve Belge İş Akışları
Canlı tarama işleminden belge otomasyonuna geçiş yapan uygulamalar, Scanbot ile bir yetenek sınırıyla karşılaşırlar. Bir PDF faturadan barkod okuma, taranmış bir gönderim etiketi görüntüsünden takip kodları çıkarma veya bir arşivlenmiş belgede barkod verilerini işleme, canlı kamera beslemesi etrafında inşa edilen Scanbot giriş modeli dışında kalır. IronBarcode, tüm bu dosya tabanlı girdileri doğal olarak ele alır. MAUI mobil uygulamasında çalışan aynı paket, ek dependenvelopments olmaksızın bir arka plan işleme işinde PDF belgelerinden barkodları çıkarabilir.
Öngörülebilir Lisanslama Maliyetleri
Yıllık yenileme maliyetleri, her yenileme döngüsünde yeniden değerlendirmeyi teşvik eder. Scanbot ile küçük ölçekli bir mobil dağıtım altında başlayan ve daha fazla kullanıcı veya platformla daha geniş bir dağıtıma genişleyen ekipler, kapsam büyüdükçe yıllık ücreti daha az avantajlı bulabilir. IronBarcode'un tek seferlik süresiz modeli, yenileme yükümlülüğünü ortadan kaldırır. Lisans yenileme değerlendirmeleri yapan ekipler, özellikle genişletilmiş proje kapsamı, Scanbot'un kapsamadığı sunucu tarafı veya masaüstü platformlarını içerdiğinde, tek seferlik bir satın almanın uzun vadeli maliyet planlamasıyla daha iyi uyumlu olup olmadığını genellikle değerlendirir.
Genel Geçiş Dikkat Edilmesi Gereken Hususlar
Scanbot SDK'den IronBarcode'a geçiş yapan ekipler, geçiş sırasında ortaya çıkan teknik farklılıklara hazırlıklı olmalıdır.
Canlı Vizör Eşdeğeri Yok
Scanbot'un tarama bölgesi üst üste bindirilmiş, sürekli algılama ve dokunsal geri bildirim içeren gerçek zamanlı kamera vizörü, IronBarcode'da doğrudan bir eşdeğere sahip değildir. Yedek desen, sistem kamerasını açmak, bir fotoğraf çekmek ve işlemesi için görüntüyü döndürmek için MAUI'nin MediaPicker.CapturePhotoAsync() kullanır. Kullanıcı deneyimi, sürekli bir tarama akışı yerine bir fotoğraf çekme akışıdır. İş uygulamaları (envanter, lojistik, belge işleme) için bu ayrım nadiren önemlidir. Canlı üst üste bindirme ürün deneyiminin merkezinde olduğu tüketici uygulamaları için bu, taşındıktan önce değerlendirilmesi gereken gerçek bir UX farkıdır.
Olay Geri Çağrı Deseninden Doğrudan Dönüşe
Scanbot'un ScanbotSDKMain.Barcode.StartScannerAsync() asenkron olup IsSuccess bayrağı ve bir Value.Items koleksiyonu ile bir sonuç döner. IronBarcode'ın BarcodeReader.Read() doğrudan bir koleksiyon döner — durum alanı olan bir sarmalayıcı nesnesi yoktur. Başarı kontrolü result.IsSuccess'den results.Any()'ya veya results.FirstOrDefault() üzerindeki bir null kontrolüne değişir.
Biçim Enum Ad Alanı Değişikliği
Scanbot'un BarcodeFormat enumu (örneğin, BarcodeFormat.Code128) ve IronBarcode'ın BarcodeEncoding enumu (örneğin, BarcodeEncoding.Code128) benzer üyeler içerir ancak farklı ad alanlarındaki farklı türlerdir. Biçim değerlerini enum türüne göre depolayan veya karşılaştıran kod, tür referans güncellemesi gerektirir. .ToString() çıktılarına dayalı string karşılaştırmaları genellikle uyumludur çünkü üye adları benzerdir, ancak açık enum türü karşılaştırmaları BarcodeEncoding değerlerine güncellenmeyi gerektirir.
Windows Derleme Eklentileri
Scanbot paketi, taşınmadan önceWindows MAUIderleme hatalarına neden oluyorsa, kaldırılması bu hataları çözer. IronBarcode'u ekledikten sonra, Windows'a özgü yeteneklerin — dosya seçim iletişim kutuları, yerel dosya yolları, Windows izinleri — MAUI uygulama kodunda uygun şekilde ele alındığını doğrulayın, çünkü bunlar iOS ve Android dosya erişim desenlerinden farklıdır.
Ek IronBarcode Yetenekleri
Bu karşılaştırmada ele alınan temel senaryoların ötesinde, projeler genişledikçe IronBarcode'un sağladığı yetenekler önem kazanmaktadır:
- Barkod Üretimi: Tüm ana bir boyutlu ve iki boyutlu formatlarda barkodları görüntü dosyaları, akışlar veya HTML ve PDF belgeleri içinde gömülü içerik olarak üretin
- Çoklu Barkod Belge İşleme: Çok sayfalı bir PDF'deki her sayfadaki her barkodu tek bir çağrıda okuyun, her sonuç bulunma sayfa numarasını taşır
- Makine Öğrenimli Hata Düzeltme: Standart algılama algoritmalarının çözemediği hasarlı, kısmen gizlenmiş veya düşük kontrastlı görüntülerden barkodları geri kazanın
- Toplu Görüntü İşleme: Yüksek verimlilikli belge iş akışları için tek bir işlemde görüntü yolları veya akış dizilerini işleyin
- BarcodeReaderOptions Ayarları: Özel kullanım durumları için verim ve doğruluğu dengelemek adına okuma hızı, çoklu barkod algılama, biçim filtreleme ve görüntü ön işleme kontrolü
- iOS MAUI Entegrasyonu: MediaPicker desenini kullanarakiOS MAUIuygulamalarında tam barkod okuma desteği
- Android MAUI Entegrasyonu: iOS ile aynı API'yi kullanarakAndroid MAUIuygulamalarında tam barkod okuma desteği
.NET Uyumluluğu ve Geleceğe Hazırlık
IronBarcode, .NET 6, .NET 7, .NET 8 ve .NET 9'u ve ayrıca .NET Framework 4.6.2 ve sonrasını destekler. Kütüphane, uyumluluğu sağlamak için .NET sürüm döngüsü ile uyumlu düzenli güncellemeler alır, 2026'nın sonlarında beklenen .NET 10 ve gelecekteki sürümlerle uyum sağlayacaktır. IronBarcode, mobil işletim sistemi API'lerine veya donanım yeteneklerine bağımlı olmayan bir dosya işleme kütüphanesi olduğundan, uyumluluk yüzeyi, mobil platform destek döngüleriyle sınırlı olmaktan ziyade .NET ekosisteminin büyümesiyle artar.
Sonuç
Scanbot SDK ve IronBarcode, aynı 'barkod SDK'sı' etiketini paylaşan farklı ürün kategorilerini temsil eder. Scanbot, iOS ve Android (MAUI aracılığıyla) ve Windows (UWP/WinUI 3 aracılığıyla) için canlı vizör deneyimi sunan bir kamera tarama bileşenidir. IronBarcode, tam kapsamlı .NET proje türleri ve dağıtım hedefleri arasında barkodları okuyup üreten bir dosya ve belge işleme kütüphanesidir. Karşılaştırma, her kütüphanenin belirli alanı içindeki kalite değil, kapsam ve mimariyle ilgilidir.
Scanbot SDK, tanımlı kapsamı içinde güçlüdür. Kullanıcının doğrudan cihaz kamerasını fiziksel bir barkoda doğrulttuğu ve gerçek zamanlı görsel geri bildirim beklediği uygulamalar için — perakende, biletleme, depo sorgulama — Scanbot'un kamera boru hattı ve vizör bileşeni, bu etkileşim modeli için özel olarak üretilmiştir. Dağıtım kameraya bağlı hedeflerle sınırlıysa (iOS, Android ve UWP/WinUI 3 Windows), canlı tarama deneyimi ürünün merkezinde yer alıyorsa ve yıllık sabit ücret bütçeye uygunsa, Scanbot bu kullanım durumu için makul bir seçimdir.
Barkod işleme gereksinimi canlı kamera senaryosunun ötesine geçtiğinde,IronBarcode uygundur. Sunucu tarafı belge işleme, dosya yüklemelerini kabul edenASP.NET Coreuç noktaları, Windows veya macOS'ta masaüstü uygulamaları, blob depolama tarafından tetiklenen Azure Fonksiyonları, masaüstü platformlarını içeren çoklu hedef MAUI projeleri ve toplu PDF işleme görevleri, IronBarcode'un içsel kapsamına girer. Tek paket, platform-koşullu yapılandırma olmadan kurulur ve kodun bir mobil cihazda, bir sunucuda veya bir masaüstünde çalışıp çalışmadığına bakılmaksızın aynı BarcodeReader.Read() çağrısını sağlar.
Canlı mobil kamera tarama ve dosya veya sunucu işleme gereksinimlerini kapsayan ekipler için en mimari temiz çözüm, mobil kamera UI için Scanbot'u ve diğer her şey için IronBarcode'u kullanmaktır. Bu yaklaşımın maliyeti, iki barkod bağımlılığı ve iki lisans sözleşmesidir. Mobil tarama etkileşimi için özel bir vizör yerine sistem kamerasını kabul etmek isteyen ekipler için,IronBarcode tek başına tam proje kapsamını — MAUI mobil uygulamadan sunucu API'sine ve Windows masaüstü eşlikçisine kadar — tek bir paket ve tek bir lisansla kapsayabilir.
Sıkça Sorulan Sorular
Scanbot SDK nedir?
Scanbot SDK, 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.
Scanbot SDK ve IronBarcode arasındaki temel farklar nelerdir?
IronBarcode, örnek yönetimi gerektirmeyen statik, durumsuz bir API kullanırken, Scanbot SDK 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, Scanbot SDK'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, Scanbot 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, toplu işlem konusunda Scanbot SDK'ye 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.
Scanbot'un 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.
Scanbot SDK 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.
Scanbot SDK'den IronBarcode'a geçmek kolay mı?
Scanbot 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.

