Zum Fußzeileninhalt springen
MIT ANDEREN KOMPONENTEN VERGLEICHEN

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.Windows Paket; 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 mit IsSuccess und einer Value.Items Sammlung 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
$vbLabelText   $csharpLabel

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: BarcodeReaderOptions steuert 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)
$vbLabelText   $csharpLabel

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
SHELL

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
$vbLabelText   $csharpLabel

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.

Curtis Chau
Technischer Autor

Curtis Chau hat einen Bachelor-Abschluss in Informatik von der Carleton University und ist spezialisiert auf Frontend-Entwicklung mit Expertise in Node.js, TypeScript, JavaScript und React. Leidenschaftlich widmet er sich der Erstellung intuitiver und ästhetisch ansprechender Benutzerschnittstellen und arbeitet gerne mit modernen Frameworks sowie der Erstellung gut strukturierter, optisch ansprechender ...

Weiterlesen

Iron-Support-Team

Wir sind 24 Stunden am Tag, 5 Tage die Woche online.
Chat
E-Mail
Rufen Sie mich an