Neodynamic Barcode Professional vs IronBarcode : Comparaison de la bibliothèque de codes-barres C#
Kit de développement logiciel Scanbot vs Code-barres IronBarcode : Pipeline de caméra vs Traitement de fichiers
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 un contrôle de caméra qui regroupe les APIs de numérisation natives iOS, Android, et UWP/WinUI 3 dans un composant de viseur. ScanbotSDKMain.Barcode.StartScannerAsync(configuration) donne le contrôle à une expérience de caméra en plein écran, l'utilisateur dirige l'appareil vers un code-barres, le SDK le détecte dans le flux vidéo en direct, et le résultat est renvoyé à votre application. La comparaison est importante car le nom du package NuGet — ScanbotBarcodeSDK.MAUI — et la catégorie de 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 et ce pour quoi chacun est conçu.
Comprendre le SDK Scanbot
Scanbot SDK est un SDK de numérisation de codes-barres commercial développé par doo GmbH. Son offre principale .NET est ScanbotBarcodeSDK.MAUI (v8.0.0), un package qui cible net9.0-android et net9.0-ios. Un package séparé, Scanbot.BarcodeSDK.Windows (v7.0.0), couvre les applications de bureau UWP et WinUI 3 sur Windows 10 1809+ (x64) avec une caméra autofocus. Toutes les cibles prises en charge sont liées à la caméra — le SDK ne se résoudra pas contre une application console, une bibliothèque de classes, un projet ASP.NET Core, ou une application MAUI ciblant macOS.
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 fournit un composant de numérisation pour les applications iOS, Android, et Windows (UWP/WinUI 3) pour les consommateurs et les entreprises.
- Cible principale : iOS et Android via .NET MAUI, ainsi que UWP/WinUI 3 sur Windows 10 1809+ via le package séparé
Scanbot.BarcodeSDK.Windows; Les cibles MAUI 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 :
ScanbotSDKMain.Barcode.StartScannerAsync(configuration)donne le contrôle à une expérience de caméra en plein écran et renvoie un résultat avecIsSuccesset une collectionValue.Items - 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
- Périmètre du type de projet : Les packages NuGet pris en charge ciblent les runtimes liés à la caméra (MAUI iOS/Android et UWP/WinUI 3); console, bibliothèque de classes, ASP.NET Core, WPF, WinForms, Azure Functions, et hôtes serveur Docker sont en dehors de cet ensemble de cibles
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. La méthode de scanner requiert un BarcodeScannerScreenConfiguration car l'ensemble de l'opération est piloté par la caméra :
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
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() de Code-barres IronBarcode accepte n'importe quelle source fournie par le code appelant, peu importe comment 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 :
BarcodeReaderOptionscontrôle le comportement de traitement (vitesse, détection multi-code-barres) 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/Android MAUI et UWP/WinUI 3 (lié à la caméra) | 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 |
| UWP / WinUI 3 (avec caméra) | Oui (paquet Windows séparé) | Oui |
| Application console | Non | Oui |
| ASP.NET Core | Non | Oui |
| Serveur Blazor | Non | Oui |
| Application WPF | Non | Oui |
| Application WinForms | Non | Oui |
| Azure Functions | 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éra native. Lorsque ScanbotSDKMain.Barcode.StartScannerAsync(configuration) est appelé, la bibliothèque donne le contrôle à une expérience de caméra en plein écran alimentée par les API de caméra native de l'appareil sous iOS, Android ou Windows. 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.
Ce design produit une expérience de numérisation avec des codes-barres en temps réel mis en évidence dans le viseur, une région de numérisation configurable avec contrôle du ratio d'aspect, un interrupteur de torche, des retours audio et haptiques, et un verrouillage de l'orientation. Ce sont des fonctionnalités d'interface utilisateur conçues pour le cas d'utilisation de la caméra. Le compromis est que la bibliothèque est inséparable du matériel de la caméra et du système d'exploitation qui la gère.
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 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)
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 package Scanbot MAUI cible net9.0-android et net9.0-ios. Un projet .NET MAUI Application qui déclare uniquement ces deux cibles se construira avec succès. Cependant, lorsque net9.0-maccatalyst ou une cible Windows MAUIest ajoutée à TargetFrameworks, la référence au package Scanbot MAUI échoue à se résoudre sur ces cibles. Ce n'est pas un problème de configuration — le paquet MAUI ne fournit pas d'assemblages pour Windows ou macOS MAUI. Le bureau Windows est couvert par le package séparé Scanbot.BarcodeSDK.Windows pour les applications UWP/WinUI 3 avec une caméra autofocus.
Le résultat est que l'ensemble de packages .NET de Scanbot cible le mobile MAUI et le bureau UWP/WinUI 3, plutôt que les types de projets serveurs ou de bureau non liés à la caméra.
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 BarCode
# Same package, same API — works in ASP.NET Core, WPF, console, MAUI, Azure Functions
dotnet add package BarCode
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 construisant un projet MAUI qui cible iOS, Android et Windows peuvent ajouter Code-barres IronBarcode une 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 ScanbotSDKMain.Barcode.StartScannerAsync() présente le scanner en plein écran, et le résultat revient à la page appelante lorsque l'utilisateur complète ou annule le scan. Cette intégration donne à l'application mobile une interface utilisateur de numérisation qui se sent native à la plate-forme.
Cette limitation apparaît lorsque le projet prend de l'ampleur. Ajouter une cible macOS ou une cible Windows MAUIrompt la construction sur ces plateformes (le bureau Windows est géré par le package séparé Scanbot.BarcodeSDK.Windows pour les applications UWP/WinUI 3). L'ajout d'un composant côté serveur sans tête nécessitant un traitement des codes-barres nécessite une bibliothèque séparée — la dépendance Scanbot ne peut pas suivre le projet dans ASP.NET Core, Azure Functions, ou Docker.
Approche IronBarcode
Dans un projet MAUI, Code-barres IronBarcode travaille avec le MediaPicker de la plateforme pour capturer des photos et lire les codes-barres à partir des images résultantes. 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 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
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 de la licence annuelle n'est pas mesuré par le volume de numérisations. 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 |
|---|---|
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 |
Vérifiez results.Any() ou results.FirstOrDefault() != null |
result.Value.Items |
Valeur de retour de 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 |
| Configuration de la région de numérisation / du ratio d'aspect de la caméra | Aucun équivalent — le cadrage des images est géré par MediaPicker |
| Configuration du flash / de la torche de la caméra | Aucun équivalent — utilisez les options de MediaPicker |
| Entrée caméra uniquement | Chemin de fichier, flux, tableau d'octets ou PDF |
| MAUI iOS/Android et UWP/WinUI 3 | 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 — soit à partir des exigences initiales ou comme un ajout ultérieur — le package ScanbotBarcodeSDK.MAUI échoue à se résoudre sur cette cible, car Scanbot couvre Windows via un package UWP/WinUI 3 séparé (Scanbot.BarcodeSDK.Windows) plutôt que via MAUI Windows. Les équipes qui souhaitent un chemin de construction Windows unique à l'intérieur d'un projet MAUI multi-cibles, ou qui ont besoin d'un composant Windows sans tête (tel qu'un service Windows), n'obtiendront pas cela à partir de l'ensemble de packages de Scanbot. Code-barres IronBarcode fournit un package unique qui se résout sur la cible Windows MAUIet fonctionne également dans les contextes de bureau et de serveur sans tête.
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. Lire des codes-barres à partir d'une facture PDF, extraire des codes de suivi à partir d'une image d'étiquette d'expédition numérisée, ou traiter les données de code-barres à partir d'un document archivé sont hors du modèle d'entrée de Scanbot, construit autour d'un flux caméra en direct. 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 la caméra du système, capturer une photo et retourner 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 ScanbotSDKMain.Barcode.StartScannerAsync() de Scanbot est asynchrone et renvoie un résultat avec un drapeau IsSuccess et une collection Value.Items. Le BarcodeReader.Read() de Code-barres IronBarcode renvoie directement une collection — il n'y a pas d'objet wrapper avec un champ de statut. La vérification du succès passe de result.IsSuccess à results.Any() ou à une vérification de null 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 de Code-barres IronBarcode (par exemple, BarcodeEncoding.Code128) contiennent des membres similaires mais sont de types différents dans des namespaces 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 de .ToString() sont généralement compatibles puisque les noms des membres sont similaires, mais les comparaisons explicites de type enum 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 occupent différentes catégories de produits qui partagent le label "barcode SDK". Scanbot est un composant de numérisation par caméra qui offre une expérience de viseur en direct pour iOS et Android (via MAUI) et Windows (via UWP/WinUI 3). 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 solide dans son périmètre défini. Pour les applications où l'utilisateur pointe directement une caméra d'appareil vers un code-barres physique et s'attend à un retour visuel en temps réel — commerce de détail, billetterie, recherche de stock — le pipeline de caméra de Scanbot et le composant de viseur sont conçus sur mesure pour ce modèle d'interaction. Si le déploiement est limité à des cibles liées à la caméra (iOS, Android, et Windows UWP/WinUI 3), l'expérience de numérisation en direct est centrale pour le produit, et la redevance annuelle forfaitaire convient au budget, Scanbot est un choix raisonnable pour ce cas d'utilisation.
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 Azure Functionsdé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 package unique s'installe sans configuration conditionnelle par plateforme et fournit le même appel BarcodeReader.Read() que le code s'exécute sur un appareil mobile, un serveur ou un 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 Package Manager, 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().

