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

BarcodeLib vs IronBarcode : Comparaison de la bibliothèque de codes-barres C#

Kit de développement logiciel Barkoder vs Code-barres IronBarcode : Scan de caméra mobile vs Couverture complète du code-barres .NET

Le SDK Barkoder apparaît dans presque tous les classements des " meilleurs SDK de codes-barres 2026 ", listé aux côtés de ZXing, Dynamsoft, Scandit et Code-barres IronBarcode dans les matrices comparatives. Les développeurs qui évaluent des solutions de codes-barres pour les projets .NET la découvrent très tôt dans leurs recherches : ils lisent des informations sur MatrixSight, le mode DeBlur, la détection de plusieurs codes-barres et la prise en charge DPM, et la trouvent vraiment convaincante. Sur NuGet, Barkoder fournit deux packages officiels .NET : Plugin.Maui.Barkoder et Barkoder.Xamarin. Les deux sont des composants de scan de caméra pour les applications mobiles MAUI et Xamarin. Ce que Barkoder ne propose pas, c'est une bibliothèque .NET à usage général : pas de ASP.NET Core, console, bureau, serveur, ou surface PDF. Cette comparaison explique ce qu'est Barkoder, ce qui le rend fort dans son domaine natif, et comment Code-barres IronBarcode couvre les exigences plus larges que les développeurs .NET ont typiquement.

Comprendre le SDK Barkoder

Barkoder est un SDK commercial de lecture de codes-barres construit autour d'un noyau de traitement C/C++, encapsulé dans des SDK natifs pour iOS et Android. Elle s'adresse aux développeurs d'applications mobiles qui ont besoin d'une numérisation par caméra en temps réel — le type de numérisation qu'un employé d'entrepôt effectue sur son téléphone, ou qu'un technicien de terrain effectue sur sa tablette. Le modèle de distribution reflète pleinement cet objectif.

Le SDK est distribué pour iOS via CocoaPods avec les API Swift et Objective-C, pour Android via Maven avec les API Kotlin et Java, et pour les appareils mobiles hybrides via des plugins officiels pour React Native, Flutter, Cordova et Capacitor. Sur .NET, Barkoder publie deux packages officiels NuGet — Plugin.Maui.Barkoder et Barkoder.Xamarin — qui encapsulent les SDK natifs iOS et Android et dévoilent un contrôle de numérisation par caméra BarkoderView pour les applications mobiles MAUI et Xamarin.

En dehors de MAUI et Xamarin, il n'y a pas d'option Barkoder sur .NET. Il n'y a pas de package Barkoder.NET polyvalent, pas de ciblage ASP.NET Core, Azure Functions, AWS Lambda, Docker ou serveur Linux, pas de console, service de travail, WPF, WinForms, Avalonia ou Blazor, pas de mode d'entrée fichier ou flux, pas de lecture de PDF, et pas de génération de code-barres. Pour les travaux .NET qui se trouvent en dehors d'une tête d'application mobile MAUI ou Xamarin, Barkoder n'est pas envisageable.

Principales caractéristiques architecturales du SDK Barkoder :

  • Architecture Mobile-First : Conçu pour les pipelines de caméra iOS et Android ; Tout le traitement s'effectue sur l'appareil via un noyau C/C++.
  • .NET Surface limité à MAUI / Xamarin : Les packages officiels Plugin.Maui.Barkoder et Barkoder.Xamarin exposent le contrôle de numérisation par caméra ; il n'existe pas de bibliothèque .NET à usage général
  • Aucune génération de code-barres : Barkoder est un SDK en lecture seule ; il n'a pas la capacité de produire ou d'encoder des codes-barres
  • Pas d'entrée PDF ou Fichier : Le SDK n'a pas le concept de lecture de codes-barres à partir de documents PDF, d'images à partir de systèmes de fichiers, ou de flux de documents côté serveur
  • Pas de déploiement serveur : Le SDK ne fonctionne pas dans ASP.NET Core, Azure Functions, conteneurs Docker, ou tout environnement d'exécution .NET côté serveur
  • Entrée uniquement par cadre de caméra : L'entrée est toujours un cadre de caméra en direct ; il n'existe pas de surcharge par chemin de fichier, flux, ou tableau d'octets

À quoi ressemble l'architecture de Barkoder

Le noyau C/C++ du SDK gère le traitement des images. Les wrappers iOS et Android exposent ce cœur à travers les APIs natives de la plateforme. Sur .NET, les plugins MAUI et Xamarin encapsulent les mêmes SDK natifs et exposent un contrôle BarkoderView :

// dotnet add package Plugin.Maui.Barkoder
// XAML hosts a BarkoderView; this is the code-behind callback.
using Barkoder.Maui;

public partial class ScanPage : ContentPage, IBarkoderDelegate
{
    public ScanPage()
    {
        InitializeComponent();
        BarkoderView.SetFlashEnabled(false);
        BarkoderView.SetZoomFactor(1.5f);
        BarkoderView.StartScanning(this);
    }

    public void DidFinishScanning(BarcodeResult[] result)
    {
        foreach (var r in result)
        {
            Console.WriteLine($"Type: {r.BarcodeTypeName}");
            Console.WriteLine($"Value: {r.TextualData}");
        }
    }
}
// dotnet add package Plugin.Maui.Barkoder
// XAML hosts a BarkoderView; this is the code-behind callback.
using Barkoder.Maui;

public partial class ScanPage : ContentPage, IBarkoderDelegate
{
    public ScanPage()
    {
        InitializeComponent();
        BarkoderView.SetFlashEnabled(false);
        BarkoderView.SetZoomFactor(1.5f);
        BarkoderView.StartScanning(this);
    }

    public void DidFinishScanning(BarcodeResult[] result)
    {
        foreach (var r in result)
        {
            Console.WriteLine($"Type: {r.BarcodeTypeName}");
            Console.WriteLine($"Value: {r.TextualData}");
        }
    }
}
Imports Barkoder.Maui

Public Partial Class ScanPage
    Inherits ContentPage
    Implements IBarkoderDelegate

    Public Sub New()
        InitializeComponent()
        BarkoderView.SetFlashEnabled(False)
        BarkoderView.SetZoomFactor(1.5F)
        BarkoderView.StartScanning(Me)
    End Sub

    Public Sub DidFinishScanning(result As BarcodeResult()) Implements IBarkoderDelegate.DidFinishScanning
        For Each r In result
            Console.WriteLine($"Type: {r.BarcodeTypeName}")
            Console.WriteLine($"Value: {r.TextualData}")
        Next
    End Sub
End Class
$vbLabelText   $csharpLabel

Cela fonctionne à l'intérieur d'une application mobile MAUI contre une caméra en direct. Il n'existe pas de surcharge de fichier, pas de surcharge de flux, pas de surcharge de PDF, et pas de surface équivalente pour les projets ASP.NET Core, console, ou bureau. Les chemins de code natifs iOS et Android utilisent le même modèle de composant en Swift, Objective-C, Kotlin, ou Java.

Les fonctionnalités qui méritent à Barkoder une place dans les récapitulatifs sont de véritables capacités. MatrixSight et le mode DeBlur offrent une technologie exclusive de récupération des dommages qui permet de lire les codes-barres physiquement endommagés, mal imprimés ou capturés dans des conditions d'éclairage défavorables. La détection multiple de codes-barres décode simultanément plusieurs codes-barres dans une seule image de la caméra, permettant ainsi aux magasiniers de scanner des étagères entières en une seule fois. La numérisation DPM (Direct Part Marking) prend en charge DataMatrix et d'autres formats dans des configurations gravées au laser et par microbillage que la plupart des bibliothèques à usage général ne gèrent pas correctement. La prise en charge des formats haute densité inclut PDF417, Aztèque et d'autres formats 2D avec une grande précision sur les appareils photo mobiles.

Comprendre IronBarcode

IronBarcode est une bibliothèque .NET native qui couvre l'intégralité du flux de travail des codes-barres (lecture et génération) dans tous les environnements .NET . Il s'agit de l'équivalent fonctionnel des capacités de Barkoder pour la plateforme .NET , avec des fonctionnalités supplémentaires qui n'ont de sens que dans les contextes serveur et poste de travail.

IronBarcode s'installe via NuGet et s'exécute entièrement en local. Aucun appel réseau n'est effectué pendant les opérations de lecture de codes-barres. Il fonctionne dans des environnements isolés du réseau, sur Azure Functions, dans des conteneurs Docker, dans AWS Lambdaet sur tous les environnements d'exécution .NET , de .NET Framework 4.6.2 à .NET 9. Le modèle d'API statique signifie qu'il n'y a pas d'instance de scanner à gérer, pas de cycle de vie à suivre et aucun problème de sécurité des threads lié aux appels simultanés.

Caractéristiques principales d' IronBarcode:

  • Couverture .NET complète : prend en charge .NET Framework 4.6.2+, .NET 6, 7, 8 et 9 ; Fonctionne sous Windows, Linux, macOS, Docker, Azure et AWS
  • Lecture et génération : Permet la lecture de codes-barres à partir de fichiers, de flux et de PDF, ainsi que la génération de codes-barres dans plus de 50 formats.
  • Conception de l'API statique : BarcodeReader.Read() et BarcodeWriter.CreateBarcode() sont des appels statiques sans instance à état à gérer
  • Correction d'erreurs basée sur l'apprentissage automatique : un pipeline de prétraitement d'images basé sur l'apprentissage automatique gère les codes-barres endommagés, dégradés et de faible qualité.
  • Prise en charge native des fichiers PDF : lit les codes-barres directement dans les documents PDF sans extraction d'image intermédiaire.
  • Intégration complète à l'écosystème .NET : compatible avec l'injection de dépendances, async/await, les middlewares et les modèles d'hébergement ASP.NET Core

Comparaison des fonctionnalités

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

Fonction Kit de développement logiciel Barkoder Code-barres IronBarcode
Support .NET / C# UI de caméra MAUI / Xamarin uniquement Complet — tous les environnements d'exécution .NET
Paquet NuGet Plugin.Maui.Barkoder, Barkoder.Xamarin IronBarcode
Lecture de codes-barres Oui — appareil photo mobile Oui — fichiers, flux, PDF
Génération de codes-barres None Formats complets — plus de 50 formats
Traitement PDF None Natif
Déploiement côté serveur None Complète — ASP.NET Core, Azure, Lambda, Docker
Tarification Licence du kit de développement logiciel mobile Licence perpétuelle disponible

Comparaison détaillée des fonctionnalités

Fonction Kit de développement logiciel Barkoder Code-barres IronBarcode
En lisant
Récupération de codes-barres endommagés MatrixSight / DeBlur La correction d'erreur ML, ReadingSpeed.ExtremeDetail
Détection de plusieurs codes-barres Oui — cadre de l'appareil photo ExpectMultipleBarcodes = true
Support DataMatrix / DPM Oui Oui — BarcodeEncoding.DataMatrix
Lecture de code QR Oui Oui
PDF417 Oui Oui
Aztèque Oui Oui
Code 128, Code 39, EAN Oui Oui — plus de 50 formats
Détection automatique du format Oui Oui
Génération
génération de codes-barres None Intégrale — tous formats
génération de code QR None QRCodeWriter.CreateQrCode()
Logo/marque sur QR None AddBrandLogo()
Plateforme
.NET / C# UI de caméra MAUI / Xamarin uniquement Complet
iOS (natif) Oui (principal) Via .NET MAUI
Android (natif) Oui (principal) Via .NET MAUI
Windows / Linux / macOS None Complet
Docker / conteneurs None Complet
Azure Functions None Complet
AWS Lambda None Complet
Isolation physique / hors ligne Oui (sur l'appareil) Oui (entièrement local)
Conception d'API
Prise en charge d'async/await N/A Complet
Injection de dépendance None Intégration complète de l'injection de dépendances .NET
Saisie de documents PDF None BarcodeReader.Read("doc.pdf")
Licence
Modèle de licence Licence du kit de développement logiciel mobile Achat perpétuel et unique
Prix ​​(entrée) Contacter le service des ventes See ironsoftware.com/csharp/barcode/licensing

Modèle de déploiement .NET

La différence la plus fondamentale entre Kit de développement logiciel Barkoder et Code-barres IronBarcode est la portée. La surface .NET de Barkoder est limitée à l'interface utilisateur de la caméra MAUI et Xamarin ; Code-barres IronBarcode couvre le reste de l'écosystème .NET.

Approche du SDK Barkoder

La liste des plateformes publiées par Barkoder est iOS Natif(Swift / Objective-C), Android Natif(Kotlin / Java), React Native, Flutter, Cordova, Capacitor, .NET MAUI, Xamarin, et Web (WASM). Sur .NET spécifiquement, cela correspond à Plugin.Maui.Barkoder et Barkoder.Xamarin. ASP.NET Core, Azure Functions, AWS Lambda, Docker, Linux servers, WPF, WinForms, Avalonia, and Blazor are absent. L'architecture du SDK repose sur un flux de données en direct provenant d'une caméra mobile. Il ne propose ni mode d'entrée basé sur des fichiers, ni API de flux, ni traitement par lots, ni modèle d'exécution côté serveur.

Pour les travaux .NET en dehors d'une application mobile MAUI ou Xamarin — une API de backend, un service worker, un outil de bureau, un pipeline de documents PDF — Barkoder ne propose pas de chemin. Il n'existe pas de surface API asynchrone pour l'utilisation serveur, pas d'intégration de l'injection de dépendances, pas de support Azure ou AWS Lambda, et pas de capacité de traitement PDF.

Approche IronBarcode

IronBarcode s'installe depuis NuGet en une seule commande et s'initialise avec une clé de licence au démarrage :

// NuGet: dotnet add package IronBarcode
using IronBarCode;

IronBarCode.License.LicenseKey = "YOUR-LICENSE-KEY";

// Read a barcode from an image
var results = BarcodeReader.Read("scan.png");
foreach (var result in results)
{
    Console.WriteLine($"Format: {result.Format}");
    Console.WriteLine($"Value: {result.Value}");
}
// NuGet: dotnet add package IronBarcode
using IronBarCode;

IronBarCode.License.LicenseKey = "YOUR-LICENSE-KEY";

// Read a barcode from an image
var results = BarcodeReader.Read("scan.png");
foreach (var result in results)
{
    Console.WriteLine($"Format: {result.Format}");
    Console.WriteLine($"Value: {result.Value}");
}
Imports IronBarCode

IronBarCode.License.LicenseKey = "YOUR-LICENSE-KEY"

' Read a barcode from an image
Dim results = BarcodeReader.Read("scan.png")
For Each result In results
    Console.WriteLine($"Format: {result.Format}")
    Console.WriteLine($"Value: {result.Value}")
Next
$vbLabelText   $csharpLabel

La bibliothèque fonctionne entièrement en local — aucun appel réseau, aucune transmission de données, aucune dépendance externe. Il s'intègre à l'injection de dépendances ASP.NET Core , prend en charge async/await et se déploie sur Docker, Azure Functionset AWS Lambdasans modification. Pour une intégration ASP.NET Core de niveau production, consultez la documentation IronBarcode .

Récupération de codes-barres endommagés

La récupération des codes-barres endommagés est la fonctionnalité qui amène le plus souvent les développeurs à s'intéresser à Barkoder en premier lieu. Les modes MatrixSight et DeBlur de Barkoder sont recommandés pour les scénarios logistiques et de fabrication où les étiquettes physiques sont usées, mouillées ou partiellement masquées.

Approche du SDK Barkoder

Le mode DeBlur de Barkoder applique un prétraitement de l'image (amélioration du contraste, netteté, correction de la rotation) avant la tentative de décodage. Ce système fonctionne exclusivement au sein du pipeline de la caméra mobile. Le mode est configuré au niveau du SDK avant le début de la numérisation, et le flux vidéo de la caméra est traité en continu. Il n'existe pas de chemin d'accès équivalent basé sur les fichiers.

// dotnet add package Plugin.Maui.Barkoder
// Configured against the BarkoderView in a MAUI ContentPage
BarkoderView.DeblurEnabled = true;
BarkoderView.SetEnabledBarcodeTypes(new[] { BarcodeType.Code128 });
BarkoderView.StartScanning(this);
// dotnet add package Plugin.Maui.Barkoder
// Configured against the BarkoderView in a MAUI ContentPage
BarkoderView.DeblurEnabled = true;
BarkoderView.SetEnabledBarcodeTypes(new[] { BarcodeType.Code128 });
BarkoderView.StartScanning(this);
$vbLabelText   $csharpLabel

Approche IronBarcode

IronBarcode traite le même problème avec ReadingSpeed.ExtremeDetail, qui active un pipeline d'analyse d'image multi-passages — appliquant la récupération de dommages basée sur ML, l'amélioration du contraste, le renforcement et la correction de rotation — avant de tenter le décodage. Cela fonctionne avec n'importe quel fichier, flux ou tableau d'octets en entrée :

using IronBarCode;

IronBarCode.License.LicenseKey = "YOUR-LICENSE-KEY";

var options = new BarcodeReaderOptions
{
    Speed = ReadingSpeed.ExtremeDetail,
    ExpectMultipleBarcodes = false,
};

var results = BarcodeReader.Read("worn-shipping-label.png", options);

if (results.Any())
{
    Console.WriteLine($"Recovered: {results.First().Value}");
}
else
{
    Console.WriteLine("Could not decode — image quality too low");
}
using IronBarCode;

IronBarCode.License.LicenseKey = "YOUR-LICENSE-KEY";

var options = new BarcodeReaderOptions
{
    Speed = ReadingSpeed.ExtremeDetail,
    ExpectMultipleBarcodes = false,
};

var results = BarcodeReader.Read("worn-shipping-label.png", options);

if (results.Any())
{
    Console.WriteLine($"Recovered: {results.First().Value}");
}
else
{
    Console.WriteLine("Could not decode — image quality too low");
}
Imports IronBarCode

IronBarCode.License.LicenseKey = "YOUR-LICENSE-KEY"

Dim options As New BarcodeReaderOptions With {
    .Speed = ReadingSpeed.ExtremeDetail,
    .ExpectMultipleBarcodes = False
}

Dim results = BarcodeReader.Read("worn-shipping-label.png", options)

If results.Any() Then
    Console.WriteLine($"Recovered: {results.First().Value}")
Else
    Console.WriteLine("Could not decode — image quality too low")
End If
$vbLabelText   $csharpLabel

ReadingSpeed.Balanced gère la plupart des codes-barres propres ou légèrement endommagés et est plus rapide. Réservez ExtremeDetail pour les cas où Balanced échoue — il est exhaustif mais nettement plus lent. Pour plus d'informations sur la lecture des codes-barres difficiles, consultez la documentation de lecture IronBarcode .

Détection de plusieurs codes-barres

La détection de plusieurs codes-barres assure une correspondance directe entre les deux plateformes : Barkoder gère plusieurs codes dans un cadre de caméra ; Code-barres IronBarcode gère plusieurs codes dans un document ou un fichier image.

Approche du SDK Barkoder

Le mode multi-codes-barres de Barkoder détecte et décode simultanément plusieurs codes-barres à partir d'une seule image de la caméra. Dans un entrepôt, un employé tient son téléphone au-dessus d'une étagère et reçoit simultanément toutes les valeurs des codes-barres. Ceci est configuré au niveau du SDK avant le début de l'analyse :

// Plugin.Maui.Barkoder — multi-scan mode in a MAUI ContentPage
BarkoderView.MulticodeCachingEnabled = true;
BarkoderView.StartScanning(this);

// IBarkoderDelegate callback delivers all decoded codes per frame
public void DidFinishScanning(BarcodeResult[] results)
{
    foreach (var r in results)
        Console.WriteLine($"{r.BarcodeTypeName}: {r.TextualData}");
}
// Plugin.Maui.Barkoder — multi-scan mode in a MAUI ContentPage
BarkoderView.MulticodeCachingEnabled = true;
BarkoderView.StartScanning(this);

// IBarkoderDelegate callback delivers all decoded codes per frame
public void DidFinishScanning(BarcodeResult[] results)
{
    foreach (var r in results)
        Console.WriteLine($"{r.BarcodeTypeName}: {r.TextualData}");
}
' Plugin.Maui.Barkoder — multi-scan mode in a MAUI ContentPage
BarkoderView.MulticodeCachingEnabled = True
BarkoderView.StartScanning(Me)

' IBarkoderDelegate callback delivers all decoded codes per frame
Public Sub DidFinishScanning(results As BarcodeResult())
    For Each r In results
        Console.WriteLine($"{r.BarcodeTypeName}: {r.TextualData}")
    Next
End Sub
$vbLabelText   $csharpLabel

Approche IronBarcode

Dans les applications serveur .NET , le scénario à codes-barres multiples implique généralement un document : une facture avec un code-barres de suivi d'expédition et un code-barres de produit, ou un manifeste d'expédition avec plusieurs articles par page. Code-barres IronBarcode gère cela avec ExpectMultipleBarcodes = true, et la même option fonctionne aussi bien sur les images que sur les PDFs :

using IronBarCode;

IronBarCode.License.LicenseKey = "YOUR-LICENSE-KEY";

var options = new BarcodeReaderOptions
{
    Speed = ReadingSpeed.Balanced,
    ExpectMultipleBarcodes = true,
};

// Works on images and PDFs — single method call
var results = BarcodeReader.Read("shipping-manifest.pdf", options);

foreach (var barcode in results)
{
    Console.WriteLine($"Page {barcode.PageNumber} | {barcode.Format} | {barcode.Value}");
}
using IronBarCode;

IronBarCode.License.LicenseKey = "YOUR-LICENSE-KEY";

var options = new BarcodeReaderOptions
{
    Speed = ReadingSpeed.Balanced,
    ExpectMultipleBarcodes = true,
};

// Works on images and PDFs — single method call
var results = BarcodeReader.Read("shipping-manifest.pdf", options);

foreach (var barcode in results)
{
    Console.WriteLine($"Page {barcode.PageNumber} | {barcode.Format} | {barcode.Value}");
}
Imports IronBarCode

IronBarCode.License.LicenseKey = "YOUR-LICENSE-KEY"

Dim options As New BarcodeReaderOptions With {
    .Speed = ReadingSpeed.Balanced,
    .ExpectMultipleBarcodes = True
}

' Works on images and PDFs — single method call
Dim results = BarcodeReader.Read("shipping-manifest.pdf", options)

For Each barcode In results
    Console.WriteLine($"Page {barcode.PageNumber} | {barcode.Format} | {barcode.Value}")
Next
$vbLabelText   $csharpLabel

Aucune extraction de page, aucune requête multiple, aucune surcharge réseau par code-barres. Le fichier PDF est lu nativement en un seul appel. Pour en savoir plus sur la lecture de plusieurs codes-barres et de fichiers PDF, consultez la documentation IronBarcode .

Prise en charge des formats DataMatrix et haute densité

DataMatrix est essentiel aux cas d'utilisation industriels et DPM — les formats que Barkoder met en avant pour les secteurs de la fabrication, de la santé et de l'automobile.

Approche du SDK Barkoder

Barkoder prend en charge la lecture DataMatrix avec des configurations DPM pour les marques gravées au laser et par microbillage. Le SDK prend également en charge les formats PDF417, Aztèque et autres formats 2D haute densité avec une grande précision sur les appareils photo mobiles. Tout ceci fonctionne au sein du pipeline de la caméra sur iOS ou Android :

// Plugin.Maui.Barkoder — DataMatrix scanning in a MAUI ContentPage
BarkoderView.SetEnabledBarcodeTypes(new[] { BarcodeType.DataMatrix });
BarkoderView.StartScanning(this);
// Plugin.Maui.Barkoder — DataMatrix scanning in a MAUI ContentPage
BarkoderView.SetEnabledBarcodeTypes(new[] { BarcodeType.DataMatrix });
BarkoderView.StartScanning(this);
' Plugin.Maui.Barkoder — DataMatrix scanning in a MAUI ContentPage
BarkoderView.SetEnabledBarcodeTypes(New BarcodeType() { BarcodeType.DataMatrix })
BarkoderView.StartScanning(Me)
$vbLabelText   $csharpLabel

Barkoder ne génère pas de codes-barres DataMatrix ni aucun autre format de code-barres. Il s'agit d'un SDK en lecture seule.

Approche IronBarcode

IronBarcode lit et génère nativement des données DataMatrix. Du côté de la lecture, ReadingSpeed.ExtremeDetail gère le faible contraste et les bords rugueux typiques des marques DPM gravées au laser. Du côté de la génération, BarcodeWriter.CreateBarcode() produit DataMatrix pour la création d'étiquettes de pièces :

using IronBarCode;

IronBarCode.License.LicenseKey = "YOUR-LICENSE-KEY";

// Generate a DataMatrix barcode for a part label
BarcodeWriter.CreateBarcode("PART-ID-20240315-A42", BarcodeEncoding.DataMatrix)
    .SaveAsPng("part-label.png");

// Generate a QR code with brand logo
QRCodeWriter.CreateQrCode("https://parts.example.com/A42", 500)
    .AddBrandLogo("company-logo.png")
    .SaveAsPng("branded-qr.png");

// Read auto-detects format — DataMatrix, QR, Code128, PDF417, etc.
var results = BarcodeReader.Read("etched-part.png");
using IronBarCode;

IronBarCode.License.LicenseKey = "YOUR-LICENSE-KEY";

// Generate a DataMatrix barcode for a part label
BarcodeWriter.CreateBarcode("PART-ID-20240315-A42", BarcodeEncoding.DataMatrix)
    .SaveAsPng("part-label.png");

// Generate a QR code with brand logo
QRCodeWriter.CreateQrCode("https://parts.example.com/A42", 500)
    .AddBrandLogo("company-logo.png")
    .SaveAsPng("branded-qr.png");

// Read auto-detects format — DataMatrix, QR, Code128, PDF417, etc.
var results = BarcodeReader.Read("etched-part.png");
Imports IronBarCode

IronBarCode.License.LicenseKey = "YOUR-LICENSE-KEY"

' Generate a DataMatrix barcode for a part label
BarcodeWriter.CreateBarcode("PART-ID-20240315-A42", BarcodeEncoding.DataMatrix) _
    .SaveAsPng("part-label.png")

' Generate a QR code with brand logo
QRCodeWriter.CreateQrCode("https://parts.example.com/A42", 500) _
    .AddBrandLogo("company-logo.png") _
    .SaveAsPng("branded-qr.png")

' Read auto-detects format — DataMatrix, QR, Code128, PDF417, etc.
Dim results = BarcodeReader.Read("etched-part.png")
$vbLabelText   $csharpLabel

Pour obtenir la liste complète des formats pris en charge et des options de génération, consultez le guide de génération de codes-barres IronBarcode .

Référence de mappage d'API

Ce tableau cadre les équivalences conceptuelles entre l'API de scan de caméra MAUI de Barkoder et comment Code-barres IronBarcode atteint le même résultat pour l'entrée de fichier, flux, ou PDF dans tout projet .NET :

Concept Barkoder Équivalent Code-barres IronBarcode
Initialisation du SDK avec la clé de licence IronBarCode.License.LicenseKey = "YOUR-LICENSE-KEY"
BarkoderView.DeblurEnabled = true Speed = ReadingSpeed.ExtremeDetail
BarkoderView.MulticodeCachingEnabled = true ExpectMultipleBarcodes = true
SetEnabledBarcodeTypes(BarcodeType.DataMatrix) BarcodeEncoding.DataMatrix (auto-détecté à la lecture)
BarkoderView.StartScanning(this) BarcodeReader.Read("image.png") — résultat synchrone
BarcodeResult.TextualData result.Value
BarcodeResult.BarcodeTypeName result.Format
Récupération des dommages de MatrixSight ReadingSpeed.ExtremeDetail avec prétraitement ML
Analyse des images de la caméra Entrée fichier / flux / tableau d'octets
Traitement sur l'appareil Entièrement local — aucun appel réseau
Aucun support de génération BarcodeWriter.CreateBarcode() / QRCodeWriter.CreateQrCode()
Prise en charge des fichiers PDF non disponible BarcodeReader.Read("document.pdf") — natif
Aucun déploiement de serveur Fonctionne avec ASP.NET Core, Docker, Azure Functionset Lambda.

Quand les équipes envisagent de passer du SDK Barkoder à IronBarcode

Exigences de projet .NET en dehors de MAUI

Le scénario le plus courant est simple : un développeur ou une équipe est en train de créer une application .NET ( ASP.NET Core, un service Windows, un outil console, une application de bureau) et découvre Barkoder lors de ses recherches. Ils lisent à propos de MatrixSight, DeBlur, et de la détection de multi-code-barres, trouvent les fonctionnalités attrayantes, puis découvrent que la surface .NET est Plugin.Maui.Barkoder et Barkoder.Xamarin — les deux uniquement pour l'interface utilisateur de caméra mobile. Les équipes dans cette situation ne quittent pas Barkoder ; Ils identifient dès le départ l'outil adapté à leur plateforme. Code-barres IronBarcode est la réponse .NET aux exigences auxquelles Barkoder répond sur mobile.

Flux de travail de traitement des codes-barres côté serveur

Certaines équipes commencent par prototyper un flux de traitement des codes-barres à l'aide d'une application de numérisation mobile (Barkoder ou un autre SDK mobile), puis doivent reproduire ou étendre ce flux côté serveur. Parmi les exemples courants, citons le traitement d'images de codes-barres téléchargées via une API, la lecture de codes-barres dans des documents PDF d'un système de gestion documentaire ou le traitement par lots d'archives d'étiquettes numérisées. Aucun de ces flux de travail n'est possible avec Barkoder, qui ne dispose d'aucun modèle de déploiement côté serveur. Code-barres IronBarcode gère tous ces cas avec la même API statique sur ASP.NET Core, Azure Functions, Docker et AWS Lambda.

Exigences de génération de codes-barres

Les équipes qui développent des applications .NET pour la logistique, les stocks ou la conformité constatent fréquemment que la lecture des codes-barres ne représente que la moitié du flux de travail. La génération de codes-barres (impression d'étiquettes, intégration de codes QR dans les documents, production de manifestes d'expédition) est tout aussi importante. Barkoder est conçu pour être en lecture seule ; Il ne possède aucune capacité de génération. Lorsqu'un projet s'étend au-delà de la simple lecture, une bibliothèque couvrant les deux aspects du flux de travail élimine le besoin d'intégrer une seconde dépendance. Code-barres IronBarcode assure la lecture et la génération de plus de 50 formats grâce à une API cohérente.

Traitement des documents PDF

Dans les applications Enterprise .NET , les codes-barres apparaissent fréquemment intégrés dans les documents PDF — factures, manifestes d'expédition, dossiers médicaux, documents de conformité. Barkoder n'a aucune notion de ce flux de travail ; Elle est conçue pour la capture d'images par caméra sur un appareil mobile. Les équipes qui doivent lire les codes-barres des documents PDF entrants, extraire des données de codes-barres pour des applications métier ou vérifier la présence de codes-barres dans des archives documentaires ont besoin d'une bibliothèque prenant en charge nativement le format PDF. Code-barres IronBarcode lit les codes-barres directement à partir des fichiers PDF sans extraction d'image intermédiaire.

Prévisibilité des prix et du déploiement

La tarification du SDK mobile de Barkoder est structurée autour de l'application mobile et du modèle de distribution — niveaux d'abonnement, par application, et par appareil liés au déploiement mobile. Pour les équipes dont le travail .NET se trouve en dehors de MAUI ou Xamarin, ce modèle de tarification ne s'applique pas car le SDK ne fonctionne pas là-bas. Lorsque Code-barres IronBarcode est l'outil approprié, le modèle de tarification est simple : une licence perpétuelle sans frais par demande et sans limites de volume sur le nombre de codes-barres traités.

Considérations courantes en matière de migration

De la saisie par caméra mobile à la saisie basée sur des fichiers

Les équipes qui ont mis en œuvre un prototype de numérisation mobile basé sur Barkoder et qui doivent reproduire cette fonctionnalité en .NET constateront que le modèle d'entrée passe des images de la caméra aux fichiers, flux ou tableaux d'octets. Code-barres IronBarcode accepte les mêmes données sous plusieurs formes — une chaîne de chemin de fichier, un Stream, un byte[], ou un System.Drawing.Image. La logique de traitement des codes-barres est par ailleurs identique :

// All of these call the same underlying pipeline
var results1 = BarcodeReader.Read("scan.png");
var results2 = BarcodeReader.Read(imageStream);
var results3 = BarcodeReader.Read(imageBytes);
// All of these call the same underlying pipeline
var results1 = BarcodeReader.Read("scan.png");
var results2 = BarcodeReader.Read(imageStream);
var results3 = BarcodeReader.Read(imageBytes);
' All of these call the same underlying pipeline
Dim results1 = BarcodeReader.Read("scan.png")
Dim results2 = BarcodeReader.Read(imageStream)
Dim results3 = BarcodeReader.Read(imageBytes)
$vbLabelText   $csharpLabel

Compromis entre vitesse et précision

Le mode DeBlur de Barkoder est toujours actif lorsqu'il est configuré et s'exécute dans la boucle de la caméra mobile. Code-barres IronBarcode expose explicitement le compromis précision-vitesse via ReadingSpeed. Pour la plupart des fichiers, ReadingSpeed.Balanced est approprié. Pour les entrées endommagées ou dégradées que Balanced ne parvient pas à décoder, ReadingSpeed.ExtremeDetail applique le pipeline ML multi-passages complet. Structurer le traitement par lots pour utiliser Balanced par défaut et revenir à ExtremeDetail seulement en cas d'échecs est l'approche recommandée pour les flux de travail sensibles à la performance.

Intégration asynchrone dans ASP.NET Core

La méthode BarcodeReader.Read() d'IronBarcode est synchrone. Dans les points de terminaison ASP.NET Core qui gèrent les demandes concurrentes, encapsulez l'appel dans Task.Run() pour éviter de bloquer le thread de demande :

var results = await Task.Run(() => BarcodeReader.Read(imageBytes, options));
var results = await Task.Run(() => BarcodeReader.Read(imageBytes, options));
Dim results = Await Task.Run(Function() BarcodeReader.Read(imageBytes, options))
$vbLabelText   $csharpLabel

Spécification de format pour les performances

IronBarcode détecte automatiquement les formats de codes-barres par défaut. Dans les scénarios à haut débit où le format attendu est connu, la spécification du format réduit le temps de traitement en éliminant les tests de format qui ne correspondront pas. Utilisez BarcodeReaderOptions.ExpectBarcodeTypes pour restreindre la recherche lorsque le format est connu à l'avance.

Fonctionnalités supplémentaires IronBarcode

Au-delà des équivalents directs des fonctionnalités mobiles de Barkoder, Code-barres IronBarcode offre des capacités spécifiquement adaptées aux contextes serveur et bureau .NET :

  • Intégration de logo QR Code : QRCodeWriter.CreateQrCode().AddBrandLogo() ajoute une image de marque au centre d'un code QR généré — une exigence courante pour les flux de travail de marketing et d'emballage
  • Lecture des codes-barres PDF : L'entrée PDF native signifie qu'il n'y a pas d'extraction d'image intermédiaire ; Les fichiers PDF multipages sont numérisés en une seule opération.
  • Impression de codes-barres sur les PDF : Code-barres IronBarcode peut générer des codes-barres et les imprimer sur des documents PDF existants, permettant ainsi l'automatisation des flux de travail d'étiquetage et de gestion des documents.
  • Lecture d'images en masse : BarcodeReader.ReadBulk() traite plusieurs images simultanément pour des opérations par lots à haut débit
  • Génération de codes QR stylisés : couleurs, marges et niveaux de correction d'erreur personnalisables pour les codes QR
  • Formats GS1 et HIBC : Prise en charge des normes de codes-barres pour le secteur de la santé et la chaîne d'approvisionnement, au-delà des formats 1D et 2D standard.

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

IronBarcode prend en charge .NET Framework 4.6.2 et toutes les versions modernes de .NET jusqu'à .NET 9, avec un développement actif suivant le cycle de sortie de .NET 10. La bibliothèque fonctionne sur Windows, Linux, et macOS, et est testée contre les cibles de déploiement Docker, Azure Functions, et AWS Lambda. À mesure que l'écosystème .NET continue d'évoluer vers des modèles multiplateformes et natifs du cloud, le modèle d'exécution entièrement local d'IronBarcode — sans dépendance au cloud, sans gestion des clés API et sans latence réseau — s'aligne sur la direction de l'architecture des applications .NET modernes.

Conclusion

Barkoder SDK et Code-barres IronBarcode opèrent dans des domaines largement différents. Barkoder est un SDK de numérisation de caméra mobile construit pour iOS et Android, avec un noyau de traitement C/C++, une distribution mobile hybride, et Plugin.Maui.Barkoder et Barkoder.Xamarin sur NuGet pour l'interface utilisateur de caméra MAUI et Xamarin. Code-barres IronBarcode est une bibliothèque .NET native construite pour le serveur, le bureau, le traitement programmatique MAUI, et les déploiements cloud, distribuée via NuGet et intégrée dans l'écosystème .NET via des modèles standard. Les deux bibliothèques se chevauchent étroitement — MAUI et Xamarin uniquement, et uniquement pour le cas d'utilisation de l'interface utilisateur de la caméra.

Barkoder est le bon choix lorsqu'il s'agit de construire une interface utilisateur de scan de caméra à l'intérieur d'une application mobile MAUI, Xamarin, React Native, Flutter, Cordova, ou Capacitor. Ses capacités MatrixSight et DeBlur sont véritablement robustes pour les scénarios de scan sur le terrain où la qualité de l'image ne peut pas être contrôlée. Sa détection multi-codes-barres et sa prise en charge DPM sont parfaitement adaptées aux flux de travail mobiles de fabrication et de logistique. Si votre équipe construit un frontal mobile pour les travailleurs scannant des articles physiques avec une caméra d'appareil, Barkoder doit figurer dans l'évaluation.

IronBarcode est le choix idéal pour la création d'applications .NET — API ASP.NET Core , services Windows, pipelines de traitement de documents, outils de bureau ou fonctions cloud — nécessitant la lecture, la génération ou les deux de codes-barres. Il couvre l'intégralité du flux de travail des codes-barres à partir d'un seul package NuGet , s'exécute entièrement en local sans dépendances réseau et s'intègre aux modèles .NET standard, notamment l'injection de dépendances, async/await et l'hébergement cloud. Pour les développeurs .NET qui ont été menés à Barkoder par des tableaux comparatifs, Code-barres IronBarcode fournit les mêmes capacités de base — lecture tolérante aux dommages, détection multi-code-barres, support des formats DataMatrix et haute densité — implémentée pour l'entrée de fichier, flux, et PDF à travers la plateforme .NET.

La conclusion pratique est simple : choisissez en fonction du cas d'utilisation. Une interface utilisateur de caméra MAUI correspond clairement à Barkoder ; le fichier, flux, PDF, génération, ou toute surface .NET non-MAUI correspond clairement à IronBarcode. De nombreux systèmes de production utilisent les deux — Barkoder sur le client mobile et Code-barres IronBarcode sur le serveur — et les deux s'intègrent naturellement comme un hybride.

Questions Fréquemment Posées

Qu'est-ce que Barkoder SDK ?

BarCode 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 code-barres pour les projets .NET.

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

IronBarcode utilise une API statique, sans état, ne nécessitant aucune gestion d'instance, alors que le SDK de Barkoder 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 Barkoder 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 le SDK de BarCode 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 à Barkoder 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 à Barkoder ?

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 Barkoder 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 du SDK de Barkoder vers IronBarcode ?

La migration du SDK de Barkoder vers IronBarcode implique principalement le remplacement des appels d'API basés sur des instances par les méthodes statiques d'IronBarcode, la suppression des modèles de licence et la mise à jour des 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().

Curtis Chau
Rédacteur technique

Curtis Chau détient un baccalauréat en informatique (Université de Carleton) et se spécialise dans le développement front-end avec expertise en Node.js, TypeScript, JavaScript et React. Passionné par la création d'interfaces utilisateur intuitives et esthétiquement plaisantes, Curtis aime travailler avec des frameworks modernes ...

Lire la suite

Équipe de soutien Iron

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