Scanbot SDK vs IronBarcode: C# Barkod Kütüphanesi Karşılaştırması
Scanbot SDK, cihaz kamerası kullanarak tam ekran barkod tarama sağlar. Burada BarcodeScanner.Read(imagePath) yöntemi yok. Tarayıcı, kamera arayüzüdür. Barkodunuz bir sunucudaki PDF faturasında ise, Scanbot yardımcı olamaz. Bu bir eleştiri değil — mimari bir tanımdır. Scanbot SDK, yerel iOS ve Android tarama API'lerini cilali bir vizör bileşenine saran bir MAUI kamera kontrolüdür. ScanbotBarcodeSDK.BarcodeScanner.Open(configuration), tam ekran kamera deneyimi sağlayarak kullanıcıyı barkoda yönlendirir, SDK, canlı video akışındaki barkodu algılar ve sonuç uygulamanıza geri döner. NuGet paket adı — ScanbotBarcodeSDK.MAUI — ve ürün kategorisi — 'barcode SDK' — karşılaştırması önemlidir çünkü geliştiriciler, bunu sunucu tarafı belge işleme, WPF masaüstü uygulamaları veyaASP.NET CoreAPI'ler için değerlendirebilir. Bu makale, iki araç arasındaki mimari farkı, her birinin ne yaptığını ve IronBarcode'un, Scanbot'un yapısal olarak kapsayamayacağı senaryoları nasıl kapsadığını açıklar.
Scanbot SDK'yı Anlamak
Scanbot SDK, Scanbot GmbH tarafından geliştirilen ticari bir mobil barkod tarama SDK'sıdır. Onun .NET teklifi, ScanbotBarcodeSDK.MAUI'tir, net8.0-android ve net8.0-ios'i hedefleyen bir pakettir. SDK, .NET MAUI Application projesi ve onun TargetFrameworks içindeki mobil hedeflerle birlikte <UseMaui>true</UseMaui> gerektirir. Bir konsol uygulaması, sınıf kütüphanesi,ASP.NET Coreprojesi veya Windows'u hedefleyen bir MAUI uygulamasına karşı çözülmeyecektir.
Scanbot, kamera öncelikli bir ürün olarak tasarlanmıştır. Tüm API yüzeyi, canlı vizör deneyimi etrafında şekillendirilmiştir: yapılandırma nesneleri kamera arayüzünün nasıl göründüğünü, hangi formatların canlı video hattında izlendiğini ve kullanıcıya geri bildirimin nasıl iletildiğini kontrol eder. Kütüphane, iOS ve Android tüketici ve kurumsal mobil uygulamaları için cilalı bir tarama bileşeni verir.
- Birincil Platform Hedefi: .NET MAUI çerçevesi aracılığıyla iOS ve Android mobil cihazlar; Windows vemacOS MAUIhedefleri desteklenmez
- Giriş Modeli: Yalnızca canlı aygıt kamera beslemesi — herhangi bir dosya yolu, akış veya bayt dizisi aşırı yüklemesi yoktur
- API Tasarımı:
BarcodeScanner.Open(configuration), kontrolü tam ekran bir kamera deneyimine bırakır ve kullanıcı bir taramayı onayladığında veya iptal ettiğinde birOperationResultdöner. - Kamera Arayüzü Özellikleri: Tarama bölgesi kaplamalı ve gerçek zamanlı vizör, fener kontrolü, oran yapılandırması, sesli ve haptik geri bildirim, yön kilitleme
- 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, akıştan veya PDF belgesinden bir barkod okuma mekanizması bulunmamaktadır
- Barkod Oluşturma Yok: SDK barkodları okur; it does not produce them
- Lisanslama Modeli: Yıllık sabit ücret; the annual cost is fixed regardless of scan volume
- Proje Türü Kısıtlaması: Konsol, sınıf kütüphanesi, ASP.NET Core, WPF, WinForms,Azure İşlevleriveya Docker barındırma projelerinde derlenmez
Kamera Hattı Mimarisi
Scanbot'un mimarisi, uygulama başlangıcında başlatma ve ardından kamera odaklı bir tarama çağrısı gerektirir. Bir dosya yolu veya akış kabul eden BarcodeScanner.Open()'nin yüklemesi yoktur; yöntem imzası, tüm işlem kameradan bağımsız olduğu için bir BarcodeScannerConfiguration gerektirir:
// In MauiProgram.cs or App.xaml.cs — initialization required before any scan
ScanbotSDK.Initialize(new ScanbotSDKConfiguration
{
LicenseKey = "YOUR-SCANBOT-LICENSE-KEY",
EnableLogging = false
});
// Configure accepted formats and camera appearance
var configuration = new BarcodeScannerConfiguration();
configuration.BarcodeFormats = new[]
{
BarcodeFormat.Code128,
BarcodeFormat.QrCode,
BarcodeFormat.Ean13
};
// Open full-screen camera scanner — UI takes over the entire screen
var result = await ScanbotBarcodeSDK.BarcodeScanner.Open(configuration);
if (result.Status == OperationResult.Ok)
{
foreach (var barcode in result.Barcodes)
Console.WriteLine($"{barcode.Format}: {barcode.Text}");
}
// In MauiProgram.cs or App.xaml.cs — initialization required before any scan
ScanbotSDK.Initialize(new ScanbotSDKConfiguration
{
LicenseKey = "YOUR-SCANBOT-LICENSE-KEY",
EnableLogging = false
});
// Configure accepted formats and camera appearance
var configuration = new BarcodeScannerConfiguration();
configuration.BarcodeFormats = new[]
{
BarcodeFormat.Code128,
BarcodeFormat.QrCode,
BarcodeFormat.Ean13
};
// Open full-screen camera scanner — UI takes over the entire screen
var result = await ScanbotBarcodeSDK.BarcodeScanner.Open(configuration);
if (result.Status == OperationResult.Ok)
{
foreach (var barcode in result.Barcodes)
Console.WriteLine($"{barcode.Format}: {barcode.Text}");
}
Imports System
' In MauiProgram.vb or App.xaml.vb — initialization required before any scan
ScanbotSDK.Initialize(New ScanbotSDKConfiguration With {
.LicenseKey = "YOUR-SCANBOT-LICENSE-KEY",
.EnableLogging = False
})
' Configure accepted formats and camera appearance
Dim configuration As New BarcodeScannerConfiguration()
configuration.BarcodeFormats = New BarcodeFormat() {
BarcodeFormat.Code128,
BarcodeFormat.QrCode,
BarcodeFormat.Ean13
}
' Open full-screen camera scanner — UI takes over the entire screen
Dim result = Await ScanbotBarcodeSDK.BarcodeScanner.Open(configuration)
If result.Status = OperationResult.Ok Then
For Each barcode In result.Barcodes
Console.WriteLine($"{barcode.Format}: {barcode.Text}")
Next
End If
SDK, canlı video karelerini gerçek zamanlı işleyip vizörde algılanan barkodları vurgular ve bir barkod onaylandığında veya kullanıcı iptal ettiğinde döner. Yapılandırma nesnesi, kamera arayüzü görünümünü, işleme davranışını değil kontrol eder. Bu, tam modeldir.
IronBarcode'u Anlamak
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 kullanıcı arayuzu yok ve mobil donanim icin bir gereksinim yok. Kutuphane her .NET proje turunde calisir.
IronBarcode'un statik BarcodeReader.Read() yöntemi, çağrıyı yapan kodun sağladığı kaynaktan bağımsız olarak kabul eder. Bir HTTP araciligi ile yuklenen dosya, diskte bir PDF, blob depolama alanindan bir görüntü veya bir base64 string'ten dekore edilmis bir byte dizisi esdeger girdi olarak kabul edilir. Kutuphane, her biri barkod degeri, formati ve uygun oldugunda sayfa numarasini tasiyan dekode edilmis sonuclar dizisi dondurur.
- Girdi Kaynaklari: Dosya yolları, streamlar, byte dizileri ve PDF dokümanlari (yerel PDF analizi, görüntü ekstraksiyonu değil)
- Desteklenen Proje Turleri: Konsol uygulamalari, ASP.NET Core, WPF, WinForms, Blazor Server, Azure Functions, AWS Lambda, Docker, Windows Hizmetleri, .NET MAUI (butun hedefler dahil Windows ve macOS) ve .NET Framework 4.6.2+
- Barkod Uretimi: Görüntü veya HTML ve PDF dokümanlarına gomulu olarak barkodlar uretir
- Format Kapsami: 30'dan fazla tek boyutlu format ve 5 iki boyutlu format dahil olmak uzereQR, DataMatrix, PDF417, Aztecve MaxiCode
- Okuma Geliştirmeleri: Zor gerçek dunya görüntüleri icin makina ogrenmesi bazli hata düzeltme ve hasarli barkod iyilesi
- Yapılandırma Nesnesi:
BarcodeReaderOptions, işlem davranışını (hız, çoklu barkod algılama) kontrol eder, kamera UI görünümünü değil. - Lisans Modeli: Dört katmanda tek seferlik surekli alım (Lite $749, Plus $1,499, Professional $2,999, Unlimited $5,999); no annual renewal required
Özellik Karşılaştırması
Asagidaki tablo,Scanbot SDKveIronBarcodearasindaki temel farkliliklari vurgular:
| Özellik | Scanbot SDK | IronBarcode |
|---|---|---|
| Oncelikli Kullanim Durumu | Mobilde canli kamera barkod taraması | Dosya ve doküman barkod okuma ve uretme |
| Girdi Modeli | Cihaz kamera beslemesi sadece | Dosya yolu, stream, byte dizisi, PDF |
| Platform Desteği | Yalnızca iOS veAndroid MAUI | Tüm .NET platformlari ve proje turleri |
| Barkod Üretimi | Hayır | Evet |
| PDF Barkod Cikarma | Hayır | Evet |
| Lisans Modeli | Yillik sabit ucret | Tek seferlik surekli |
| Canli Kamera Kullanıcı Arayuzu | Evet — cilalanmis vizor bileşeni | Hayır (fotoğraf çekimi için MediaPicker kullanın) |
Detayli Özellik Karsilastirmasi
| Özellik | Scanbot SDK | IronBarcode |
|---|---|---|
| Okuma | ||
| Dosya yolundan giris | Hayır | Evet |
| Stream'den giris | Hayır | Evet |
| Byte dizisinden giris | Hayır | Evet |
| PDF barkod çıkarımı | Hayır | Evet |
| Canli kamera vizoru | Evet | Hayır |
| Gerçek zamanli çerçeve taraması | Evet | Hayır |
| Otomatik format algılama | Evet | Evet |
| ML hata düzeltmesi | Hayır | Evet |
| Hasarlı barkod kurtarma | Hayır | Evet |
| 1D format sayisi | 20+ | 30+ |
| 2D format sayisi | QR, DataMatrix, PDF417, Aztec | QR, DataMatrix, PDF417, Aztec, MaxiCode |
| Uretim | ||
| Barkod üretimi | Hayır | Evet |
| Platform | ||
| iOS MAUI | Evet | Evet |
| Android MAUI | Evet | Evet |
| Windows MAUI | Hayır | Evet |
| macOS MAUI | Hayır | Evet |
| Konsol Uygulaması | Hayır | Evet |
| ASP.NET Core | Hayır | Evet |
| Blazor Sunucu | Hayır | Evet |
| WPF Uygulaması | Hayır | Evet |
| WinForms Uygulaması | Hayır | Evet |
| Azure İşlevleri | 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 | Yillik sabit ucret | Tek seferlik surekli |
| Yayınlanmış fiyatlandırma | Satış ile iletişime geçin | Evet ($749–$5,999) |
| Hacim fiyatlandırması | Uygulanamaz (sabit ücrete tabi) | Uygulanamaz (sürekli katmanlar) |
Mimari: Kamera Pipeline ve Dosya İşleme
Scanbot SDK veIronBarcodearasındaki en büyük fark, özellik farkı değil — her kütüphanenin girişini nasıl kavramsallaştırdığına ilişkin temel mimari bir farktır.
Scanbot SDK Yaklaşımı
Scanbot'un mimarisi, yerel bir kamera hattı etrafında inşa edilmiştir. BarcodeScanner.Open(configuration) çağrıldığında, kütüphane iOS ve Android'deki cihazın yerel kamera API'leri tarafından desteklenen tam ekran bir kamera deneyimi sağlar. Kütüphane canlı video çerçevelerini sürekli olarak işler, her çerçeveye barkod algılama uygular ve bir barkod onaylandığında veya kullanıcı tarayıcıyı kapattığında kontrolü çağrı yapan uygulamaya geri devreder. Scanbot modelinde statik görüntü kavramı yoktur — giriş her zaman cihaz kamerasından akan canlı video çerçeveleridir.
Bu tasarım cilalı bir tarama deneyimi üretir: vizörde vurgulanan gerçek zamanlı barkodlar, belirlenebilir tarama bölgesi, aydınlatma anahtarı, sesli ve dokunsal geri bildirim ve yön kilidi. Bunlar, Scanbot'un mobil kamera kullanımında yatırım yaptığı kullanıcı arayuzu özellikleridir. Bedel, kütüphanenin kamera donanimından ve bunu yürütmekte olan mobil isletim sisteminden ayrilamaz olmasidir.
IronBarcode Yaklaşımı
IronBarcode, bir barkod iceren görüntünun herhangi bir ikili temsilini kabul eder ve görüntü nasıl elde edilirse edilsin, ayni statik metod aracılığıyla dekode edilmiş sonuçlar döndürür:
// Install: dotnet add package IronBarcode
IronBarCode.License.LicenseKey = "YOUR-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 IronBarcode
IronBarCode.License.LicenseKey = "YOUR-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
Imports System.IO
' Install: dotnet add package IronBarcode
License.LicenseKey = "YOUR-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ı bir konsol uygulamasında, birASP.NET Corekontrolcüsünde, bir Azure İşlevinde, bir WPF formunda veya bir MAUI sayfasında çalışır.IronBarcodebarkodlari PDF'lerden yerel olarak okur — PDF'lerden çıkarılan görüntüler şeklinde değil, PDF yapısını doğrudan çözümleyerek sayfalarda barkodları bulur.
Platform ve Dağıtım Kapsamı
Scanbot SDK'sının platform kapsamı, NuGet paketi tarafından desteklenen hedeflerle sabittir. IronBarcode'un kapsamı, .NET çalışma zamanı ile eşleşir.
Scanbot SDK Yaklaşımı
Scanbot'un paketi net8.0-android ve net8.0-ios hedefler. Yalnızca bu iki hedefi tanımlayan bir .NET MAUI Application projesi başarılı bir şekilde derlenecektir. Bununla birlikte, net8.0-windows veya net8.0-maccatalyst, TargetFrameworks'na eklendiğinde, Scanbot paket referansı bu hedeflerde çözüme ulaşamaz. Bu bir konfigürasyon sorunu değil — paket Windows veya macOS için derlemeler sağlamaz. Başarısızlık, masaüstü hedefi üzerinde ilk derleme denemesi sırasında ortaya çıkar, NuGet yükleme zamanında değil.
Bu kısıtlama, Scanbot'un masaüstü platformlarını içeren çoklu-hedefli MAUI projeleriyle yapısal olarak uyumsuz olduğu ve çerçeve sürümünden bağımsız olarak herhangi bir MAUI olmayan sunucu veya masaüstü proje türünde kullanılamayacağı anlamına gelir.
IronBarcode Yaklaşımı
IronBarcode, tüm .NET proje türleri ve hedef çerçevelerde doğru şekilde çözümleyen 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 IronBarcode
// Same package, same API — works in ASP.NET Core, WPF, console, MAUI, Azure Functions
dotnet add package IronBarcode
Windows veya macOS masaüstü hedefleyen MAUI uygulamaları için, IronBarcode, tek bir paket referansından herhangi bir platform şartlı yapılandırmaya gerek kalmadan dört MAUI hedefini de destekler. iOS, Android ve Windows'u hedefleyen bir MAUI projesi geliştiren ekipler, IronBarcode'u bir kez ekleyip tüm üç platformda değişiklik yapmadan BarcodeReader.Read() kullanabilir.
MAUI Entegrasyon Kaliplari
Her iki kutuphane de .NET MAUI projelerinde kullanilabilir, ancak entegrasyon kalıbı her kutuphane girdi 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, uygulama navigasyon akışına gömülü bir yerel kamera vizör sağlar. BarcodeScanner.Open() çağrısı, tam ekran tarayıcıyı sunar ve kullanıcı taramayı tamamladığında veya iptal ettiğinde sonuç çağıran sayfaya geri döner. Bu entegrasyon, mobil uygulama icin platforma ozel bir tarama kullanım arayuzu sağlar.
Sınırlama, proje genişletildiğinde ortaya çıkar. MAUI projesine bir Windows veya macOS hedef eklemek, bu platformlarda yapılarin başarısız olmasına neden olur. Barkod işlemesine ihtiyaçı olan sunucu-tarafi bileşeni eklemek, ayrı bir kütüphane gerektirir. Scanbot bağımlılığı, projenin iOS ve Android dışına taşınmasına engel olur.
IronBarcode Yaklaşımı
Bir MAUI projesinde, IronBarcode, platformun MediaPicker ile çalışarak fotoğrafları yakalar ve elde edilen görüntülerden barkodları okur. Tarama iş akışı özel vizör yerine sistem kamerasını kullanır:
// Works on iOS, Android, Windows, andmacOS MAUItargets
// NuGet: dotnet add package IronBarcode
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 IronBarcode
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
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
Canlı vizör kaplaması areyiştir. Kullanıcı, özel tarama bölgesi yerine sistem kamerası arayüzünü görür, bu, çekim ve çekimin yeterli olduğu işletme uygulamaları için uygundur. .NET MAUI barkod okuyucu öğreticisi izni işlemenin yanında iOS ve Android hedefleri için tam MAUI entegrasyon kalibini kapsar.
Lisans Modeli
Scanbot SDK veIronBarcodetamamen farklı ticari lisans yapiları kullanır.
Scanbot Yaklaşımi
Scanbot, yıllık sabit ücret modelinde çalışır. Yıllık lisans maliyeti, tarama hacmine bağlı olmaksızın sabittir — yılda 100 tarama veya yılda 10 milyon tarama, ücret aynıdır. Mobile tekil konuşlanma gerçekleştiren ekipler için öngörülebilir yıllık bütçelemeler sağlar. Kesin fiyatlandırma için Scanbot'un satış ekibine başvuru gerekmektedir; yayınlanmış rakamlar mevcut değildir. Yıllık yenileme yükümlülüğü, lisansın sürekli bir işletme maliyeti olduğu anlamına gelir.
IronBarcodeYaklaşımı
IronBarcode, dört katmanda tek seferlik bir surekli alma olarak satılır: Lite $749, Plus $1,499, Professional $2,999 ve Unlimited $5,999. Satın alınan sürümün kullanımına devam etmek için yıllık yenileme şartı yoktur. Lisans süresi içindeki yazılım güncellemeleri dahildir. Fiyatlandırma, satış konuşmasına gerek kalmadan Iron Software web sitesinde yayınlanmaktadır.
API Eslestirme Referansi
İki paket arasındaki mimari farkı değerlendiren ekipler, bu harita eşdeğer kavramlarını anlamak için yararlı bulacaktır:
| Scanbot SDK | IronBarcode |
|---|---|
ScanbotSDK.Initialize(new ScanbotSDKConfiguration { LicenseKey = "..." }) |
IronBarCode.License.LicenseKey = "key" |
new BarcodeScannerConfiguration() |
new BarcodeReaderOptions() |
ScanbotBarcodeSDK.BarcodeScanner.Open(configuration) |
BarcodeReader.Read(path / stream / bytes) |
result.Status == OperationResult.Ok |
results.Any() veya results.FirstOrDefault() != null 'yi kontrol edin |
result.Barcodes |
BarcodeReader.Read() 'in dönüş değeri |
barcode.Format |
result.Format (IronBarCode.BarcodeEncoding) |
barcode.Text |
result.Value |
BarcodeFormat.Code128 |
BarcodeEncoding.Code128 |
BarcodeFormat.QrCode |
BarcodeEncoding.QRCode |
BarcodeFormat.Ean13 |
BarcodeEncoding.EAN13 |
BarcodeScannerConfiguration.FinderAspectRatio |
Esdeger yok — resim cerceveleme, MediaPicker tarafından yönetilir |
BarcodeScannerConfiguration.FlashEnabled |
Esdeger yok — MediaPicker seçeneklerini kullan |
| Kamera-yalnız girdi | Dosya yolu, akış, bayt dizisi veya PDF |
| Yalnızca iOS veAndroid MAUI | Tüm .NET platformları |
Ekiplerin Scanbot SDK'dan IronBarcode'a Geçiş Yapmayı Düşündüğü Zamanlar
Birçok durum, geliştirme ekiplerinin Scanbot SDK'nın yerine veya tamamlayıcısı olarak IronBarcode'u değerlendirmesine neden olur.
Sunucu Tarafı ve Backend İşleme
Scanbot ile oluşturulan bir mobil uygulama, genellikle belge yüklemeleri, toplu işler veya API uç noktalarını işleyen bir sunucu tarafı bileşeniyle birlikte bulunur. Sunucu tarafı bileşeni barkod işleme gerektirdiğinde — yüklenen PDF'lerden barkod çıkarma, gelen belgelerde barkod değerlerini doğrulama veya görüntü eklerinden barkod verilerini işleme — Scanbot mevcut değildir. Paket, ASP.NET Core, Azure Functions, konsol uygulamaları veya herhangi bir MAUI olmayan projede derlenmez. Bu durumdaki ekipler kendilerini mobil barkod bağımlılığını ayrı bir sunucu tarafı barkod çözümüyle birlikte yönetirken veya IronBarcode'un her iki rolü tek bir paketle kapsayıp kapsayamayacağını değerlendirirken bulurlar.
Masaüstü Uygulama Gereksinimleri
MAUI'nin değer önerisi genellikle platformlar arası kapsama alanıdır: iOS, Android ve Windows'u hedefleyen tek bir kod tabanı.Windows MAUIhedefi yol haritasına girdiğinde — ya ilk gereksinimlerden ya da daha sonra eklendiğinde — Scanbot'un paketi o hedefte çözülemez. Windows derlemesi, bağımlılık listesinde Scanbot varken ilerleyemez. Ekipler, masaüstü hedefini derleme girişiminde ilk kez bunu keşfeder ve çözüm için Scanbot'u ortak bağımlılık listesinden kaldırmaları gerekir. Windows masaüstü hedefi kesin bir gereksinim olduğunda, mobil odaklı barkod kütüphaneleri arasında masaüstü platformunu da kapsayan tek seçenekIronBarcodeolur.
PDF ve Belge İş Akışları
Canlı taramadan belge otomasyonuna doğru geçen uygulamalar, Scanbot ile bir yetenek sınırı ile karşılaşır. PDF fatura üzerinden barkod okuma, taranmış nakliye etiketi görüntüsünden takip kodlarını çıkarma veya arşivlenmiş bir belgeden barkod verilerini işleme — bu iş akışlarının hiçbiri Scanbot modeli içinde mümkün değildir, çünkü giriş her zaman canlı kamera beslemesi olmalıdır. IronBarcode, tüm bu dosya tabanlı girdileri doğal olarak işler. MAUI mobil uygulamasında çalışan aynı paket, ek bir bağımlılığa gerek duymadan arka plan işleme görevlerinde PDF belgelerinden barkod çıkarabilir.
Öngörülebilir Lisanslama Maliyetleri
Yıllık yenileme maliyetleri, her yenileme döngüsünde yeniden değerlendirme daveti çıkarır. Scanbot ile küçük ölçekli bir mobil dağıtımda başlayan ve daha fazla kullanıcı veya platform ile daha geniş bir dağıtıma geçen ekipler, kapsam büyüdükçe yıllık ücreti daha az uygun bulabilir. IronBarcode'un bir kerelik süresiz modeli yenileme yükümlülüğünü ortadan kaldırır. Lisans yenileme değerlendirmesi yapan ekipler genellikle genişletilmiş proje kapsamı, Scanbot'un kapsama alanının dışında kalan sunucu tarafı veya masaüstü platformlarını içerdiğinde, uzun vadeli maliyet planlamalarıyla daha iyi uyum sağlayıp sağlamadığını düşünürler.
Genel Geçiş Dusunceleri
Scanbot SDK'dan IronBarcode'a geçen ekipler, geçiş sırasında ortaya çıkan çeşitli teknik farklara hazırlıklı olmalıdır.
Canlı Bakış Bölgesi Eşdeğeri Yok
Scanbot'un tarama bölgesi kaplaması, sürekli algılama ve haptik geri bildirim ile gerçek zamanlı kamera bakış bölgesi, IronBarcode'da doğrudan bir eşdeğere sahip değildir. Değiştirme deseni, sistem kamerasını açmak, bir fotoğraf çekmek ve görüntüyü işleme için geri döndürmek üzere MAUI'nin MediaPicker.CapturePhotoAsync() kullanır. Kullanıcı deneyimi, sürekli tarama akışı yerine bir fotoğraf çekme akışıdır. İş uygulamaları için (envanter, lojistik, belge işleme), bu fark genellikle önemli değildir. Canlı kaplama, ürün deneyiminin merkezinde olduğu tüketici uygulamaları için bu, taşınıma taahhüt edilmeden önce değerlendirilmesi gereken gerçek bir UX farktır.
Etkinlik Geri Çağırma Şablonundan Doğrudan Dönüşe
Scanbot'un BarcodeScanner.Open() asenkron ve bir durum alanı ve bir Barcodes koleksiyonu ile bir OperationResult döner. IronBarcode'un BarcodeReader.Read() doğrudan bir koleksiyon döner — bir durum alanı olan bir kaplama nesnesi yoktur. Başarı kontrolü result.Status == OperationResult.Ok yerine results.Any() veya results.FirstOrDefault() üzerinde bir null kontrolüne değişir.
Format Enum Ad Alanı Değişimi
Scanbot'un BarcodeFormat enum'u (örneğin, BarcodeFormat.Code128) ve IronBarcode'un BarcodeEncoding enum'u (örneğin, BarcodeEncoding.Code128) benzer üyelere sahiptir, ancak farklı ad alanlarındaki farklı türlerdir. Enum türüne göre format değerlerini depolayan veya karşılaştıran kodun tür referansı güncellenmelidir. .ToString() çıktısına dayanan 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üncellemeyi gerektirir.
Windows Derleme Eklemeleri
Göçten önce Scanbot paketiWindows MAUIderleme hatalarına neden oluyorsa, paketin çıkarılması bu hataları çözer. IronBarcode'u ekledikten sonra, Windows'a özgü kapasitelilerin — dosya seçim diyalogları, 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.
EkIronBarcodeIlkeler
Bu karşılaştırmada ele alınan çekirdek senaryoların ötesinde, projeler genişledikçe IronBarcode'un alakalı hale gelen yetenekler sağlar:
- Barkod Üretimi: Tüm büyük bir boyutlu ve iki boyutlu formatlarda barkodları görüntü dosyaları, akışlar veya HTML ve PDF belgelerinde gömülü içerik olarak üretin
- Çoklu-Barkod Belge İşleme: Tek bir çağrıda çok sayfalı bir PDF'nin her sayfasındaki her barkodu okuyun, her sonuç bulunduğu sayfa numarasını taşır
- Makine Öğrenimi Hata Düzeltme: Standart algılama algoritmalarının deşifre edemediği hasarlı, kısmen gizli veya düşük kontrastlı görüntülerden barkodları geri kazanın
- Batch Resim İşleme: Yüksek hacimli belge iş akışları için tek bir işlemde görüntü yolu veya akışı dizilerini işleyin
- BarcodeReaderOptions Ayarlama: Okuma hızını, çoklu barkod algılamayı, format filtrelemeyi ve belirli kullanım durumları için verimlilik ve doğruluk dengesini sağlamak adına görüntü ön işleme ayarlayın
- iOS MAUI Entegrasyonu: MediaPicker şablonunu kullanarakiOS MAUIuygulamalarında barkod okuma için tam destek
- Android MAUI Entegrasyonu: iOS ile aynı API'yi kullanarakAndroid MAUIuygulamalarında barkod okuma için tam destek
.NET Uyumlulugu ve Gelecek Hazirikligi
IronBarcode, .NET 6, .NET 7, .NET 8 ve .NET 9'u, ayrıca .NET Framework 4.6.2 ve sonraki sürümleri destekler. Kütüphane, .NET 10'un 2026'nın sonlarında beklenen ve gelecekteki sürümlerle uyumluluğu sağlamak için .NET sürüm ritmi ile düzenli güncellemeler alır. IronBarcode, platforma özgü bir kamera SDK'sı yerine bir dosya işleme kütüphanesi olduğundan, mobil işletim sistemi API'lerine veya donanım kapasitelerine bağlı değildir, bu da uyumluluk yüzeyinin .NET ekosistemi ile büyümesini sağlar ve mobil platform destek döngüleri ile sınırlandırılmaz.
Sonuç
Scanbot SDK ve IronBarcode, 'barkod SDK' etiketi paylaşan farklı ürün kategorilerindedir. Scanbot, iOS ve Android uygulamaları için cilalı bir canlı bakış deneyimi sunan bir mobil kamera tarama bileşenidir. IronBarcode, .NET proje tipleri ve dağıtım hedeflerinin tüm kapsamında barkod okuma ve üretme kütüphanesi olan bir dosya ve belge işleme kütüphanesidir. Karşılaştırma, her kütüphanenin amaçlanan alanındaki kalite değil, kapsam ve mimari üzerine bir değerlendirmedir.
Scanbot SDK, tanımlanan kapsamı içinde gerçekten güçlüdür. Kullanıcının doğrudan bir cihaz kamerasını fiziksel bir barkoda doğrulttuğu ve gerçek zamanlı görsel geri bildirim beklediği tüketici ve kurumsal mobil uygulamalar için — perakende, biletleme, depo arama — Scanbot'un kamera hattı ve cilalı bakış bileşeni bu etkileşim modeli için özel olarak üretilmiştir. Dağıtım yalnızca iOS ve Android mobil ise, canlı tarama deneyimi ürüne merkeziyse ve yıllık sabit ücret bütçeye uygunsa, Scanbot o dar ve iyi tanımlanmış kullanım durumu için makul bir tercihtir.
Barkod işleme gereksinimi canlı kamera senaryosunun ötesine geçtiğindeIronBarcodeuygundur. Sunucu tarafı belge işleme, dosya yüklemelerini kabul edenASP.NET Coreuç noktaları, Windows veya macOS'teki masaüstü uygulamaları, blob depolama tarafından tetiklenen Azure İşlevleri, masaüstü platformlarını içeren çok hedefli MAUI projeleri ve toplu PDF işleme işleri, tümü IronBarcode'un doğal kapsamına girer. Tek paket, platform şarta bağlı konfigürasyon olmadan yüklenir ve kodun bir mobil cihazda, bir sunucuda veya bir masaüstünde çalışıp çalışmadığından bağımsız olarak aynı BarcodeReader.Read() çağrısını sağlar.
Gereksinimleri hem canlı mobil kamera tarama hem de dosya veya sunucu işlemeyi kapsayan ekipler için, en mimari açıdan temiz çözüm, mobil kamera UI için Scanbot ve diğer her şey içinIronBarcodekullanmaktır. Bu yaklaşımın maliyeti iki barkod bağımlılığı ve iki lisans anlaşmasıdır. Mobil tarama etkileşimi için özel bir bakış yerine sistem kamerasını kabul etmeye istekli olan ekipler, tek bir paket ve tek bir lisans ile tam proje kapsamını kapsayabilir — MAUI mobil uygulamasından sunucu API'si ve Windows masaüstü yan uygulamasına kadar.
Sıkça Sorulan Sorular
Scanbot SDK nedir?
Scanbot SDK, .NET projeleri için C# uygulamalarında barkod oluşturma ve okuma için bir .NET barkod kütüphanesidir. Geliştiricilerin .NET projeleri için bir barkod çözümü seçerken değerlendirdiği birkaç alternatiften biridir.
Scanbot SDK ve IronBarcode arasındaki ana farklar nelerdir?
IronBarcode, örnek yönetimi gerektirmeyen statik, durumsuz bir API kullanır, oysa Scanbot SDK genellikle kullanılmadan önce örnek oluşturma ve yapılandırma gerektirir. IronBarcode ayrıca yerel PDF desteği, otomatik format algılama ve tüm ortamlar arasında tek anahtarlı lisanslama sağlar.
IronBarcode lisanslamak Scanbot SDK'dan daha mı kolay?
IronBarcode, hem geliştirme hem de üretim dağıtımlarını kapsayan tek bir lisans anahtarı kullanır. Bu durum, CI/CD hatları ve Docker yapılandırmalarını, SDK anahtarlarını çalıştırma anahtarlarından ayıran lisanslama sistemleriyle karşılaştırıldığında basitleştirir.
IronBarcode, Scanbot SDK'nın desteklediği tüm barkod formatlarını destekliyor mu?
IronBarcode, QR Code, Code 128, Code 39, DataMatrix, PDF417, Aztec, EAN-13, UPC-A, GS1 ve daha fazlası dahil 30'dan fazla barkod sembolojisini destekler. Format otomatik algılama, açık format sayımı gerektirmez.
IronBarcode yerel PDF barkod okuma desteği veriyor mu?
Evet. IronBarcode, BarcodeReader.Read('document.pdf') kullanarak PDF dosyalarından barkodları doğrudan okur, ayrı bir PDF işleme kütüphanesi gerektirmez. Sayfa başına sonuçlar, sayfa numarası, barkod formatı, değeri ve güven skoru içerir.
IronBarcode, toplu işlemeyle Scanbot SDK'ya kıyasla nasıl başa çıkıyor?
IronBarcode'un statik yöntemleri durumsuz ve doğal olarak iş parçacığı güvenlidir, Parallel.ForEach'in doğrudan kullanımını sağlar ve iş parçacığı başı örnek yönetimi gerektirmez. Hiçbir fiyatlandırma seviyesi için bant genişliği sınırı yoktur.
IronBarcode hangi .NET sürümlerini destekliyor?
IronBarcode, .NET Framework 4.6.2+, .NET Core 3.1 ve .NET 5, 6, 7, 8 ve 9'u tek bir NuGet paketi içinde destekler. Platform hedefleri arasında Windows x64/x86, Linux x64 ve macOS x64/ARM bulunuyor.
.NET projesine IronBarcode'u nasıl kurarım?
NuGet aracılığıyla IronBarcode'u kurun: 'Install-Package IronBarCode' komutunu Paket Yöneticisi Konsolunda veya CLI'de 'dotnet add package IronBarCode' komutunu çalıştırın. Ek bir SDK yükleyici veya çalışma zamanı dosyaları gerekli değildir.
IronBarcode'u satın almadan önce değerlendirebilir miyim, Scanbot'tan farklı olarak?
Evet. IronBarcode'ın deneme modu, yalnızca oluşturulan çıktı görüntülerine bir filigran ekleyerek tam çözümlenmiş barkod değerlerini verir. Satın almadan önce kendi belgelerinizde okuma doğruluğunu test edebilirsiniz.
Scanbot SDK ve IronBarcode arasındaki fiyat farkı nedir?
IronBarcode, geliştirme ve üretimi kapsayan tek bir geliştirici lisansı için $749'dan başlar. Fiyatlandırma detayları ve hacim seçenekleri, IronBarcode lisanslama sayfasında mevcuttur. Ayrı bir çalışma zamanı lisansı gereksinimi yoktur.
Scanbot SDK'dan IronBarcode'a geçiş yapmak basit mi?
Scanbot SDK'dan IronBarcode'a geçiş, öncelikle örnek tabanlı API çağrılarını IronBarcode'un statik yöntemleriyle değiştirmek, lisanslama belgelerini kaldırmak ve sonuç özellik adlarını güncellemeyi içerir. Çoğu geçiş, kodu azaltmakla, eklemekten daha fazla ilgilidir.
IronBarcode, logolu QR kodları üretiyor mu?
Evet. QRCodeWriter.CreateQrCode().AddBrandLogo('logo.png') kullanarak bir QR koduna yerel logolu bir marka resmi ekleyin, yapılandırılabilir hata düzeltme ile. ChangeBarCodeColor() üzerinden renkli QR kodları da desteklenir.

