Passer au contenu du pied de page
COMPARER à D'AUTRES COMPOSANTS

Scanbot SDK vs IronBarcode : Comparaison de la bibliothèque BarCode C#

Le kit de développement logiciel Scanbot ouvre une vue plein écran pour la lecture des codes-barres à l'aide de la caméra de l'appareil. Il n'y a pas de méthode BarcodeScanner.Read(imagePath). Le scanner est l'interface utilisateur de l'appareil photo. Si votre code-barres se trouve dans une facture PDF hébergée sur un serveur, Scanbot ne peut pas vous aider. Il ne s'agit pas d'une critique, mais d'une simple description de son architecture. Kit de développement logiciel Scanbot est une interface de contrôle de caméra MAUI qui intègre les API de numérisation natives iOS et Android dans un composant de viseur soigné. ScanbotBarcodeSDK.BarcodeScanner.Open(configuration)passe le contrôle à une expérience de caméra plein écran, l'utilisateur pointe l'appareil vers un code-barres, le SDK le détecte dans le flux vidéo en direct, et le résultat revient dans votre application. La comparaison est importante car le nom du package NuGet - ScanbotBarcodeSDK.MAUI - et la catégorie du produit - "barcode SDK" - peuvent amener les développeurs à l'évaluer pour le traitement de documents côté serveur, les applications de bureau WPF ou les API ASP.NET Core. Cet article explique la différence architecturale entre les deux outils, ce que chacun fait réellement, et où Code-barres IronBarcode couvre des scénarios que Scanbot ne peut structurellement pas.

Comprendre le SDK Scanbot

Scanbot SDK est un kit de développement logiciel (SDK) commercial de lecture de codes-barres mobiles développé par Scanbot GmbH. Son offre .NET est ScanbotBarcodeSDK.MAUI, un package qui cible net8.0-android et net8.0-ios. Le SDK nécessite un projet .NET MAUI Application avec des cibles <UseMaui>true</UseMaui> et mobiles dans son TargetFrameworks. Elle ne fonctionnera pas avec une application console, une bibliothèque de classes, un projet ASP.NET Coreou une application MAUI ciblant Windows.

Scanbot est conçu comme un produit axé avant tout sur la caméra. L'intégralité de son interface API est orientée autour de l'expérience de visualisation en direct : les objets de configuration contrôlent l'apparence de l'interface utilisateur de la caméra, les formats que le pipeline vidéo en direct surveille et la manière dont les commentaires sont transmis à l'utilisateur. La bibliothèque propose un composant de numérisation performant pour les applications mobiles iOS et Android grand public et Enterprise .

  • Plateforme cible principale : appareils mobiles iOS et Android via le framework .NET MAUI ; Les cibles MAUI Windows et macOS ne sont pas prises en charge.
  • Modèle d'entrée : flux vidéo en direct de la caméra de l'appareil exclusivement — aucune surcharge de chemin de fichier, de flux ou de tableau d'octets n'est disponible.
  • Conception de l'API: BarcodeScanner.Open(configuration) transmet le contrôle à un appareil photo en plein écran et renvoie un OperationResult lorsque l'utilisateur confirme un balayage ou l'annule
  • Fonctionnalités de l'interface utilisateur de l'appareil photo : viseur en temps réel avec superposition de la zone de numérisation, contrôle de la lampe torche, configuration du format d'image, retour audio et haptique, et verrouillage de l'orientation
  • Formats pris en charge : plus de 20 formats unidimensionnels (Code 128, EAN-13, UPC et autres) et plusieurs formats bidimensionnels (QR, DataMatrix, PDF417, Aztec)
  • Aucun traitement de fichier : Il n'existe aucun mécanisme permettant de lire un code-barres à partir d'un fichier image enregistré, d'un flux ou d'un document PDF.
  • Aucune génération de code-barres : le SDK lit les codes-barres ; il ne les produit pas
  • Modèle de licence : Frais fixes annuels ; le coût annuel est fixe, quel que soit le volume de numérisation
  • Restriction liée au type de projet : ne sera pas compilé pour les projets console, les bibliothèques de classes, ASP.NET Core, WPF, WinForms, Fonctions Azureou hébergés sur Docker.

Architecture du pipeline de la caméra

L'architecture de Scanbot nécessite une initialisation au démarrage de l'application, suivie d'un appel de numérisation piloté par caméra. Il n'existe pas de surcharge de BarcodeScanner.Open() qui accepte un chemin de fichier ou un flux ; la signature de la méthode nécessite un BarcodeScannerConfiguration car l'ensemble de l'opération est piloté par une caméra :

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

Le SDK traite les images vidéo en direct en temps réel, met en évidence les codes-barres détectés dans le viseur et renvoie un résultat lorsqu'un code-barres est confirmé ou que l'utilisateur annule. L'objet de configuration contrôle l'apparence de l'interface utilisateur de la caméra, et non son comportement de traitement. Voici le modèle complet.

Comprendre IronBarcode

IronBarcode est une bibliothèque commerciale .NET de lecture et de génération de codes-barres développée par Iron Software. Il fonctionne selon un modèle de traitement de fichiers : les sources d'entrée sont des chemins de fichiers, des flux, des tableaux d'octets et des documents PDF. Il n'y a pas d'interface utilisateur pour la caméra et aucun matériel mobile requis. La bibliothèque fonctionne avec tous les types de projets .NET .

La méthode statique BarcodeReader.Read() d'IronBarcode accepte n'importe quelle source fournie par le code appelant, quelle que soit la manière dont cette source a été produite. Un fichier téléchargé via HTTP, un PDF sur disque, une image provenant d'un stockage blob ou un tableau d'octets décodé à partir d'une chaîne base64 sont tous des entrées équivalentes. La bibliothèque renvoie une collection de résultats décodés, chacun comportant la valeur du code-barres, le format et le numéro de page le cas échéant.

  • Sources d'entrée : chemins de fichiers, flux, tableaux d'octets et documents PDF (analyse PDF native, et non extraction d'images) Types de projets pris en charge : applications console, ASP.NET Core, WPF, WinForms, Blazor Server, Azure Functions, AWS Lambda, Docker, services Windows, .NET MAUI (toutes cibles, y compris Windows et macOS) et .NET Framework 4.6.2 et versions ultérieures.
  • Génération de codes-barres : produit des codes-barres sous forme d'images ou intégrés dans des documents HTML et PDF.
  • Formats pris en charge : plus de 30 formats unidimensionnels et cinq formats bidimensionnels, dont QR, DataMatrix, PDF417, Aztecet MaxiCode.
  • Améliorations de la lecture : correction d'erreurs basée sur l'apprentissage automatique et récupération des codes-barres endommagés pour les images difficiles du monde réel
  • Objet de configuration : BarcodeReaderOptions contrôle le comportement du traitement (vitesse, détection multi-barcodes) plutôt que l'apparence de l'interface utilisateur de la caméra
  • Modèle de licence : Achat perpétuel unique à quatre niveaux (Lite 749 $, Plus 1 499 $, Professional 2 999 $, Illimité 5 999 $) ; pas de renouvellement annuel nécessaire

Comparaison des fonctionnalités

Le tableau suivant met en évidence les différences fondamentales entre Kit de développement logiciel Scanbot et IronBarcode:

Fonction Kit de développement logiciel Scanbot Code-barres IronBarcode
Cas d'utilisation principal Numérisation de codes-barres en direct sur mobile via caméra Lecture et génération des codes-barres des fichiers et documents
Modèle d'entrée Flux vidéo de la caméra de l'appareil uniquement Chemin de fichier, flux, tableau d'octets, PDF
Support de la plateforme iOS et Android MAUIuniquement Toutes les plateformes .NET et tous les types de projets
Génération de codes-barres Non Oui
Extraction de codes-barres PDF Non Oui
Modèle de licence Frais fixes annuels perpétuel unique
Interface utilisateur de la caméra en direct Oui — composant de viseur poli Non (utilisez MediaPicker pour la capture de photos)

Comparaison détaillée des fonctionnalités

Fonction Kit de développement logiciel Scanbot Code-barres IronBarcode
En lisant
Entrée à partir du chemin du fichier Non Oui
Entrée du flux Non Oui
Entrée à partir d'un tableau d'octets Non Oui
extraction de codes-barres PDF Non Oui
viseur de caméra en direct Oui Non
Numérisation d'images en temps réel Oui Non
Détection automatique du format Oui Oui
Correction d'erreur ML Non Oui
Récupération de codes-barres endommagés Non Oui
Nombre de formats 1D 20+ 30+
Nombre de formats 2D QR, DataMatrix, PDF417, Aztec QR, DataMatrix, PDF417, Aztec, MaxiCode
Génération
génération de codes-barres Non Oui
Plateforme
iOS MAUI Oui Oui
Android MAUI Oui Oui
Windows MAUI Non Oui
macOS MAUI Non Oui
Application console Non Oui
ASP.NET Core Non Oui
Serveur Blazor Non Oui
Application WPF Non Oui
Application WinForms Non Oui
Fonctions Azure Non Oui
AWS Lambda Non Oui
Docker / Linux Non Oui
Service Windows Non Oui
.NET Framework 4.6.2+ Non Oui
Licence
Modèle de licence Frais fixes annuels perpétuel unique
Prix publiés Contacter le service des ventes Oui (749 $ à 5 999 $)
Tarification en fonction du volume N/A (forfait) N/A (niveaux perpétuels)

Architecture : Pipeline de la caméra vs Traitement des fichiers

La différence la plus significative entre Kit de développement logiciel Scanbot et Code-barres IronBarcode ne réside pas dans un écart de fonctionnalités, mais dans une différence architecturale fondamentale dans la façon dont chaque bibliothèque conçoit ses entrées.

Approche du SDK Scanbot

L'architecture de Scanbot est construite autour d'un pipeline de caméras natives. Lorsque BarcodeScanner.Open(configuration) est appelée, la bibliothèque passe le contrôle à une expérience de caméra plein écran alimentée par les API de caméra natives de l'appareil sur iOS et Android. La bibliothèque traite en continu les images vidéo en direct, applique la détection de codes-barres à chaque image et rend le contrôle à l'application appelante lorsqu'un code-barres est confirmé ou que l'utilisateur ferme le scanner. Le modèle Scanbot ne comporte pas de notion d'image statique ; l'entrée est toujours un flux d'images vidéo en direct provenant de la caméra de l'appareil.

Cette conception offre une expérience de numérisation optimale : codes-barres en temps réel mis en évidence dans le viseur, zone de numérisation configurable avec contrôle du format d'image, activation/désactivation de la lampe torche, retour audio et haptique, et verrouillage de l'orientation. Ce sont des fonctionnalités d'interface utilisateur dans lesquelles Scanbot a investi pour l'utilisation avec un appareil photo mobile. En contrepartie, la bibliothèque est indissociable du matériel de l'appareil photo et du système d'exploitation mobile qui le pilote.

Approche IronBarcode

IronBarcode accepte toute représentation binaire d'une image contenant un code-barres et renvoie des résultats décodés par la même méthode statique, quelle que soit la manière dont l'image a été obtenue :

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

Le même appel s'exécute dans une application console, un contrôleur ASP.NET Core, une fonction Azure, un formulaire WPF ou une page MAUI. Code-barres IronBarcode lit nativement les codes-barres des fichiers PDF — non pas comme des images extraites des PDF, mais en analysant directement la structure du PDF et en trouvant les codes-barres sur chaque page.

Couverture de la plateforme et du déploiement

La portée de la plateforme du kit de développement logiciel Scanbot est définie par les cibles prises en charge par son package NuGet . Le périmètre d'IronBarcode correspond à celui du runtime .NET lui-même.

Approche du SDK Scanbot

Le paquet de Scanbot cible net8.0-android et net8.0-ios. Un projet .NET MAUI Application qui ne déclare que ces deux cibles sera construit avec succès. Cependant, lorsque net8.0-windows ou net8.0-maccatalyst est ajouté à TargetFrameworks, la référence du paquet Scanbot n'est pas résolue sur ces cibles. Il ne s'agit pas d'un problème de configuration : le package ne fournit pas d'assemblages pour Windows ou macOS. L'erreur survient lors de la première tentative de compilation sur la cible de bureau, et non lors de l'installation de NuGet .

Cette contrainte signifie que Scanbot est structurellement incompatible avec les projets MAUI multi-cibles incluant des plateformes de bureau, et qu'il ne peut être utilisé dans aucun type de projet serveur ou de bureau non-MAUI, quelle que soit la version du framework.

Approche IronBarcode

IronBarcode est distribué sous la forme d'un package NuGet unique qui fonctionne correctement sur tous les types de projets .NET et les frameworks cibles :

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

Pour les applications MAUI ciblant également les ordinateurs de bureau Windows ou macOS , Code-barres IronBarcode prend en charge les quatre cibles MAUI à partir d'une seule référence de package sans configuration conditionnelle à la plateforme. Les équipes qui élaborent un projet MAUI ciblant iOS, Android et Windows peuvent ajouter Code-barres IronBarcode une seule fois et utiliser BarcodeReader.Read() sur les trois plateformes sans modification.

Modèles d'intégration MAUI

Les deux bibliothèques peuvent être utilisées dans les projets .NET MAUI , mais le modèle d'intégration diffère considérablement en fonction du modèle d'entrée de chaque bibliothèque.

Approche du SDK Scanbot

Dans le cadre d'un projet MAUI ciblant iOS et Android, Scanbot fournit un viseur de caméra natif intégré au flux de navigation de l'application. L'appel BarcodeScanner.Open() présente le scanner en plein écran et le résultat retourne à la page d'appel lorsque l'utilisateur termine ou abandonne l'analyse. Cette intégration dote l'application mobile d'une interface utilisateur de numérisation spécialisée qui s'intègre parfaitement à la plateforme.

Cette limitation apparaît lorsque le projet prend de l'ampleur. L'ajout d'une cible Windows ou macOS au projet MAUI interrompt la compilation sur ces plateformes. L'ajout d'un composant côté serveur nécessitant le traitement des codes-barres requiert une bibliothèque distincte. La dépendance Scanbot ne peut pas suivre le projet au-delà d'iOS et d'Android.

Approche IronBarcode

Dans un projet MAUI, Code-barres IronBarcode fonctionne avec le MediaPicker de la plateforme pour capturer des photos et lire des codes-barres à partir des images obtenues. Le flux de travail de numérisation utilise la caméra du système plutôt qu'un viseur personnalisé :

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

L'avantage principal réside dans la superposition du viseur en direct. L'utilisateur voit l'interface utilisateur de la caméra système plutôt qu'une zone de numérisation personnalisée, ce qui est adéquat pour les applications professionnelles où le pointage et la capture suffisent. Le tutoriel sur le lecteur de codes-barres .NET MAUI couvre l'intégralité du modèle d'intégration MAUI pour les cibles iOS et Android , y compris la gestion des autorisations et la configuration du projet.

Modèle de licence

Scanbot SDK et Code-barres IronBarcode utilisent des structures de licences commerciales fondamentalement différentes.

Approche Scanbot

Scanbot fonctionne selon un modèle de forfait annuel. Le coût annuel de la licence est fixe quel que soit le volume de numérisation — que ce soit 100 numérisations par an ou 10 millions de numérisations par an, le tarif est le même. Cela permet une budgétisation annuelle prévisible pour les équipes disposant de déploiements mobiles stables. Pour connaître le prix exact, veuillez contacter l'équipe commerciale de Scanbot ; Les chiffres publiés ne sont pas disponibles. L'obligation de renouvellement annuel signifie que la licence représente un coût opérationnel permanent.

Approche IronBarcode

IronBarcode est vendu sous forme d'achat unique et perpétuel, décliné en quatre niveaux : Lite à 749 $, Plus à 1 499 $, Professional à 2 999 $ et Unlimited à 5 999 $. Aucun renouvellement annuel n'est requis pour continuer à utiliser la version achetée. Les mises à jour logicielles sont incluses pendant la période de licence. Les tarifs sont publiés sur le site web Iron Software sans qu'il soit nécessaire de passer par une conversation commerciale.

Référence de mappage d'API

Les équipes qui évaluent les différences architecturales entre les deux bibliothèques trouveront ce tableau de correspondance utile pour comprendre les équivalences conceptuelles :

Kit de développement logiciel Scanbot Code-barres 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 Consultez results.Any() ou results.FirstOrDefault() != null
result.Barcodes Valeur de retour de 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 Aucun équivalent — le cadrage des images est géré par MediaPicker
BarcodeScannerConfiguration.FlashEnabled Aucun équivalent — utilisez les options de MediaPicker
Entrée caméra uniquement Chemin de fichier, flux, tableau d'octets ou PDF
iOS et Android MAUIuniquement Toutes les plateformes .NET

Lorsque les équipes envisagent de passer du SDK Scanbot à IronBarcode

Plusieurs situations amènent fréquemment les équipes de développement à évaluer Code-barres IronBarcode comme un remplacement ou un complément au SDK Scanbot.

Traitement côté serveur et en arrière-plan

Une application mobile développée avec Scanbot est souvent associée à un composant côté serveur qui gère les téléchargements de documents, les traitements par lots ou les points de terminaison API. Lorsque ce composant côté serveur a besoin d'un traitement de codes-barres (extraction de codes-barres à partir de PDF téléchargés, validation des valeurs de codes-barres dans les documents entrants ou traitement des données de codes-barres à partir de pièces jointes d'images), Scanbot n'est pas disponible. Ce package ne se compile pas dans ASP.NET Core, Azure Functions, les applications console ou tout projet non-MAUI. Dans ce cas de figure, les équipes doivent gérer une dépendance à un système de codes-barres mobile en parallèle d'une solution de codes-barres côté serveur distincte, ou évaluer si Code-barres IronBarcode peut couvrir les deux rôles avec un seul package.

Exigences relatives aux applications de bureau

L'atout majeur de MAUI réside souvent dans sa compatibilité multiplateforme : un code source unique ciblant iOS, Android et Windows. Lorsque la cible Windows MAUIentre dans la feuille de route — que ce soit à partir des exigences initiales ou comme ajout ultérieur — le package de Scanbot ne parvient pas à se résoudre sur cette cible. La compilation pour Windows est impossible si Scanbot figure dans la liste des dépendances. Les équipes constatent ce problème lors de la première tentative de compilation pour ordinateur, et la solution consiste à supprimer Scanbot de la liste des dépendances partagées. Pour les équipes pour lesquelles la version Windows est indispensable, Code-barres IronBarcode devient la seule bibliothèque de codes-barres mobile compatible avec les ordinateurs.

Flux de travail PDF et documents

Les applications qui passent de la numérisation en direct à l'automatisation des documents se heurtent à une limite de capacité avec Scanbot. La lecture des codes-barres d'une facture PDF, l'extraction des codes de suivi d'une image d'étiquette d'expédition scannée ou le traitement des données de codes-barres d'un document archivé : aucun de ces flux de travail n'est possible avec le modèle Scanbot, car l'entrée doit toujours être un flux vidéo en direct provenant d'une caméra. Code-barres IronBarcode gère nativement toutes ces entrées basées sur des fichiers. Le même module qui s'exécute dans l'application mobile MAUI peut extraire les codes-barres des documents PDF en traitement arrière-plan, sans aucune dépendance supplémentaire.

Coûts de licence prévisibles

Les coûts de renouvellement annuels nécessitent une réévaluation à chaque cycle de renouvellement. Les équipes qui ont commencé avec Scanbot dans le cadre d'un déploiement mobile à petite échelle et qui ont étendu leur utilisation à un plus grand nombre d'utilisateurs ou de plateformes pourraient trouver les frais annuels moins avantageux à mesure que la portée s'élargit. Le modèle perpétuel à paiement unique d'IronBarcode élimine l'obligation de renouvellement. Les équipes chargées d'évaluer le renouvellement des licences examinent souvent si un achat unique correspond mieux à leur planification des coûts à long terme, notamment lorsque le périmètre élargi du projet inclut des plateformes serveur ou de bureau qui ne sont de toute façon pas couvertes par Scanbot.

Considérations courantes en matière de migration

Les équipes qui passent du kit de développement logiciel Scanbot à Code-barres IronBarcode doivent se préparer à plusieurs différences techniques qui surviendront lors de la transition.

Aucun équivalent de viseur électronique

Le viseur de caméra en temps réel de Scanbot — avec superposition de la zone de numérisation, détection continue et retour haptique — n'a pas d'équivalent direct dans IronBarcode. Le modèle de remplacement utilise le MediaPicker.CapturePhotoAsync()@ de MAUI pour ouvrir l'appareil photo du système, capturer une photo et renvoyer l'image pour traitement. L'expérience utilisateur s'apparente à un flux de capture de photos plutôt qu'à un flux de numérisation continu. Pour les applications commerciales (gestion des stocks, logistique, traitement des documents), cette distinction est rarement significative. Pour les applications grand public où la superposition en direct est essentielle à l'expérience utilisateur, il s'agit d'une véritable différence en matière d'expérience utilisateur qui doit être évaluée avant de s'engager dans la migration.

Modèle de rappel d'événement pour un retour direct

Le BarcodeScanner.Open() de Scanbot est asynchrone et renvoie un OperationResult avec un champ d'état et une collection Barcodes. Le BarcodeReader.Read() d'IronBarcode renvoie directement une collection - il n'y a pas d'objet enveloppant avec un champ d'état. La vérification du succès passe de result.Status == OperationResult.Okà results.Any() ou une vérification nulle sur results.FirstOrDefault().

Modification de l'espace de noms de l'énumération de format

L'enum BarcodeFormat de Scanbot (par exemple, BarcodeFormat.Code128) et l'enum BarcodeEncoding d'IronBarcode (par exemple, BarcodeEncoding.Code128) contiennent des membres similaires mais sont des types différents dans des espaces de noms différents. Le code qui stocke ou compare des valeurs de format par type énuméré nécessite la mise à jour de la référence de type. Les comparaisons de chaînes basées sur la sortie .ToString() sont généralement compatibles puisque les noms des membres sont similaires, mais les comparaisons explicites de types d'énumérations nécessitent une mise à jour vers les valeurs BarcodeEncoding.

Modules complémentaires de Windows

Si le package Scanbot provoquait des échecs de compilation de Windows MAUIavant la migration, sa suppression résout ces problèmes. Après avoir ajouté IronBarcode, vérifiez que les fonctionnalités spécifiques à Windows (boîtes de dialogue de sélection de fichiers, chemins d'accès aux fichiers locaux, autorisations Windows) sont correctement gérées dans le code de l'application MAUI, car elles diffèrent des modèles d'accès aux fichiers d'iOS et d'Android.

Fonctionnalités supplémentaires IronBarcode

Au-delà des scénarios de base abordés dans cette comparaison, Code-barres IronBarcode offre des fonctionnalités qui deviennent pertinentes à mesure que les projets se développent :

  • Génération de codes-barres : produire des codes-barres dans tous les principaux formats unidimensionnels et bidimensionnels, sous forme de fichiers image, de flux ou de contenu intégré dans des documents HTML et PDF.
  • Traitement de documents à codes-barres multiples : Lecture de tous les codes-barres de chaque page d'un PDF multipage en une seule requête, chaque résultat indiquant le numéro de la page où il a été trouvé.
  • Correction d'erreurs par apprentissage automatique : récupération des codes-barres sur des images endommagées, partiellement masquées ou à faible contraste, que les algorithmes de détection standard ne peuvent pas décoder.
  • Traitement d'images par lots : traitez des tableaux de chemins d'images ou des flux en une seule opération pour des flux de travail documentaires à haut débit.
  • Réglage des options du lecteur de codes-barres : contrôlez la vitesse de lecture, la détection de plusieurs codes-barres, le filtrage des formats et le prétraitement des images afin d'équilibrer le débit et la précision pour des cas d'utilisation spécifiques.
  • Intégration iOS MAUI : Prise en charge complète de la lecture des codes-barres dans les applications iOS MAUIutilisant le modèle MediaPicker
  • Intégration Android MAUI : Prise en charge complète de la lecture des codes-barres dans les applications Android MAUIavec la même API que sur iOS

Compatibilité .NET et préparation à l'avenir

IronBarcode prend en charge .NET 6, .NET 7, .NET 8 et .NET 9, ainsi que .NET Framework 4.6.2 et versions ultérieures. La bibliothèque bénéficie de mises à jour régulières, alignées sur le rythme de publication de .NET , garantissant ainsi sa compatibilité avec .NET 10, prévu pour fin 2026, et les versions ultérieures. Code-barres IronBarcode étant une bibliothèque de traitement de fichiers plutôt qu'un kit de développement logiciel (SDK) pour appareil photo spécifique à une plateforme, elle ne dépend pas des API du système d'exploitation mobile ni des capacités matérielles, ce qui signifie que sa surface de compatibilité s'étend avec l'écosystème .NET au lieu d'être limitée par les cycles de prise en charge des plateformes mobiles.

Conclusion

Scanbot SDK et Code-barres IronBarcode appartiennent à des catégories de produits différentes qui partagent l'appellation " SDK de code-barres ". Scanbot est un composant de numérisation par caméra mobile qui offre une expérience de visualisation en direct optimisée pour les applications iOS et Android. Code-barres IronBarcode est une bibliothèque de traitement de fichiers et de documents qui lit et génère des codes-barres pour toute la gamme des types de projets .NET et des cibles de déploiement. La comparaison porte sur la portée et l'architecture, et non sur la qualité au sein du domaine visé par chaque bibliothèque.

Le kit de développement logiciel Scanbot est véritablement performant dans son domaine défini. Pour les applications mobiles grand public et Enterprise où l'utilisateur pointe directement la caméra de son appareil vers un code-barres physique et s'attend à un retour visuel en temps réel (vente au détail, billetterie, recherche en entrepôt), le pipeline de caméra et le composant de viseur perfectionné de Scanbot sont spécialement conçus pour ce modèle d'interaction. Si le déploiement se limite aux appareils mobiles iOS et Android, que l'expérience de numérisation en direct est au cœur du produit et que le forfait annuel convient au budget, Scanbot est un choix raisonnable pour ce cas d'utilisation précis et bien défini.

IronBarcode convient lorsque les exigences de traitement des codes-barres vont au-delà du scénario de caméra en direct. Le traitement de documents côté serveur, les points de terminaison ASP.NET Corequi acceptent les téléchargements de fichiers, les applications de bureau sous Windows ou macOS, les fonctions Azure déclenchées par le stockage blob, les projets MAUI multi-cibles incluant des plateformes de bureau et les tâches de traitement PDF par lots relèvent tous du périmètre natif d'IronBarcode. Le paquetage unique s'installe sans configuration conditionnelle de plateforme et fournit le même appel BarcodeReader.Read() que le code s'exécute sur un appareil mobile, un serveur ou un ordinateur de bureau.

Pour les équipes dont les besoins couvrent à la fois la numérisation en direct par caméra mobile et le traitement de fichiers ou de serveurs, la solution la plus propre sur le plan architectural consiste à utiliser Scanbot pour l'interface utilisateur de la caméra mobile et Code-barres IronBarcode pour tout le reste. Cette approche a pour coût deux dépendances de codes-barres et deux accords de licence. Pour les équipes qui acceptent la caméra du système plutôt qu'un viseur personnalisé pour l'interaction de numérisation mobile, Code-barres IronBarcode peut à lui seul couvrir l'ensemble du projet — de l'application mobile MAUI à l'API serveur et au logiciel compagnon Windows — avec un seul package et une seule licence.

Questions Fréquemment Posées

Qu'est-ce que Scanbot SDK ?

Scanbot SDK est une bibliothèque de codes-barres .NET permettant de générer et de lire des codes-barres dans des applications C#. C'est l'une des nombreuses alternatives que les développeurs évaluent lorsqu'ils choisissent une solution de codes-barres pour les projets .NET.

Quelles sont les principales différences entre Scanbot SDK et IronBarcode ?

IronBarcode utilise une API statique, sans état, ne nécessitant aucune gestion d'instance, alors que Scanbot SDK requiert généralement la création et la configuration d'une instance avant utilisation. IronBarcode offre également une prise en charge native du format PDF, une détection automatique du format et une licence à clé unique pour tous les environnements.

Est-il plus facile d'obtenir une licence pour IronBarcode que pour Scanbot SDK ?

IronBarcode utilise une clé de licence unique couvrant à la fois les déploiements de développement et de production. Cela simplifie les pipelines CI/CD et les configurations Docker par rapport aux systèmes de licence qui séparent les clés SDK des clés d'exécution.

IronBarcode prend-il en charge tous les formats de codes-barres que Scanbot SDK prend en charge ?

IronBarcode prend en charge plus de 30 symbologies de codes-barres, notamment QR Code, Code 128, Code 39, DataMatrix, PDF417, Aztec, EAN-13, UPC-A, GS1, et bien d'autres encore. L'auto-détection du format signifie qu'aucune énumération explicite du format n'est nécessaire.

IronBarcode prend-il en charge la lecture de codes-barres PDF en mode natif ?

Oui. IronBarcode lit les codes-barres directement à partir de fichiers PDF en utilisant BarcodeReader.Read("document.pdf") sans nécessiter de bibliothèque de rendu PDF séparée. Les résultats par page comprennent le numéro de page, le format du code-barres, la valeur et le score de confiance.

Comment IronBarcode gère-t-il le traitement par lots par rapport à Scanbot SDK ?

Les méthodes statiques d'IronBarcode sont sans état et naturellement à l'abri des threads, ce qui permet d'utiliser directement Parallel.ForEach sans gestion d'instance par thread. Il n'y a pas de plafond de débit, quel que soit le niveau de prix.

Quelles versions de .NET sont prises en charge par IronBarcode ?

IronBarcode prend en charge .NET Framework 4.6.2+, .NET Core 3.1 et .NET 5, 6, 7, 8 et 9 dans un seul package NuGet. Les plates-formes visées sont Windows x64/x86, Linux x64 et macOS x64/ARM.

Comment installer IronBarcode for .NET dans un projet .NET ?

Installez IronBarcode via NuGet : exécutez "Install-Package IronBarCode" dans la console du gestionnaire de paquets, ou "dotnet add package IronBarCode" dans le CLI. Aucun installateur SDK ou fichier d'exécution supplémentaire n'est nécessaire.

Puis-je évaluer IronBarcode avant de l'acheter, contrairement à Scanbot ?

Oui. Le mode d'essai d'IronBarcode renvoie des valeurs de code-barres décodées complètes - seules les images de sortie générées reçoivent un filigrane. Vous pouvez comparer la précision de lecture sur vos propres documents avant de vous engager dans un achat.

Quelle est la différence de prix entre Scanbot SDK et IronBarcode ?

IronBarcode est proposé à partir de 749 dollars pour une licence perpétuelle pour un seul développeur couvrant le développement et la production. Les détails des prix et les options de volume sont disponibles sur la page de licence d'IronBarcode. Il n'est pas nécessaire de disposer d'une licence d'exécution distincte.

Est-il simple de migrer de Scanbot SDK à IronBarcode ?

La migration de Scanbot SDK vers IronBarcode implique principalement de remplacer les appels d'API basés sur des instances par les méthodes statiques d'IronBarcode, de supprimer les modèles de licence et de mettre à jour les noms des propriétés des résultats. La plupart des migrations impliquent une réduction du code plutôt qu'un ajout.

IronBarcode génère-t-il des codes QR avec des logos ?

Oui. QRCodeWriter.CreateQrCode().AddBrandLogo("logo.png") incorpore une image de marque dans un code QR de manière native avec une correction d'erreur configurable. Les codes QR colorés sont également pris en charge via ChangeBarCodeColor().

Jordi Bardia
Ingénieur logiciel
Jordi est le plus compétent en Python, C# et C++, et lorsqu'il ne met pas à profit ses compétences chez Iron Software, il programme des jeux. Partageant les responsabilités des tests de produit, du développement de produit et de la recherche, Jordi apporte une immense valeur à l'amé...
Lire la suite

Équipe de soutien Iron

Nous sommes en ligne 24 heures sur 24, 5 jours sur 7.
Chat
Email
Appelez-moi