Scanbot SDK vs IronBarcode: C# BarCode-Bibliothek im Vergleich
Das Scanbot SDKöffnet eine Vollbildansicht zum Scannen von Barcodes mithilfe der Gerätekamera. Es gibt keine BarcodeScanner.Read(imagePath) Methode. Der Scanner ist die Benutzeroberfläche der Kamera. Befindet sich Ihr Barcode in einer PDF-Rechnung auf einem Server, kann Scanbot Ihnen nicht helfen. Dies ist keine Kritik, sondern eine Beschreibung der Serverarchitektur. Scanbot SDKist eine MAUI-Kamerasteuerung, die native iOS- und Android-Scanning-APIs in eine elegante Sucherkomponente einbindet. ScanbotBarcodeSDK.BarcodeScanner.Open(configuration)ermöglicht die Nutzung einer Vollbild-Kamerafunktion. Der Benutzer richtet das Gerät auf einen Barcode, das SDK erkennt diesen im Live-Videostream, und das Ergebnis wird an Ihre App zurückgegeben. Der Vergleich ist wichtig, da der NuGet -Paketname – ScanbotBarcodeSDK.MAUI – und die Produktkategorie – "Barcode SDK" – Entwickler dazu veranlassen können, das SDK für die serverseitige Dokumentenverarbeitung, WPF-Desktop-Anwendungen oder ASP.NET CoreAPIs zu evaluieren. Dieser Artikel erläutert die architektonischen Unterschiede zwischen den beiden Tools, ihre jeweiligen Funktionen und die Anwendungsfälle, die IronBarcode strukturell nicht abdecken kann.
Scanbot SDKverstehen
Scanbot SDK ist ein kommerzielles mobiles Barcode-Scanning-SDK, das von der Scanbot GmbH entwickelt wurde. Das .NET Angebot ist ScanbotBarcodeSDK.MAUI, ein Paket, das auf net8.0-android und net8.0-ios abzielt. Das SDK benötigt ein .NET MAUI Application Projekt mit <UseMaui>true</UseMaui> und mobilen Zielen in seinem TargetFrameworks. Es funktioniert nicht bei Konsolenanwendungen, Klassenbibliotheken, ASP.NET CoreProjekten oder MAUI-Anwendungen für Windows.
Scanbot ist als Produkt konzipiert, bei dem die Kamera im Vordergrund steht. Die gesamte API-Oberfläche ist auf das Live-Suchererlebnis ausgerichtet: Konfigurationsobjekte steuern, wie die Kamera-Benutzeroberfläche aussieht, auf welche Formate die Live-Video-Pipeline achtet und wie dem Benutzer Feedback übermittelt wird. Die Bibliothek bietet eine ausgereifte Scan-Komponente für mobile Apps von iOS- und Android-Nutzern sowie für Enterprise .
- Primäre Zielplattform: iOS- und Android-Mobilgeräte über das .NET MAUI Framework; Windows- und macOS-MAUI-Ziele werden nicht unterstützt.
- Eingabemodell: Ausschließlich Live-Kamerafeed – es gibt keine Überladungen für Dateipfade, Streams oder Byte-Arrays.
- API-Design:
BarcodeScanner.Open(configuration)übergibt die Kontrolle an eine Vollbild-Kamerafunktion und gibtOperationResultzurück, wenn der Benutzer einen Scan bestätigt oder abbricht. - Kamera-Benutzeroberfläche: Echtzeit-Sucher mit Scanbereich-Überlagerung, Taschenlampensteuerung, Seitenverhältnis-Konfiguration, Audio- und haptisches Feedback sowie Ausrichtungssperre
- Unterstützte Formate: Mehr als 20 eindimensionale Formate (Code 128, EAN-13, UPC und andere) und mehrere zweidimensionale Formate (QR, DataMatrix, PDF417, Aztec)
- Keine Dateiverarbeitung: Es gibt keinen Mechanismus zum Lesen eines Barcodes aus einer gespeicherten Bilddatei, einem Datenstrom oder einem PDF-Dokument.
- Keine Barcode-Generierung: Das SDK liest Barcodes; sie produziert sie nicht
- Lizenzmodell: Jährliche Pauschalgebühr; die jährlichen Kosten sind unabhängig vom Scanvolumen festgelegt
- Projekttypbeschränkung: Kann nicht in Konsolen-, Klassenbibliotheks-, ASP.NET Core, WPF-, WinForms-, Azure Functions- oder Docker-gehosteten Projekten kompiliert werden.
Die Kamera-Pipeline-Architektur
Die Architektur von Scanbot erfordert eine Initialisierung beim Start der App, gefolgt von einem kameragesteuerten Scanaufruf. Es gibt keine Überladung von BarcodeScanner.Open(), die einen Dateipfad oder Stream akzeptiert; Die Methodensignatur erfordert einen BarcodeScannerConfiguration, da der gesamte Vorgang kameragesteuert ist:
// 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
Das SDK verarbeitet Live-Videobilder in Echtzeit, hebt erkannte Barcodes im Sucher hervor und gibt eine Rückmeldung, wenn ein Barcode bestätigt wird oder der Benutzer abbricht. Das Konfigurationsobjekt steuert das Erscheinungsbild der Kamera-Benutzeroberfläche, nicht das Verarbeitungsverhalten. Das ist das vollständige Modell.
IronBarcode verstehen
IronBarcode ist eine kommerzielle .NET Bibliothek zum Lesen und Generieren von Barcodes, die von Iron Software entwickelt wurde. Es arbeitet mit einem Dateiverarbeitungsmodell: Eingabequellen sind Dateipfade, Datenströme, Byte-Arrays und PDF-Dokumente. Es gibt keine Kamera-Benutzeroberfläche und keine Anforderung an mobile Hardware. Die Bibliothek läuft in jedem .NET Projekttyp.
Die statische Methode BarcodeReader.Read() von IronBarcode akzeptiert jeden vom aufrufenden Code bereitgestellten Quellcode, unabhängig davon, wie dieser Quellcode erzeugt wurde. Eine per HTTP hochgeladene Datei, ein PDF auf der Festplatte, ein Bild aus dem Blob-Speicher oder ein aus einer Base64-Zeichenkette dekodiertes Byte-Array sind allesamt gleichwertige Eingaben. Die Bibliothek gibt eine Sammlung dekodierter Ergebnisse zurück, die jeweils den Barcode-Wert, das Format und gegebenenfalls die Seitenzahl enthalten.
- Eingabequellen: Dateipfade, Datenströme, Byte-Arrays und PDF-Dokumente (native PDF-Analyse, keine Bildextraktion) Unterstützte Projekttypen: Konsolenanwendungen, ASP.NET Core, WPF, WinForms, Blazor Server, Azure Functions, AWS Lambda, Docker, Windows-Dienste, .NET MAUI (alle Zielplattformen, einschließlich Windows und macOS) und .NET Framework 4.6.2+
- Barcode-Generierung: Erzeugt Barcodes als Bilder oder eingebettet in HTML- und PDF-Dokumente
- Formatabdeckung: Über 30 eindimensionale und fünf zweidimensionale Formate, darunter QR, DataMatrix, PDF417, Aztecund MaxiCode
- Leseverbesserungen: Fehlerkorrektur und Wiederherstellung beschädigter Barcodes auf Basis von maschinellem Lernen für schwierige Bilder aus der realen Welt
- Konfigurationsobjekt:
BarcodeReaderOptionssteuert das Verarbeitungsverhalten (Geschwindigkeit, Mehrfach-Barcode-Erkennung) und nicht die Darstellung der Kamera-Benutzeroberfläche. - Lizenzmodell: Einmaliger Kauf mit unbefristeter Lizenz in vier Stufen (Lite 749 $, Plus 1.499 $, Professional 2.999 $, Unlimited 5.999 $); keine jährliche Erneuerung erforderlich
Funktionsvergleich
Die folgende Tabelle verdeutlicht die grundlegenden Unterschiede zwischen Scanbot SDKund IronBarcode:
| Feature | Scanbot SDK | IronBarcode |
|---|---|---|
| Primärer Anwendungsfall | Live-Kamera-Barcode-Scanning auf dem Mobilgerät | Lesen und Generieren von Datei- und Dokumenten-Barcodes |
| Eingabemodell | Nur Kamerabild des Geräts | Dateipfad, Datenstrom, Byte-Array, PDF |
| Windows, Linux, macOS, Docker, Azure, AWS. | Nur für iOS und Android MAUI | Alle .NET -Plattformen und Projekttypen |
| Barcode-Generierung | Nein | Ja |
| PDF-Barcode-Extraktion | Nein | Ja |
| Lizenzierungsmodell | Jährliche Pauschalgebühr | Einmalig, ewig |
| Benutzeroberfläche der Live-Kamera | Ja – polierte Sucherkomponente | Nein (verwenden Sie MediaPicker für die Fotoaufnahme). |
Detaillierter Funktionsvergleich
| Feature | Scanbot SDK | IronBarcode |
|---|---|---|
| Lektüre | ||
| Eingabe aus Dateipfad | Nein | Ja |
| Eingabe aus dem Stream | Nein | Ja |
| Eingabe aus Byte-Array | Nein | Ja |
| PDF-Barcode-Extraktion | Nein | Ja |
| Live-Kamera-Sucher | Ja | Nein |
| Echtzeit-Frame-Scanning | Ja | Nein |
| Automatische Formaterkennung | Ja | Ja |
| ML-Fehlerkorrektur | Nein | Ja |
| Wiederherstellung beschädigter Barcodes | Nein | Ja |
| 1D-Format-Anzahl | 20+ | 30+ |
| 2D-Format-Anzahl | QR, DataMatrix, PDF417, Aztec | QR, DataMatrix, PDF417, Aztec, MaxiCode |
| Generation | ||
| Barcode-Generierung | Nein | Ja |
| Plattform | ||
| iOS MAUI | Ja | Ja |
| Android MAUI | Ja | Ja |
| Windows MAUI | Nein | Ja |
| macOS MAUI | Nein | Ja |
| Konsolenanwendung | Nein | Ja |
| ASP.NET Core | Nein | Ja |
| Blazor -Server | Nein | Ja |
| WPF-Anwendung | Nein | Ja |
| WinForms-Anwendung | Nein | Ja |
| Azure-Funktionen | Nein | Ja |
| AWS Lambda | Nein | Ja |
| Docker/Linux | Nein | Ja |
| Windows-Dienst | Nein | Ja |
| .NET Framework 4.6.2+ | Nein | Ja |
| Lizenzierung | ||
| Lizenzmodell | Jährliche Pauschalgebühr | Einmalig, ewig |
| Veröffentlichte Preise | Kontakt zum Vertrieb | Ja (749–5.999 US-Dollar) |
| Mengenrabatte | Nicht zutreffend (Pauschalgebühr) | Nicht verfügbar (dauerhafte Stufen) |
Architektur: Kamera-Pipeline vs. Dateiverarbeitung
Der bedeutendste Unterschied zwischen Scanbot SDKund IronBarcode besteht nicht in fehlenden Funktionen, sondern in einem grundlegenden architektonischen Unterschied in der Art und Weise, wie die jeweilige Bibliothek ihre Eingabe konzeptualisiert.
Scanbot SDK-Ansatz
Die Architektur von Scanbot basiert auf einer nativen Kamera-Pipeline. Beim Aufruf von BarcodeScanner.Open(configuration) übergibt die Bibliothek die Steuerung an eine Vollbild-Kamerafunktion, die von den nativen Kamera-APIs des Geräts unter iOS und Android unterstützt wird. Die Bibliothek verarbeitet kontinuierlich Live-Videobilder, wendet auf jedes Bild eine Barcode-Erkennung an und gibt die Kontrolle an die aufrufende Anwendung zurück, wenn ein Barcode bestätigt wird oder der Benutzer den Scanner abschaltet. Im Scanbot-Modell gibt es kein Konzept eines statischen Bildes – die Eingabe ist immer ein Strom von Live-Videobildern von der Gerätekamera.
Dieses Design sorgt für ein optimales Scan-Erlebnis: Echtzeit-Barcodes werden im Sucher hervorgehoben, der Scanbereich ist konfigurierbar mit Steuerung des Seitenverhältnisses, die Taschenlampe kann umgeschaltet werden, es gibt akustisches und haptisches Feedback sowie eine Ausrichtungssperre. Dies sind UI-Funktionen, in die Scanbot für den Anwendungsfall der mobilen Kamera investiert hat. Der Kompromiss besteht darin, dass die Bibliothek untrennbar mit der Kamerahardware und dem mobilen Betriebssystem, das sie steuert, verbunden ist.
IronBarcode Ansatz
IronBarcode akzeptiert jede binäre Darstellung eines Barcode-haltigen Bildes und gibt dekodierte Ergebnisse über dieselbe statische Methode zurück, unabhängig davon, wie das Bild erzeugt wurde:
// 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)
Derselbe Aufruf wird in einer Konsolenanwendung, einem ASP.NET CoreController, einer Azure-Funktion, einem WPF-Formular oder einer MAUI-Seite ausgeführt. IronBarcode liest Barcodes nativ aus PDFs – nicht als aus PDFs extrahierte Bilder, sondern durch direktes Parsen der PDF-Struktur und Auffinden von Barcodes auf jeder Seite.
Plattform- und Bereitstellungsabdeckung
Der Plattformumfang des Scanbot SDKist durch die Ziele, die sein NuGet Paket unterstützt, festgelegt. Der Gültigkeitsbereich von IronBarcode entspricht dem der .NET -Laufzeitumgebung selbst.
Scanbot SDK-Ansatz
Das Scanbot-Paket zielt auf net8.0-android und net8.0-ios ab. Ein .NET MAUI Application Projekt, das nur diese beiden Ziele deklariert, wird erfolgreich erstellt. Wenn jedoch net8.0-windows oder net8.0-maccatalyst zu TargetFrameworks hinzugefügt wird, kann die Scanbot-Paketreferenz für diese Ziele nicht aufgelöst werden. Dies ist kein Konfigurationsproblem – das Paket stellt keine Assemblies für Windows oder macOS bereit. Der Fehler tritt beim ersten Build-Versuch auf dem Desktop-Ziel auf, nicht bei der NuGet -Installation.
Diese Einschränkung bedeutet, dass Scanbot strukturell inkompatibel mit MAUI-Projekten mit mehreren Zielplattformen ist, die Desktop-Plattformen umfassen, und dass es unabhängig von der Framework-Version in keinem Nicht-MAUI-Server- oder Desktop-Projekttyp verwendet werden kann.
IronBarcode Ansatz
IronBarcode wird als einzelnes NuGet Paket verteilt, das in allen .NET Projekttypen und Zielframeworks korrekt aufgelöst wird:
// 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
Für MAUI-Anwendungen, die auch Windows- oder macOS-Desktop-Anwendungen anvisieren , unterstützt IronBarcode alle vier MAUI-Ziele über eine einzige Paketreferenz ohne plattformabhängige Konfiguration. Teams, die ein MAUI-Projekt erstellen, das auf iOS, Android und Windows abzielt, können IronBarcode einmal hinzufügen und BarcodeReader.Read() auf allen drei Plattformen ohne Änderungen verwenden.
MAUI-Integrationsmuster
Beide Bibliotheken können in .NET MAUI -Projekten verwendet werden, das Integrationsmuster unterscheidet sich jedoch erheblich aufgrund des jeweiligen Eingabemodells der Bibliothek.
Scanbot SDK-Ansatz
In einem MAUI-Projekt für iOS und Android bietet Scanbot einen nativen Kamera-Sucher, der in den Navigationsablauf der App integriert ist. Der Aufruf BarcodeScanner.Open() öffnet den Vollbildscanner, und das Ergebnis kehrt zur aufrufenden Seite zurück, wenn der Benutzer den Scanvorgang abschließt oder verwirft. Durch diese Integration erhält die mobile Anwendung eine spezielle Scan-Benutzeroberfläche, die sich nahtlos in die Plattform einfügt.
Die Einschränkung zeigt sich bei der Erweiterung des Projekts. Das Hinzufügen eines Windows- oder macOS-Ziels zum MAUI-Projekt führt auf diesen Plattformen zu einem Build-Fehler. Das Hinzufügen einer serverseitigen Komponente, die eine Barcode-Verarbeitung benötigt, erfordert eine separate Bibliothek. Die Scanbot-Abhängigkeit kann dem Projekt nicht über iOS und Android hinaus folgen.
IronBarcode Ansatz
In einem MAUI-Projekt arbeitet IronBarcode mit der Plattform MediaPicker zusammen, um Fotos aufzunehmen und Barcodes aus den resultierenden Bildern zu lesen. Der Scan-Workflow nutzt die Systemkamera anstelle eines benutzerdefinierten Suchers:
// Works on iOS, Android, Windows, and macOS 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, and macOS 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
Der Clou ist die Live-Sucheranzeige. Der Benutzer sieht die Systemkamera-Benutzeroberfläche anstelle eines benutzerdefinierten Scanbereichs, was für Geschäftsanwendungen, bei denen eine einfache Punkt-und-Aufnahme ausreicht, ausreichend ist. Das .NET MAUI Barcode-Scanner-Tutorial behandelt das vollständige MAUI-Integrationsmuster für iOS- und Android -Ziele, einschließlich Berechtigungsverwaltung und Projektkonfiguration.
Lizenzmodell
Scanbot SDK und IronBarcode verwenden grundlegend unterschiedliche kommerzielle Lizenzstrukturen.
Scanbot-Ansatz
Scanbot arbeitet mit einem jährlichen Pauschalgebührenmodell. Die jährlichen Lizenzkosten sind unabhängig vom Scanvolumen fix – egal ob 100 Scans pro Jahr oder 10 Millionen Scans pro Jahr, die Gebühr ist immer gleich. Dies ermöglicht eine planbare jährliche Budgetierung für Teams mit stabilen, ausschließlich mobilen Anwendungen. Für genaue Preisinformationen wenden Sie sich bitte an das Vertriebsteam von Scanbot. Veröffentlichte Zahlen liegen nicht vor. Die jährliche Verlängerungspflicht bedeutet, dass die Lizenz laufende Betriebskosten verursacht.
IronBarcode Ansatz
IronBarcode wird als einmaliger, unbefristeter Kauf in vier Stufen angeboten: Lite für 749 $, Plus für 1.499 $, Professional für 2.999 $ und Unlimited für 5.999 $. Für die weitere Nutzung der erworbenen Version ist keine jährliche Verlängerung erforderlich. Software-Updates innerhalb der Lizenzlaufzeit sind inbegriffen. Die Preise werden auf der Website von Iron Software veröffentlicht, ohne dass ein Verkaufsgespräch erforderlich ist.
API-Mapping-Referenz
Teams, die die architektonischen Unterschiede zwischen den beiden Bibliotheken bewerten, werden diese Zuordnung als hilfreich empfinden, um die konzeptionellen Äquivalenzen zu verstehen:
| 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 |
Prüfen Sie results.Any() oder results.FirstOrDefault() != null |
result.Barcodes |
Rückgabewert von BarcodeReader.Read() |
barcode.Format |
result.Format (IronBarCode.BarcodeEncoding) |
barcode.Text |
result.Value |
BarcodeFormat.Code128 |
BarcodeEncoding.Code128 |
BarcodeFormat.QrCode |
BarcodeEncoding.QRCode |
BarcodeFormat.Ean13 |
BarcodeEncoding.EAN13 |
BarcodeScannerConfiguration.FinderAspectRatio |
Kein Äquivalent – Bildrahmen wird von MediaPicker übernommen. |
BarcodeScannerConfiguration.FlashEnabled |
Keine Entsprechung – verwenden Sie die MediaPicker-Optionen. |
| Nur Kameraeingang | Dateipfad, Datenstrom, Byte-Array oder PDF |
| Nur für iOS und Android MAUI | Alle .NET -Plattformen |
Wenn Teams einen Wechsel vom Scanbot SDKzu IronBarcode erwägen
Verschiedene Situationen veranlassen Entwicklungsteams häufig dazu, IronBarcode entweder als Ersatz oder als Ergänzung zum Scanbot SDKzu evaluieren.
Serverseitige und Backend-Verarbeitung
Eine mit Scanbot erstellte mobile App existiert oft zusammen mit einer serverseitigen Komponente, die Dokumenten-Uploads, Batch-Jobs oder API-Endpunkte verarbeitet. Wenn diese serverseitige Komponente eine Barcode-Verarbeitung benötigt – z. B. das Extrahieren von Barcodes aus hochgeladenen PDFs, das Validieren von Barcode-Werten in eingehenden Dokumenten oder das Verarbeiten von Barcode-Daten aus Bildanhängen –, steht Scanbot nicht zur Verfügung. Das Paket lässt sich weder in ASP.NET Core, Azure Functions, Konsolenanwendungen noch in anderen Nicht-MAUI-Projekten kompilieren. Teams in dieser Situation stehen vor der Wahl, entweder eine Abhängigkeit von mobilen Barcodes zu pflegen und gleichzeitig eine separate serverseitige Barcode-Lösung zu betreiben oder zu prüfen, ob IronBarcode beide Aufgaben mit einem einzigen Paket abdecken kann.
Anforderungen an Desktop-Anwendungen
Das Wertversprechen von MAUI besteht oft in der plattformübergreifenden Abdeckung: eine einzige Codebasis, die auf iOS, Android und Windows abzielt. Wenn das Windows MAUI-Ziel in die Roadmap aufgenommen wird – entweder durch anfängliche Anforderungen oder als spätere Ergänzung –, kann das Scanbot-Paket auf diesem Ziel nicht aufgelöst werden. Der Windows-Build kann nicht ausgeführt werden, wenn Scanbot in der Abhängigkeitsliste enthalten ist. Teams bemerken dies beim ersten Versuch, die Desktop-Version zu erstellen. Die Lösung besteht darin, Scanbot aus der Liste der gemeinsamen Abhängigkeiten zu entfernen. Für Teams, die unbedingt die Windows-Desktop-Version benötigen, ist IronBarcode die einzige Option unter den mobilen Barcode-Bibliotheken, die auch die Desktop-Plattform unterstützt.
PDF- und Dokumenten-Workflows
Anwendungen, die vom Live-Scannen zur Dokumentenautomatisierung übergehen, stoßen mit Scanbot an eine Leistungsgrenze. Das Auslesen von Barcodes aus einer PDF-Rechnung, das Extrahieren von Tracking-Codes aus einem gescannten Versandetikettenbild oder die Verarbeitung von Barcode-Daten aus einem archivierten Dokument – keiner dieser Arbeitsabläufe ist mit dem Scanbot-Modell möglich, da die Eingabe immer ein Live-Kamerabild sein muss. IronBarcode verarbeitet all diese dateibasierten Eingaben nativ. Das gleiche Paket, das in der MAUI-Mobil-App läuft, kann Barcodes aus PDF-Dokumenten in einem Hintergrundverarbeitungsjob extrahieren, ohne dass zusätzliche Abhängigkeiten erforderlich sind.
Vorhersehbare Lizenzkosten
Die jährlichen Verlängerungskosten erfordern eine Neubewertung bei jedem Verlängerungszyklus. Teams, die mit Scanbot im Rahmen einer kleinen mobilen Implementierung begonnen und diese auf eine breitere Implementierung mit mehr Benutzern oder Plattformen ausgeweitet haben, finden die jährliche Gebühr möglicherweise weniger günstig, wenn der Umfang wächst. Das Einmal-Dauerlizenzmodell von IronBarcode beseitigt die Verpflichtung zur Erneuerung. Teams, die Evaluierungen zur Lizenzverlängerung durchführen, überlegen oft, ob ein einmaliger Kauf besser zu ihrer langfristigen Kostenplanung passt, insbesondere wenn der erweiterte Projektumfang serverseitige oder Desktop-Plattformen umfasst, die ohnehin nicht von Scanbot abgedeckt werden.
Gemeinsame Überlegungen zur Migration
Teams, die von Scanbot SDKauf IronBarcode umsteigen, sollten sich auf verschiedene technische Unterschiede einstellen, die während des Übergangs auftreten.
Kein gleichwertiger Live-Sucher
Der Echtzeit-Kamerasucher von Scanbot – mit Scanbereichsüberlagerung, kontinuierlicher Erkennung und haptischem Feedback – hat kein direktes Äquivalent in IronBarcode. Das Ersatzmuster verwendet MAUIs MediaPicker.CapturePhotoAsync(), um die Systemkamera zu öffnen, ein Foto aufzunehmen und das Bild zur Verarbeitung zurückzugeben. Die Benutzererfahrung ist eher ein Fotoaufnahmeprozess als ein kontinuierlicher Scanvorgang. Für Geschäftsanwendungen (Inventur, Logistik, Dokumentenverarbeitung) ist dieser Unterschied selten von Bedeutung. Bei Verbraucher-Apps, bei denen das Live-Overlay ein zentraler Bestandteil des Produkterlebnisses ist, stellt dies einen echten Unterschied in der Benutzererfahrung dar, der vor der Migration bewertet werden sollte.
Ereignis-Callback-Muster zur direkten Rückgabe
Scanbots BarcodeScanner.Open() ist asynchron und gibt ein OperationResult mit einem Statusfeld und einer Barcodes Sammlung zurück. IronBarcode's BarcodeReader.Read() gibt direkt eine Sammlung zurück – es gibt kein Wrapper-Objekt mit einem Statusfeld. Die Erfolgsprüfung ändert sich von result.Status == OperationResult.Okzu results.Any() oder es wird eine Nullprüfung für results.FirstOrDefault() durchgeführt.
Format Enum Namespace ändern
Die Enumerationen BarcodeFormat von Scanbot (z. B. BarcodeFormat.Code128) und BarcodeEncoding von IronBarcode (z. B. BarcodeEncoding.Code128) enthalten ähnliche Elemente, sind aber unterschiedliche Typen in verschiedenen Namensräumen. Code, der Formatwerte anhand des Enum-Typs speichert oder vergleicht, erfordert eine Aktualisierung der Typreferenz. Zeichenkettenvergleiche, die auf der Ausgabe .ToString() basieren, sind im Allgemeinen kompatibel, da die Membernamen ähnlich sind. Explizite Enum-Typvergleiche erfordern jedoch eine Aktualisierung auf BarcodeEncoding Werte.
Windows Build-Ergänzungen
Falls das Scanbot-Paket vor der Migration zu Build-Fehlern bei Windows MAUIgeführt hat, behebt dessen Entfernung diese Fehler. Nach dem Hinzufügen von IronBarcode sollten Sie überprüfen, ob Windows-spezifische Funktionen – Dateiauswahldialoge, lokale Dateipfade, Windows-Berechtigungen – im MAUI-App-Code angemessen behandelt werden, da diese sich von den Dateizugriffsmustern von iOS und Android unterscheiden.
Zusätzliche IronBarcode Funktionen
Über die in diesem Vergleich behandelten Kernszenarien hinaus bietet IronBarcode Funktionen, die mit zunehmender Projektgröße relevant werden:
- Barcode-Generierung: Erstellen Sie Barcodes in allen gängigen eindimensionalen und zweidimensionalen Formaten als Bilddateien, Datenströme oder eingebettete Inhalte in HTML- und PDF-Dokumenten.
- Dokumentenverarbeitung mit mehreren Barcodes: Lesen Sie in einem einzigen Aufruf alle Barcodes auf jeder Seite eines mehrseitigen PDFs ein, wobei jedes Ergebnis die Seitenzahl enthält, auf der der Barcode gefunden wurde.
- Maschinelles Lernen zur Fehlerkorrektur: Wiederherstellung von Barcodes aus beschädigten, teilweise verdeckten oder kontrastarmen Bildern, die von Standarderkennungsalgorithmen nicht dekodiert werden können.
- Stapelbildverarbeitung: Verarbeitung von Arrays von Bildpfaden oder -strömen in einem einzigen Vorgang für Dokumenten-Workflows mit hohem Durchsatz
- Optimierung der BarcodeReaderOptions: Steuerung der Lesegeschwindigkeit, der Mehrfach-Barcode-Erkennung, der Formatfilterung und der Bildvorverarbeitung, um Durchsatz und Genauigkeit für spezifische Anwendungsfälle auszubalancieren.
- iOS MAUI-Integration : Volle Unterstützung für das Lesen von Barcodes in iOS MAUI-Anwendungen mithilfe des MediaPicker-Musters
- Android MAUI-Integration : Volle Unterstützung für das Lesen von Barcodes in Android MAUI-Anwendungen mit derselben API wie unter iOS.
.NET-Kompatibilität und Zukunftsfähigkeit
IronBarcode unterstützt .NET 6, .NET 7, .NET 8 und .NET 9 sowie .NET Framework 4.6.2 und höher. Die Bibliothek erhält regelmäßige Updates, die auf den .NET -Releasezyklus abgestimmt sind, um die Kompatibilität mit .NET 10, das für Ende 2026 erwartet wird, und zukünftigen Versionen zu gewährleisten. Da IronBarcode eine Dateiverarbeitungsbibliothek und kein plattformspezifisches Kamera-SDK ist, ist es nicht von mobilen Betriebssystem-APIs oder Hardwarefunktionen abhängig, was bedeutet, dass seine Kompatibilitätsfläche mit dem .NET Ökosystem wächst und nicht durch die Supportzyklen mobiler Plattformen begrenzt wird.
Abschluss
Scanbot SDK und IronBarcode gehören unterschiedlichen Produktkategorien an, die alle die Bezeichnung "Barcode SDK" tragen. Scanbot ist eine mobile Kamera-Scankomponente, die ein ausgereiftes Live-Sucher-Erlebnis für iOS- und Android-Anwendungen bietet. IronBarcode ist eine Datei- und Dokumentenverarbeitungsbibliothek, die Barcodes für alle .NET Projekttypen und Bereitstellungsziele lesen und generieren kann. Der Vergleich bezieht sich auf Umfang und Architektur, nicht auf die Qualität innerhalb des jeweiligen Anwendungsbereichs der Bibliothek.
Das Scanbot SDKist innerhalb seines definierten Anwendungsbereichs wirklich leistungsstark. Für mobile Anwendungen im Konsum- und Enterprise , bei denen der Benutzer die Kamera seines Geräts direkt auf einen physischen Barcode richtet und visuelles Echtzeit-Feedback erwartet – Einzelhandel, Ticketing, Lagersuche – sind die Kamerapipeline und die optimierte Sucherkomponente von Scanbot speziell für dieses Interaktionsmodell entwickelt worden. Wenn der Einsatz ausschließlich auf iOS- und Android-Mobilgeräten erfolgt, das Live-Scannen im Mittelpunkt des Produkts steht und die jährliche Pauschalgebühr ins Budget passt, ist Scanbot eine vernünftige Wahl für diesen eng begrenzten und klar definierten Anwendungsfall.
IronBarcode ist dann geeignet, wenn die Anforderungen an die Barcode-Verarbeitung über das Live-Kamera-Szenario hinausgehen. Serverseitige Dokumentenverarbeitung, ASP.NET CoreEndpunkte, die Datei-Uploads akzeptieren, Desktop-Anwendungen unter Windows oder macOS, Azure Functions, die durch Blob-Speicher ausgelöst werden, Multi-Target-MAUI-Projekte, die Desktop-Plattformen umfassen, und Batch-PDF-Verarbeitungsaufträge fallen alle in den nativen Anwendungsbereich von IronBarcode. Das einzelne Paket wird ohne plattformabhängige Konfiguration installiert und bietet unabhängig davon, ob der Code auf einem Mobilgerät, einem Server oder einem Desktop-Rechner ausgeführt wird, denselben BarcodeReader.Read()-Aufruf.
Für Teams, deren Anforderungen sowohl das Scannen mit mobilen Kameras in Echtzeit als auch die Datei- oder Serververarbeitung umfassen, ist die architektonisch sauberste Lösung die Verwendung von Scanbot für die Benutzeroberfläche der mobilen Kamera und IronBarcode für alles andere. Der Preis für diesen Ansatz sind zwei Barcode-Abhängigkeiten und zwei Lizenzvereinbarungen. Für Teams, die bereit sind, die Systemkamera anstelle eines benutzerdefinierten Suchers für die mobile Scan-Interaktion zu akzeptieren, kann IronBarcode allein den gesamten Projektumfang abdecken – von der MAUI-Mobil-App über die Server-API bis hin zur Windows-Desktop-Begleitsoftware – mit einem einzigen Paket und einer einzigen Lizenz.
Häufig gestellte Fragen
Was ist Scanbot SDK?
Scanbot SDK ist eine .NET Barcode-Bibliothek zum Erzeugen und Lesen von Barcodes in C#-Anwendungen. Es ist eine von mehreren Alternativen, die Entwickler bei der Auswahl einer Barcode-Lösung für .NET-Projekte in Betracht ziehen.
Was sind die Hauptunterschiede zwischen Scanbot SDK und IronBarcode?
IronBarcode verwendet eine statische, zustandslose API, die keine Instanzverwaltung erfordert, während Scanbot SDK in der Regel eine Instanzerstellung und -konfiguration vor der Verwendung erfordert. IronBarcode bietet außerdem native PDF-Unterstützung, automatische Formaterkennung und Single-Key-Lizenzierung in allen Umgebungen.
Ist IronBarcode einfacher zu lizenzieren als Scanbot SDK?
IronBarcode verwendet einen einzigen Lizenzschlüssel, der sowohl die Entwicklungs- als auch die Produktionsbereitstellung abdeckt. Dies vereinfacht CI/CD-Pipelines und Docker-Konfigurationen im Vergleich zu Lizenzierungssystemen, die SDK-Schlüssel von Laufzeitschlüsseln trennen.
Unterstützt IronBarcode alle Barcode-Formate, die Scanbot SDK unterstützt?
IronBarcode unterstützt über 30 Barcode-Symbologien, darunter QR Code, Code 128, Code 39, DataMatrix, PDF417, Aztec, EAN-13, UPC-A, GS1 und viele mehr. Die automatische Formaterkennung bedeutet, dass keine explizite Formataufzählung erforderlich ist.
Unterstützt IronBarcode das native Lesen von PDF-Barcodes?
Ja, IronBarcode liest Barcodes direkt aus PDF-Dateien mit BarcodeReader.Read("document.pdf"), ohne dass eine separate PDF-Rendering-Bibliothek erforderlich ist. Die seitenweisen Ergebnisse umfassen Seitenzahl, Barcodeformat, Wert und Konfidenzwert.
Wie handhabt IronBarcode die Stapelverarbeitung im Vergleich zu Scanbot SDK?
Die statischen Methoden von IronBarcode sind zustandslos und natürlich thread-sicher, was die direkte Verwendung von Parallel.ForEach ohne Instanzverwaltung pro Thread ermöglicht. Es gibt auf keiner Preisstufe eine Obergrenze für den Durchsatz.
Welche .NET Versionen werden von IronBarcode unterstützt?
IronBarcode unterstützt .NET Framework 4.6.2+, .NET Core 3.1 und .NET 5, 6, 7, 8 und 9 in einem einzigen NuGet-Paket. Zu den Zielplattformen gehören Windows x64/x86, Linux x64 und macOS x64/ARM.
Wie installiere ich IronBarcode in einem .NET-Projekt?
Installieren Sie IronBarcode über NuGet: Führen Sie "Install-Package IronBarCode" in der Paketmanager-Konsole oder "dotnet add package IronBarCode" in der CLI aus. Es sind keine zusätzlichen SDK-Installationsprogramme oder Laufzeitdateien erforderlich.
Kann ich IronBarcode vor dem Kauf testen, im Gegensatz zu Scanbot?
Ja, der Testmodus von IronBarcode liefert vollständige dekodierte Barcodewerte - nur die erzeugten Ausgabebilder erhalten ein Wasserzeichen. Sie können die Lesegenauigkeit an Ihren eigenen Dokumenten testen, bevor Sie sich zum Kauf verpflichten.
Was ist der Preisunterschied zwischen Scanbot SDK und IronBarcode?
Die Preise für IronBarcode beginnen bei 749 US-Dollar für eine unbefristete Einzelentwicklerlizenz für Entwicklung und Produktion. Preisdetails und Volumenoptionen sind auf der IronBarcode-Lizenzierungsseite verfügbar. Es ist keine separate Runtime-Lizenz erforderlich.
Ist der Umstieg von Scanbot SDK auf IronBarcode einfach?
Bei der Migration von Scanbot SDK zu IronBarcode geht es in erster Linie darum, instanzbasierte API-Aufrufe durch die statischen Methoden von IronBarcode zu ersetzen, Standardformulierungen für die Lizenzierung zu entfernen und die Namen der Ergebniseigenschaften zu aktualisieren. Bei den meisten Migrationen wird eher Code reduziert als hinzugefügt.
Kann IronBarcode QR-Codes mit Logos generieren?
Ja. QRCodeWriter.CreateQrCode().AddBrandLogo("logo.png") bettet ein Markenbild nativ in einen QR-Code mit konfigurierbarer Fehlerkorrektur ein. Farbige QR-Codes werden auch über ChangeBarCodeColor() unterstützt.

