Neodynamic Barcode Professional vs IronBarcode: C# Barcode Bibliothek Vergleich
Scanbot SDKvs IronBarcode: Kamerastapel vs. Dateiverarbeitung
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 Kamerasteuerung, die native iOS-, Android- und UWP/WinUI 3-Scan-APIs in eine Sucherkomponente integriert. ScanbotSDKMain.Barcode.StartScannerAsync(configuration) übergibt die Kontrolle an eine Vollbildkamera-Erfahrung, der Benutzer richtet das Gerät auf einen Barcode, das SDK erkennt ihn im Live-Video-Feed, und das Ergebnis wird an Ihre App zurückgegeben. Der Vergleich ist wichtig, da der Name des NuGet-Pakets — ScanbotBarcodeSDK.MAUI — und die Produktkategorie — "Barcode-SDK" — Entwickler dazu bringen können, es für die serverseitige Dokumentenverarbeitung, WPF-Desktopanwendungen oder ASP.NET Core-APIs zu evaluieren. Dieser Artikel erklärt den architektonischen Unterschied zwischen den beiden Tools und für welchen Zweck jedes entwickelt wurde.
Scanbot SDKverstehen
Das Scanbot SDKist ein kommerzielles Barcode-Scan-SDK, das von doo GmbH entwickelt wurde. Sein primäres .NET-Angebot ist ScanbotBarcodeSDK.MAUI (v8.0.0), ein Paket, das auf net9.0-android und net9.0-ios abzielt. Ein separates Paket, Scanbot.BarcodeSDK.Windows (v7.0.0), umfasst UWP- und WinUI-3-Desktopanwendungen auf Windows 10 1809+ (x64) mit einer Autofokus-Kamera. Alle unterstützten Ziele sind kameragebunden — das SDK wird nicht mit einer Konsolen-App, einer Klassenbibliothek, einem ASP.NET Core-Projekt oder einer MAUI-App, die auf macOS abzielt, zusammenarbeiten.
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 liefert eine Scan-Komponente für iOS-, Android- und Windows (UWP/WinUI 3) Verbraucher- und Enterprise-Apps.
- Primäre Plattform-Ziele: iOS und Android über .NET MAUI, plus UWP/WinUI 3 auf Windows 10 1809+ über das separate
Scanbot.BarcodeSDK.WindowsPaket; 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:
ScanbotSDKMain.Barcode.StartScannerAsync(configuration)übergibt die Kontrolle an eine Vollbildkamera-Erfahrung und gibt ein Ergebnis mitIsSuccessund einerValue.ItemsSammlung zurück. - 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
- Projektart-Scope: Die unterstützten NuGet-Pakete zielen auf kameragebundene Laufzeiten (MAUI iOS/Android und UWP/WinUI 3); Konsolen-, Klassenbibliothek-, ASP.NET Core-, WPF-, WinForms-, Azure Functions- und Docker-Server-Hosts liegen außerhalb dieses Zielsetzes
Die Kamera-Pipeline-Architektur
Die Architektur von Scanbot erfordert eine Initialisierung beim Start der App, gefolgt von einem kameragesteuerten Scanaufruf. Die Scanner-Methode erfordert einen BarcodeScannerScreenConfiguration, da der gesamte Vorgang kameragesteuert ist:
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
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 BarcodeReader.Read() Methode von IronBarcode akzeptiert jede Quelle, die der aufrufende Code bereitstellt, unabhängig davon, wie diese Quelle 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) statt des Erscheinungsbildes der Kamera-UI. - 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. | iOS/Android MAUI und UWP/WinUI 3 (kameraabhängig) | 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 |
| UWP / WinUI 3 (mit Kamera) | Ja (separates Windows-Paket) | Ja |
| Konsolenanwendung | Nein | Ja |
| ASP.NET Core | Nein | Ja |
| Blazor -Server | Nein | Ja |
| WPF-Anwendung | Nein | Ja |
| WinForms-Anwendung | Nein | Ja |
| Azure Functions | 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
Scanbots Architektur basiert auf einer nativen Kamera-Pipeline. Wenn ScanbotSDKMain.Barcode.StartScannerAsync(configuration) aufgerufen wird, übergibt die Bibliothek die Kontrolle an eine Vollbildkamera-Erfahrung, die von den nativen Kamera-APIs des Geräts auf iOS, Android oder Windows betrieben 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 erzeugt ein Scan-Erlebnis mit Echtzeit-Barcodes, die im Sucher hervorgehoben werden, konfigurierbarem Scanbereich mit Seitenverhältniskontrolle, Taschenlampenumschaltung, Audio- und haptischem Feedback und Ausrichtungsverriegelung. Dies sind UI-Funktionen, die für den Kameraanwendungsfall gebaut wurden. Der Kompromiss besteht darin, dass die Bibliothek untrennbar mit der Kamerahardware und dem sie steuernden Betriebssystem 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 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)
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 MAUI-Paket zielt auf net9.0-android und net9.0-ios. Ein .NET MAUI Application Projekt, das nur diese beiden Ziele deklariert, wird erfolgreich erstellt. Wenn jedoch net9.0-maccatalyst oder ein Windows MAUI-Ziel zu TargetFrameworks hinzugefügt wird, kann die Scanbot MAUI-Paketreferenz in diesen Zielen nicht aufgelöst werden. Dies ist kein Konfigurationsproblem — das MAUI-Paket bietet keine Assemblies für Windows oder macOS MAUI. Für Windows-Desktops gilt das separate Scanbot.BarcodeSDK.Windows Paket für UWP/WinUI 3-Anwendungen mit Autofokus-Kamera.
Das Ergebnis ist, dass das .NET-Paketset von Scanbot auf MAUI-Mobilgeräte und UWP/WinUI 3-Desktop abzielt, anstatt auf Server oder nicht-kameraorientierte Desktop-Projekttypen.
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 BarCode
# Same package, same API — works in ASP.NET Core, WPF, console, MAUI, Azure Functions
dotnet add package BarCode
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 entwickeln, das iOS, Android und Windows als Ziel hat, können IronBarcode einmal hinzufügen und BarcodeReader.Read() auf allen drei Plattformen ohne Modifikation nutzen.
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 ScanbotSDKMain.Barcode.StartScannerAsync() Aufruf präsentiert den Vollbild-Scanner und das Ergebnis wird an die aufrufende Seite zurückgegeben, wenn der Benutzer den Scan abschließt oder abbricht. Diese Integration verleiht der mobilen Anwendung eine Scan-UI, die sich für die Plattform originär anfühlt.
Die Einschränkung zeigt sich bei der Erweiterung des Projekts. Das Hinzufügen eines macOS- oder eines Windows MAUI-Ziels führt zu einem Build-Fehler auf diesen Plattformen (Windows-Desktops werden stattdessen durch das separate Scanbot.BarcodeSDK.Windows Paket für UWP/WinUI 3-Anwendungen behandelt). Das Hinzufügen einer serverseitigen Komponente, die einen Kopf benötigt und die Barcode-Verarbeitung benötigt, erfordert eine separate Bibliothek — die Scanbot-Abhängigkeit kann dem Projekt nicht in ASP.NET Core, Azure Functionsoder Docker folgen.
IronBarcode Ansatz
In einem MAUI-Projekt arbeitet IronBarcode mit der MediaPicker der Plattform 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 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, and macOS 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
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 werden nicht nach Scanvolumen bemessen. 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 |
|---|---|
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 |
Prüfen Sie results.Any() oder results.FirstOrDefault() != null |
result.Value.Items |
Rückgabewert von BarcodeReader.Read() |
item.Barcode.Format |
result.Format (IronBarCode.BarcodeEncoding) |
item.Barcode.Text |
result.Value |
BarcodeFormat.Code128 |
BarcodeEncoding.Code128 |
BarcodeFormat.QrCode |
BarcodeEncoding.QRCode |
BarcodeFormat.Ean13 |
BarcodeEncoding.EAN13 |
| Kamerascannungsbereich / Seitenverhältniskonfiguration | Kein Äquivalent – Bildrahmen wird von MediaPicker übernommen. |
| Konfiguration des Kamera-Blitzes / Fackel | Keine Entsprechung – verwenden Sie die MediaPicker-Optionen. |
| Nur Kameraeingang | Dateipfad, Datenstrom, Byte-Array oder PDF |
| iOS/Android MAUI and UWP/WinUI 3 | 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 aus den ersten Anforderungen oder als spätere Ergänzung — kann das ScanbotBarcodeSDK.MAUI Paket auf diesem Ziel nicht aufgelöst werden, da Scanbot Windows mittels eines separaten UWP/WinUI 3 Pakets (Scanbot.BarcodeSDK.Windows) statt über Windows MAUIabdeckt. Teams, die einen einzigen Windows-Build-Pfad innerhalb eines multi-target MAUI-Projekts wollen oder die eine Windows-Komponente ohne Bildschirm (z.B. einen Windows-Dienst) benötigen, bekommen dies nicht aus Scanbots Paketset. IronBarcode liefert ein einzelnes Paket, das auf dem Windows-MAUI-Ziel auflöst und auch in headless-Desktop- und Serverkontexten läuft.
PDF- und Dokumenten-Workflows
Anwendungen, die vom Live-Scannen zur Dokumentenautomatisierung übergehen, stoßen mit Scanbot an eine Leistungsgrenze. Barcodes aus einer PDF-Rechnung lesen, Tracking-Codes aus einem gescannten Versandetikett-Bild extrahieren oder Barcodedaten aus einem archivierten Dokument verarbeiten, liegen außerhalb des Scanbot-Eingabemodells, das auf einen Live-Kamera-Feed aufgebaut ist. 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 MAUI's 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 ScanbotSDKMain.Barcode.StartScannerAsync() ist asynchron und gibt ein Ergebnis mit einer IsSuccess Flag und einer Value.Items Sammlung zurück. IronBarcodes BarcodeReader.Read() gibt direkt eine Sammlung zurück — es gibt kein Wrapper-Objekt mit einem Statusfeld. Die Erfolgskontrolle ändert sich von result.IsSuccess zu results.Any() oder einer Nullüberprüfung auf results.FirstOrDefault().
Format Enum Namespace ändern
Scanbots BarcodeFormat Enum (zum Beispiel, BarcodeFormat.Code128) und IronBarcodes BarcodeEncoding Enum (zum Beispiel, BarcodeEncoding.Code128) enthalten ähnliche Mitglieder, sind aber unterschiedliche Typen in verschiedenen Namespaces. Code, der Formatwerte anhand des Enum-Typs speichert oder vergleicht, erfordert eine Aktualisierung der Typreferenz. String-Vergleiche basierend auf der .ToString() Ausgabe sind in der Regel kompatibel, da die Mitgliedsnamen ähnlich sind, aber explizite Enum-Typ-Vergleiche erfordern 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 besetzen unterschiedliche Produktkategorien, die das Label "Barcode-SDK" teilen. Scanbot ist eine Kamerascankomponente, die eine Live-Sucher-Erfahrung für iOS und Android (über MAUI) und Windows (über UWP/WinUI 3) 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.
Scanbot SDK ist stark innerhalb seines definierten Rahmens. Für Anwendungen, bei denen der Benutzer direkt eine Gerätekamera auf einen physischen Barcode richtet und Echtzeit-Visuelles Feedback erwartet — Einzelhandel, Ticketing, Lagerabfrage — sind Scanbots Kamerapipeline und Sucherkomponente speziell für dieses Interaktionsmodell konstruiert. Wenn die Bereitstellung auf kameragebundene Ziele beschränkt ist (iOS, Android und UWP/WinUI 3 Windows), ist das Live-Scan-Erlebnis zentral für das Produkt und die jährliche Pauschale passt ins Budget, ist Scanbot eine vernünftige Wahl für diesen 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 plattformbedingte Konfiguration installiert und bietet denselben BarcodeReader.Read() Aufruf, unabhängig davon, ob der Code auf einem mobilen Gerät, einem Server oder einem Desktop ausgeführt wird.
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 for .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.

