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

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

L'écosystème de codes-barres de Syncfusion génère des codes-barres via des commandes d'interface utilisateur et vend un produit distinct appelé Barcode Reader OPX pour la lecture. Ce logiciel de lecture utilise en interne ZXing .NET — une bibliothèque distribuée sous la licence Apache 2.0 que tout développeur peut installer gratuitement et directement. Les équipes qui ont besoin à la fois de la génération et de la lecture paient un abonnement pour utiliser une bibliothèque gratuite via une interface payante, et cet arrangement influence toutes les décisions architecturales et de coûts qui suivent dans l'histoire des codes-barres Syncfusion .

Comprendre le code-barres Syncfusion

Syncfusion barcode n'est pas une bibliothèque autonome ; syncfusion Essential Studio est un composant de la suite Syncfusion Essential Studio. Le côté génération est livré comme un contrôle d'interface utilisateur : SfBarcode pour WinForms et WPF, et SfBarcodeGenerator pour Blazor et MAUI. Ces contrôles affichent un code-barres sur un formulaire lors de l'exécution et sont conçus pour être utilisés au sein de l'écosystème plus large de composants d'interface utilisateur de Syncfusion.

La partie lecture est un produit commercial entièrement distinct. Barcode Reader OPX est une offre distincte de Syncfusion, dotée de sa propre licence, de son propre package NuGet et de sa propre API. Les équipes qui ont besoin à la fois de la génération et de la lecture doivent acheter, maintenir et configurer deux produits au lieu d'un seul.

La licence communautaire Syncfusion offre un niveau gratuit aux organisations éligibles, mais l'éligibilité exige que les quatre conditions suivantes soient vraies simultanément et en permanence :

  • Seuil de chiffre d'affaires : Chiffre d'affaires annuel brut de l'entreprise inférieur à 1 000 000 USD (toutes sources de revenus confondues, et pas seulement les logiciels)
  • Seuil de développeurs : cinq développeurs ou moins dans l'équipe
  • Seuil d'effectifs : Dix employés ou moins au total
  • Seuil de capital : Montant total des capitaux externes levés inférieur à 3 000 000 $ sur l'ensemble des levées de fonds.

Les organismes gouvernementaux sont systématiquement inéligibles, quelle que soit leur taille. Les conditions sont auto-certifiées et doivent être respectées en permanence ; le franchissement d'un seul seuil entraîne l'obligation d'obtenir une licence commerciale.

L'écosystème de codes-barres Syncfusion présente également les caractéristiques suivantes :

  • Architecture de contrôle de génération uniquement: SfBarcode et SfBarcodeGenerator n'ont pas d'API de lecture. Il n'y a pas de méthode .Read() ou .Scan() dans la surface de contrôle.
  • Clés de licence spécifiques à la version : les clés de licence Syncfusion sont liées à des plages de versions spécifiques d'Essential Studio. La mise à niveau de la version 24.x à la version 25.x nécessite une nouvelle clé, une mise à jour des secrets dans chaque environnement et un redéploiement pour éviter l'apparition de filigranes d'essai en production.
  • Enregistrement de plateforme en plusieurs étapes : Chaque plateforme cible (Blazor, MAUI) nécessite des appels d'enregistrement de service spécifiques à la plateforme en plus de l'appel de licence de base.
  • No headless generation path for Blazor: SfBarcodeGenerator est un composant Razor qui effectue le rendu dans le navigateur. Il ne possède pas d'API de sortie de fichiers côté serveur.
  • Pas de sortie PDF : ni le contrôle WinForms ni le contrôle Blazor ne peuvent écrire un code-barres directement dans un fichier PDF.
  • Licence pour suite uniquement : le code-barres Syncfusion est inclus dans Essential Studio. Il n'existe pas d'achat de paquets de codes-barres autonomes.
  • OPX reader encapsule un logiciel libre : Barcode Reader OPX utilise ZXing .NET (Apache 2.0) en interne. ZXing .NET est disponible directement via NuGet sans frais.

Architecture de contrôle de génération uniquement

SfBarcode est un contrôle WinForms avec une API basée sur les propriétés : Text, Symbology, BarHeight, NarrowBarWidth, ShowText. L'affichage d'un code-barres sur un formulaire fonctionne comme prévu dans un concepteur WinForms. La génération programmatique d'un fichier de code-barres nécessite le motif DrawToBitmap, qui implique la pré-attribution d'un Bitmap aux bonnes dimensions avant le rendu :

using Syncfusion.Windows.Forms.Barcode;
using System.Drawing;
using System.Drawing.Imaging;

// Version-specific key required — changes with every major Essential Studio release
Syncfusion.Licensing.SyncfusionLicenseProvider.RegisterLicense("YOUR-VERSION-SPECIFIC-KEY");

var barcode = new SfBarcode();
barcode.Text = "12345678";
barcode.Symbology = BarcodeSymbolType.Code128A;
barcode.BarHeight = 100;
barcode.NarrowBarWidth = 1;
barcode.ShowText = true;

barcode.Width = 400;
barcode.Height = 150;
using var bitmap = new Bitmap(barcode.Width, barcode.Height);
barcode.DrawToBitmap(bitmap, barcode.ClientRectangle);
bitmap.Save("barcode.png", ImageFormat.Png);
using Syncfusion.Windows.Forms.Barcode;
using System.Drawing;
using System.Drawing.Imaging;

// Version-specific key required — changes with every major Essential Studio release
Syncfusion.Licensing.SyncfusionLicenseProvider.RegisterLicense("YOUR-VERSION-SPECIFIC-KEY");

var barcode = new SfBarcode();
barcode.Text = "12345678";
barcode.Symbology = BarcodeSymbolType.Code128A;
barcode.BarHeight = 100;
barcode.NarrowBarWidth = 1;
barcode.ShowText = true;

barcode.Width = 400;
barcode.Height = 150;
using var bitmap = new Bitmap(barcode.Width, barcode.Height);
barcode.DrawToBitmap(bitmap, barcode.ClientRectangle);
bitmap.Save("barcode.png", ImageFormat.Png);
Imports Syncfusion.Windows.Forms.Barcode
Imports System.Drawing
Imports System.Drawing.Imaging

' Version-specific key required — changes with every major Essential Studio release
Syncfusion.Licensing.SyncfusionLicenseProvider.RegisterLicense("YOUR-VERSION-SPECIFIC-KEY")

Dim barcode As New SfBarcode()
barcode.Text = "12345678"
barcode.Symbology = BarcodeSymbolType.Code128A
barcode.BarHeight = 100
barcode.NarrowBarWidth = 1
barcode.ShowText = True

barcode.Width = 400
barcode.Height = 150
Using bitmap As New Bitmap(barcode.Width, barcode.Height)
    barcode.DrawToBitmap(bitmap, barcode.ClientRectangle)
    bitmap.Save("barcode.png", ImageFormat.Png)
End Using
$vbLabelText   $csharpLabel

Ce modèle implique le chargement de l'environnement d'exécution Windows Forms dans chaque projet qui l'appelle, y compris les applications console, les services ASP.NET Core et les fonctions Azure. La variante Blazor, SfBarcodeGenerator, est un composant Razor et n'a pas du tout de chemin de sortie de fichier côté serveur.

Comprendre IronBarcode

IronBarcode est une bibliothèque de codes-barres .NET conçue pour la génération et la lecture programmatiques sur tous les modèles d'applications .NET . Il est distribué sous la forme d'un package NuGet unique qui couvre à la fois la génération et la lecture dans la même interface API, sans nécessiter de produit secondaire.

La bibliothèque est conçue autour d'un modèle d'API statique : les appelants invoquent des méthodes statiques (BarcodeWriter.CreateBarcode, BarcodeReader.Read, QRCodeWriter.CreateQrCode) et enchaînent les méthodes de sortie directement sur le résultat. Ce modèle fonctionne de manière identique dans les applications de bureau WinForms, les services Web ASP.NET Core , les fonctions Azure, les applications console et les conteneurs Docker Linux.

Les principales caractéristiques sont les suivantes

  • Génération et lecture unifiées : les deux fonctionnalités se trouvent dans le même package NuGet , sous la même licence, utilisant la même interface API.
  • A API statique: Pas d'instanciation de contrôle, pas de dépendance d'exécution de l'interface utilisateur, pas de DrawToBitmap indirection.
  • Indépendant de la plateforme : le même code et la même clé de licence fonctionnent sous WinForms, Blazor, MAUI, ASP.NET Core, console, Azure Functions et Docker sous Linux.
  • Sortie directe des fichiers: Les BarCodes peuvent être enregistrés directement au format PNG, JPEG, SVG, HTML, PDF et autres formats sans allocation intermédiaire @Bitmap.
  • Support PDF intégré: SaveAsPdf() est une méthode de sortie de premier ordre ; La bibliothèque peut également lire nativement les codes-barres des documents PDF.
  • Détection automatique du format à la lecture : BarcodeReader.Read identifie le format du code-barres automatiquement sans demander à l'appelant de spécifier un type.
  • Clé unique et stable : la clé de licence ne change pas entre les mises à jour mineures ou les correctifs NuGet au sein d'une version majeure.
  • Fonctionnalités des codes QR : Prise en charge des logos de marque intégrés et de la personnalisation des couleurs directement dans l'API de génération.

Comparaison des fonctionnalités

Le tableau suivant résume les principales différences entre Code-barres Syncfusion et IronBarcode:

Fonction Code-barres Syncfusion Code-barres IronBarcode
génération de codes-barres Oui — Contrôle d'interface utilisateur (WinForms, WPF, Blazor, MAUI) Oui — API statique programmable, tous environnements
Lecture de codes-barres Non — nécessite un lecteur de codes-barres OPX séparé. Oui, même paquet que la génération précédente
Sortie de code-barres PDF Non — nécessite Syncfusion.Pdf séparément Oui - SaveAsPdf() intégré
lecture de codes-barres PDF Non Oui — natif
génération sans interface graphique / côté serveur Bizarre — le contrôle de l'interface utilisateur nécessite l'environnement d'exécution WinForms API native — statique, sans dépendance à l'interface utilisateur
Niveau gratuit Licence communautaire (quatre conditions simultanées) Essai gratuit de 30 jours (filigrane uniquement)
Modèle de licence Abonnement annuel ( Suite Essential Studio) Perpétuel à partir de 749

Comparaison détaillée des fonctionnalités

Fonction Code-barres Syncfusion Code-barres IronBarcode
Génération
Génération WinForms Oui (SfBarcode) Oui
Génération WPF Oui (SfBarcode) Oui
Génération Blazor Oui (SfBarcodeGenerator, browser-rendered) Oui (API côté serveur)
Génération MAUI Oui (SfBarcodeGenerator) Oui
Console / Fonctions Azure Nécessite l'environnement d'exécution WinForms Natif
Docker / Linux Limité Prise en charge complète
Sortie directe de fichier Via DrawToBitmap + Bitmap.Save .SaveAsPng(), .SaveAsPdf(), .SaveAsSvg(), etc.
QR avec logo intégré Non Oui - .AddBrandLogo()
En lisant
API de lecture dans le package de code-barres Non Oui - BarcodeReader.Read()
Produit de lecture séparé Oui — Lecteur de codes-barres OPX (payant) Pas nécessaire
OPX encapsule ZXing .NET (Apache 2.0) Oui, .NET est gratuit. N/A
lecture de codes-barres PDF Non Oui
Détection automatique du format N/A Oui
Détection de plusieurs codes-barres N/A Oui
Plateforme
API minimale ASP.NET Core Prise en charge non optimale Prise en charge complète
Multiplateforme (Linux) Limité Prise en charge complète
Licence
Niveau gratuit Licence communautaire (quatre conditions simultanées) essai de 30 jours
modèle de licence commerciale Abonnement annuel (Essential Studio) Perpétuel
Prix ​​commercial d'entrée de gamme ~995 $/développeur/an (Standard) À partir de 749 $ perpétuel
Étendue de la clé de licence Spécifique à la version (modifie avec les versions majeures) Version stable au sein de la version majeure
Frais d'inscription à la plateforme Procédure en plusieurs étapes (Enregistrer la licence + Ajouter SyncfusionBlazor + Configurer SyncfusionCore) Ligne unique
Prise en charge des fichiers PDF
Sortie PDF Non — nécessite Syncfusion.Pdf comme package supplémentaire Oui — intégré
Lecture de PDF Non Oui — intégré
Formats
Formats 1D Code 128, Code 39, EAN-8/13, UPC-A/E, Codabar et autres Tous les formats Syncfusion, Plus PDF417, Aztec, MaxiCode, GS1, USPS IMb et plus de 50 autres.
Formats 2D Code QR, DataMatrix Code QR, DataMatrix, PDF417, Micro PDF417, Aztec, MaxiCode

Architecture de génération

La différence architecturale fondamentale entre Code-barres Syncfusion et Code-barres IronBarcode réside dans la distinction entre un contrôle de rendu d'interface utilisateur et une bibliothèque de génération de fichiers programmatique.

Approche de Syncfusion

SfBarcode est un contrôle WinForms. Son rôle est d'afficher un code-barres dans la mise en page visuelle d'un formulaire. Pour produire un fichier à partir de cet outil, le développeur doit pré-allouer un Bitmap correspondant à la taille de sortie prévue, appeler DrawToBitmap, puis appeler Bitmap.Save. Chaque étape nécessite l'environnement d'exécution Windows Forms.

SfBarcodeGenerator for Blazor est un composant Razor qui s'affiche dans le navigateur via la couche JavaScript de Syncfusion Blazor. Il n'y a pas d'API côté serveur sur SfBarcodeGenerator. La génération d'un code-barres téléchargeable à partir d'une application Blazor nécessite l'interopérabilité JavaScript et des déclencheurs de téléchargement du navigateur plutôt qu'un appel à l'API serveur.

Pour les applications MAUI, SfBarcodeGenerator rend les codes-barres au sein du système de mise en page MAUI. La génération d'un code-barres sous forme de fichier pour transmission ou impression nécessite des étapes de traitement supplémentaires non prises en charge par le système de contrôle lui-même.

Approche IronBarcode

IronBarcode utilise une API statique et chaînable qui produit directement des fichiers de sortie. Le même modèle d'appel fonctionne dans n'importe quel modèle d'application .NET sans modification :

// NuGet: dotnet add package IronBarcode
using IronBarCode;

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

BarcodeWriter.CreateBarcode("12345678", BarcodeEncoding.Code128)
    .ResizeTo(400, 150)
    .SaveAsPng("barcode.png");
// NuGet: dotnet add package IronBarcode
using IronBarCode;

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

BarcodeWriter.CreateBarcode("12345678", BarcodeEncoding.Code128)
    .ResizeTo(400, 150)
    .SaveAsPng("barcode.png");
Imports IronBarCode

IronBarCode.License.LicenseKey = "YOUR-KEY"

BarcodeWriter.CreateBarcode("12345678", BarcodeEncoding.Code128) _
    .ResizeTo(400, 150) _
    .SaveAsPng("barcode.png")
$vbLabelText   $csharpLabel

La documentation relative à la génération de codes-barres 1D couvre toutes les symbologies et options de sortie prises en charge. Pas d'instanciation de contrôle, pas de Bitmap pré-alloué, et pas de dépendance à l'exécution de Windows Forms.

Lecture de codes-barres

Approche de Syncfusion

SfBarcode et SfBarcodeGenerator n'ont pas de capacité de lecture. L'écosystème Syncfusion comble cette lacune grâce à Barcode Reader OPX, un produit commercial distinct disposant de sa propre licence et de son propre processus d'achat.

Le lecteur de codes-barres OPX utilise ZXing .NET en interne. ZXing .NET est une bibliothèque de lecture de codes-barres open source publiée sous la licence Apache 2.0. Apache 2.0 est une licence permissive qui autorise une utilisation commerciale sans restriction. Tout développeur peut installer ZXing .NET directement :

dotnet add package ZXing.Net
dotnet add package ZXing.Net
SHELL

L'achat de Barcode Reader OPX implique le paiement d'un abonnement Syncfusion pour une interface utilisant une bibliothèque gratuite. Un flux de travail complet de gestion des codes-barres Syncfusion , incluant la génération et la lecture, requiert deux produits Syncfusion distincts, deux contrats de licence et deux API différentes.

Approche IronBarcode

La lecture des codes-barres est incluse dans le même package NuGet que leur génération. Aucun produit ou licence secondaire n'est requis :

using IronBarCode;

var results = BarcodeReader.Read("barcode.png");
foreach (var result in results)
{
    Console.WriteLine($"Format: {result.Format}");
    Console.WriteLine($"Value: {result.Value}");
}
using IronBarCode;

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

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

La documentation sur la lecture des codes-barres couvre la détection de plusieurs codes-barres, le calcul du score de confiance, la lecture à partir de tableaux d'octets et le réglage du rapport vitesse/précision. La lecture des documents PDF est également native, sans nécessiter de bibliothèque PDF séparée.

Architecture des licences

Approche de Syncfusion

La licence communautaire Syncfusion offre un accès gratuit, mais impose quatre conditions d'éligibilité simultanées : un chiffre d'affaires annuel brut inférieur à 1 000 000 $, cinq développeurs ou moins, dix employés ou moins et un capital extérieur total inférieur à 3 000 000 $. Ces quatre conditions doivent être remplies en permanence. Les organismes gouvernementaux ne sont pas admissibles. Le non-respect de l'une quelconque des conditions entraîne une obligation immédiate de licence commerciale, et le passage de la licence communautaire à une licence commerciale passe de 0 $ à environ 995 $ par développeur et par an au niveau Standard.

Au-delà des critères d'éligibilité, les clés de licence Syncfusion sont spécifiques à chaque version. Une clé émise pour Essential Studio 24.x n'est plus valide après la mise à niveau vers la version 25.x. Chaque mise à jour majeure de NuGet nécessite l'obtention d'une nouvelle clé depuis le portail de compte, la mise à jour des secrets d'environnement et un redéploiement afin d'éviter l'apparition de filigranes d'essai dans les résultats de production.

L'inscription à la plateforme ajoute des étapes supplémentaires. Une application Blazor nécessite trois entrées de configuration distinctes :

// Step 1: License registration
Syncfusion.Licensing.SyncfusionLicenseProvider.RegisterLicense("YOUR-VERSION-SPECIFIC-KEY");

// Step 2: Service registration in Program.cs
builder.Services.AddSyncfusionBlazor();

// Step 3: Namespace imports in _Imports.razor
// @using Syncfusion.Blazor
// @using Syncfusion.Blazor.BarcodeGenerator
// Step 1: License registration
Syncfusion.Licensing.SyncfusionLicenseProvider.RegisterLicense("YOUR-VERSION-SPECIFIC-KEY");

// Step 2: Service registration in Program.cs
builder.Services.AddSyncfusionBlazor();

// Step 3: Namespace imports in _Imports.razor
// @using Syncfusion.Blazor
// @using Syncfusion.Blazor.BarcodeGenerator
' Step 1: License registration
Syncfusion.Licensing.SyncfusionLicenseProvider.RegisterLicense("YOUR-VERSION-SPECIFIC-KEY")

' Step 2: Service registration in Program.vb
builder.Services.AddSyncfusionBlazor()

' Step 3: Namespace imports in _Imports.razor
' @Imports Syncfusion.Blazor
' @Imports Syncfusion.Blazor.BarcodeGenerator
$vbLabelText   $csharpLabel

Les applications MAUI nécessitent une quatrième étape : builder.ConfigureSyncfusionCore().

Approche IronBarcode

L'activation de la licence Code-barres IronBarcode est une attribution unique, identique sur toutes les plateformes et tous les modèles d'application :

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

IronBarCode.License.LicenseKey = "YOUR-KEY"
$vbLabelText   $csharpLabel

La page relative aux licences IronBarcode décrit le modèle de licence perpétuelle. Le guide de configuration des clés de licence couvre les modèles de variables d'environnement pour les déploiements CI/CD et Docker. La clé ne change pas entre les mises à jour mineures et les correctifs au sein d'une même version majeure, et aucun enregistrement de service spécifique à la plateforme n'est requis.

Sortie PDF

Approche de Syncfusion

Les commandes de codes-barres Syncfusion ne peuvent pas générer de sortie PDF. L'intégration d'un code-barres dans un document PDF à l'aide des outils Syncfusion nécessite de combiner le paquet de contrôle de code-barres avec Syncfusion.Pdf, de générer le code-barres en tant que Bitmap à travers DrawToBitmap, puis d'insérer ce bitmap en tant qu'élément d'image au sein du modèle d'objet du document PDF. Ce flux de travail implique deux produits Syncfusion distincts, deux packages NuGet et un pipeline de rendu en plusieurs étapes.

La lecture des codes-barres à partir de documents PDF existants n'est prise en charge ni par le contrôle des codes-barres ni par Barcode Reader OPX.

Approche IronBarcode

Le format PDF est un format de sortie de premier ordre dans IronBarcode. Aucune bibliothèque secondaire n'est requise :

BarcodeWriter.CreateBarcode("12345678", BarcodeEncoding.Code128)
    .ResizeTo(400, 150)
    .SaveAsPdf("barcode.pdf");
BarcodeWriter.CreateBarcode("12345678", BarcodeEncoding.Code128)
    .ResizeTo(400, 150)
    .SaveAsPdf("barcode.pdf");
BarcodeWriter.CreateBarcode("12345678", BarcodeEncoding.Code128) _
    .ResizeTo(400, 150) _
    .SaveAsPdf("barcode.pdf")
$vbLabelText   $csharpLabel

La bibliothèque lit également les codes-barres directement à partir des documents PDF :

var pdfResults = BarcodeReader.Read("shipping-manifest.pdf");
foreach (var result in pdfResults)
{
    Console.WriteLine($"Page {result.PageNumber}: {result.Value}");
}
var pdfResults = BarcodeReader.Read("shipping-manifest.pdf");
foreach (var result in pdfResults)
{
    Console.WriteLine($"Page {result.PageNumber}: {result.Value}");
}
Dim pdfResults = BarcodeReader.Read("shipping-manifest.pdf")
For Each result In pdfResults
    Console.WriteLine($"Page {result.PageNumber}: {result.Value}")
Next
$vbLabelText   $csharpLabel

Le guide de génération de PDF avec codes-barres traite des sorties multipages et de l'intégration de codes-barres au sein d'autres contenus PDF.

Référence de mappage d'API

Code-barres Syncfusion Équivalent Code-barres IronBarcode
SyncfusionLicenseProvider.RegisterLicense("KEY") IronBarCode.License.LicenseKey = "key"
builder.Services.AddSyncfusionBlazor() Non requis
builder.ConfigureSyncfusionCore() Non requis
new SfBarcode() BarcodeWriter.CreateBarcode() (statique)
barcode.Text = "value" Premier paramètre de CreateBarcode()
barcode.Symbology = BarcodeSymbolType.Code128A BarcodeEncoding.Code128
barcode.Symbology = BarcodeSymbolType.QRBarcode QRCodeWriter.CreateQrCode()
barcode.BarHeight = 100 .ResizeTo(width, 100)
barcode.ShowText = true .AddBarcodeText()
barcode.DrawToBitmap(bitmap, rect) .SaveAsPng(path)
Manuel BitmapMemoryStream .ToPngBinaryData()
<SfBarcodeGenerator Type="BarcodeType.Code128" Value="..."> BarcodeWriter.CreateBarcode(value, BarcodeEncoding.Code128) côté serveur
<SfQRCodeGenerator Value="..."> QRCodeWriter.CreateQrCode(value, size) côté serveur
BarcodeType.Code128 (Enum Blazor) BarcodeEncoding.Code128
Lecteur de codes-barres OPX (encapsule ZXing .NET) BarcodeReader.Read(path)- natif, pas de wrapper
Aucune API de lecture dans les contrôles de codes-barres BarcodeReader.Read(path)
Aucune sortie PDF BarcodeWriter.CreateBarcode(...).SaveAsPdf(path)

Quand les équipes envisagent de passer de Code-barres Syncfusion à IronBarcode

Exigences de lecture des codes-barres

Une équipe travaillant entièrement avec WinForms ou Blazor peut commencer avec SfBarcode ou SfBarcodeGenerator à des fins d'affichage et recevoir plus tard une demande de numérisation de codes-barres entrants à partir d'images téléchargées, de pièces jointes à des courriels ou de captures d'appareil photo. À ce stade, la surface de contrôle Syncfusion n'offre aucune possibilité d'aller plus loin. La documentation de Syncfusion oriente les équipes vers Barcode Reader OPX, un achat commercial distinct qui encapsule ZXing .NET — une bibliothèque disponible gratuitement sous la licence Apache 2.0. Les équipes qui découvrent ce problème réévaluent fréquemment si le maintien d'une interface payante autour d'un logiciel libre constitue la décision architecturale appropriée, en particulier lorsqu'une bibliothèque unifiée de génération et de lecture éliminerait complètement cette indirection.

Génération côté serveur et côté serveur

Les applications qui débutent comme des outils de bureau WinForms ou WPF évoluent parfois pour inclure une couche API Web, un service de traitement en arrière-plan ou une fonction cloud qui doit générer des fichiers de codes-barres. SfBarcode porte une dépendance d'exécution Windows Forms qui ne se traduit pas proprement vers les services ASP.NET Core, Azure Functions ou les conteneurs Docker Linux. Le modèle DrawToBitmap nécessite une surface de rendu WinForms qui peut ne pas exister dans un environnement headless. Les équipes qui atteignent ce niveau ont généralement besoin d'une bibliothèque dont le modèle de génération est découplé dès le départ de la pile de rendu de l'interface utilisateur.

Changements d'admissibilité aux licences communautaires

La licence communautaire de Syncfusion est particulièrement intéressante pour les jeunes équipes, précisément au moment où elles connaissent leur croissance la plus rapide. Les quatre conditions d'éligibilité simultanées — chiffre d'affaires, effectifs, nombre d'employés et capitaux levés — créent un obstacle à l'obtention de licences qui peut survenir soudainement. Un tour de table de série A permet généralement à une startup de franchir le seuil de capital de 3 000 000 $ le jour de sa clôture, déclenchant une obligation de licence commerciale quel que soit le nombre de développeurs ou les revenus. Les équipes qui ont construit leurs flux de production autour de la licence communautaire doivent tenir compte du coût et du calendrier de cette transition, en particulier lorsque la licence commerciale couvre la Suite Essential Studio complète et non seulement le composant de code-barres.

Réduction des coûts de configuration spécifiques à chaque version

Les équipes d'exploitation qui assurent la maintenance des applications Syncfusion dans les pipelines CI/CD sont confrontées à la rotation des clés de licence comme tâche récurrente liée aux mises à jour des versions de NuGet . Une clé valide pour Essential Studio 24.x cesse de fonctionner après la mise à niveau vers la version 25.x, ce qui implique la mise à jour des secrets dans chaque environnement de déploiement et la vérification que les filigranes d'essai n'apparaissent pas dans les résultats de production. Les équipes ayant des cadences de publication fréquentes ou plusieurs cibles de déploiement trouvent que cette surcharge de rotation est disproportionnée par rapport au bénéfice apporté, en particulier lorsque le cas d'utilisation sous-jacent consiste à générer une image de code-barres plutôt qu'à consommer une Suite complète de composants d'interface utilisateur.

Considérations courantes en matière de migration

Suppression de l'enregistrement du fournisseur de licences Syncfusion

L'appel de licence Syncfusion - SyncfusionLicenseProvider.RegisterLicense("KEY")- apparaît généralement dans Program.cs, App.xaml.cs, ou dans une méthode de démarrage d'application. Elle doit être supprimée et remplacée par IronBarCode.License.LicenseKey = "KEY" au même endroit dans la séquence de démarrage. Les appels d'enregistrement de service associés (AddSyncfusionBlazor, ConfigureSyncfusionCore) et les importations d'espace de noms dans _Imports.razor doivent également être supprimés si aucun autre composant Syncfusion ne subsiste dans le projet.

Modèle SfBarcode vers BarcodeWriter

Le flux de travail SfBarcode implique l'instanciation du contrôle, l'affectation des propriétés, la spécification des dimensions et le rendu DrawToBitmap. L'équivalent en Code-barres IronBarcode est un appel unique enchaîné : BarcodeWriter.CreateBarcode(value, encoding).ResizeTo(w, h).SaveAsPng(path). Les valeurs de l'énumération BarcodeSymbolType correspondent directement aux valeurs BarcodeEncoding - Code128A correspond à Code128, QRBarcode correspond à QRCodeWriter.CreateQrCode.

Modèle de composant Blazor vers point de terminaison d'API

SfBarcodeGenerator est un composant Razor ; Le remplacer par Code-barres IronBarcode constitue un changement structurel plutôt qu'une substitution ligne par ligne. Le modèle Code-barres IronBarcode pour Blazor est un point de terminaison API minimal qui renvoie une image de code-barres sous forme d'octets, référencée à partir du composant Razor via une balise <img src="..."> standard. Cette approche produit un point de terminaison côté serveur qui peut être testé indépendamment et réutilisé par différents clients, plutôt qu'un composant rendu par navigateur lié à la couche JavaScript Syncfusion Blazor .

Fonctionnalités supplémentaires IronBarcode

Les fonctionnalités suivantes Code-barres IronBarcode ne sont pas abordées dans les sections précédentes et peuvent s'avérer pertinentes en fonction des exigences du projet :

  • Code QR avec logo de marque intégré: .AddBrandLogo("logo.png")@ intègre un logo d'entreprise au centre du code QR tout en maintenant la fiabilité de la numérisation grâce à la correction des erreurs.
  • Sortie SVG : Les codes-barres peuvent être exportés sous forme de fichiers vectoriels SVG adaptés à l'impression et aux écrans haute résolution.
  • Sortie HTML : Les codes-barres peuvent être exportés sous forme de fichiers HTML autonomes.
  • Détection multi-codes-barres: BarcodeReader.Read détecte et renvoie tous les codes-barres présents dans une seule image.
  • Évaluation de la confiance des lectures : Chaque résultat de lecture comprend un score de confiance qui permet de filtrer les détections de faible qualité.
  • Annotation et style : Les codes-barres générés prennent en charge la personnalisation des marges, des couleurs, des polices et des annotations sans nécessiter d'étape de retouche d'image externe.
  • Formats GS1 et USPS IMb : Code-barres IronBarcode prend en charge des formats spécialisés non contrôlés par Syncfusion, notamment GS1-128, USPS Intelligent Mail Barcode, MaxiCode et Aztec.

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

IronBarcode cible .NET Standard 2.0 et versions ultérieures, assurant la compatibilité avec .NET Framework 4.6.2 et versions ultérieures, .NET Core 3.1 et toutes les versions actuelles de .NET , y compris .NET 8 et .NET 9. La bibliothèque bénéficie de mises à jour régulières, alignées sur le calendrier de publication de .NET de Microsoft, garantissant ainsi sa compatibilité avec .NET 10, dont la sortie est prévue fin 2026. Étant une bibliothèque statique et non un contrôle d'interface utilisateur, Code-barres IronBarcode n'est pas affectée par les différences d'évolution des plateformes WinForms, WPF, Blazor et MAUI : le même package NuGet et la même API fonctionnent sur tous les modèles d'applications .NET actuels et futurs, sans nécessiter de surcouches spécifiques à une plateforme.

Conclusion

Syncfusion Barcode et Code-barres IronBarcode diffèrent à un niveau architectural qui va bien au-delà du nombre de fonctionnalités. Le composant de rendu de code-barres Syncfusion est intégré à une vaste Suite de composants ; son objectif est d'afficher un code-barres dans une mise en page de formulaire, et il atteint parfaitement cet objectif. Code-barres IronBarcode est une bibliothèque de génération et de lecture de fichiers programmable dont l'objectif est de traiter les codes-barres comme des données — générant des fichiers, lisant des images et fonctionnant dans n'importe quel environnement de déploiement. Ce sont des outils différents, conçus pour des cas d'utilisation principaux différents, et le choix entre eux est largement déterminé par le cas d'utilisation qui s'applique au projet en question.

Syncfusion Barcode est le choix approprié lorsqu'une équipe utilise déjà Syncfusion Essential Studio pour d'autres composants d'interface utilisateur (grilles, graphiques, planificateurs) et que le besoin en code-barres est d'afficher un code-barres sur un formulaire ou dans une page Blazor . Dans ce contexte, le contrôle du code-barres est déjà inclus dans la licence existante, et son ajout à un formulaire se résume à glisser-déposer un contrôle dans le concepteur. Pour les équipes présentant ces conditions spécifiques, l'achat Code-barres IronBarcode n'apporte aucune valeur ajoutée par rapport à la licence existante.

IronBarcode est le choix approprié lorsque les besoins vont au-delà de l'affichage de formulaires : lecture de codes-barres à partir d'images téléchargées, génération de fichiers de codes-barres dans un service backend, lecture de codes-barres à partir de documents PDF, déploiement dans un conteneur Docker sous Linux ou création d'un point de terminaison d'API Web qui renvoie des images de codes-barres. C'est également le choix approprié pour les équipes dont la situation en matière de licences ne satisfait pas de manière permanente aux quatre conditions de la licence communautaire Syncfusion , ou pour les équipes qui souhaitent éviter la rotation des clés spécifiques à une version dans le cadre du processus de mise à niveau NuGet . Le modèle de licence perpétuelle d'IronBarcode et son package unifié de génération et de lecture répondent directement à ces préoccupations opérationnelles.

La contrainte déterminante de l'écosystème de codes-barres de Syncfusion est que la génération et la lecture sont séparées entre deux produits, et que le produit de lecture est une interface commerciale autour d'un logiciel libre. Pour les équipes qui ont besoin des deux fonctionnalités, cette configuration engendre deux coûts de licence, deux interfaces API et une dépendance à ZXing .NET qui aurait pu être directement prise en charge. Le modèle à paquet unique d'IronBarcode supprime cette indirection. Le bon choix est l'architecture qui correspond aux exigences réelles : si l'affichage de codes-barres dans une interface utilisateur Syncfusion existante constitue l'ensemble des besoins, Syncfusion est la solution naturelle ; Si le traitement des codes-barres relève du backend, Code-barres IronBarcode constitue la base la plus appropriée.

Questions Fréquemment Posées

Qu'est-ce que le BarCode de Syncfusion ?

Syncfusion BarCode 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 Syncfusion BarCode et IronBarcode ?

IronBarcode utilise une API statique, sans état, ne nécessitant aucune gestion d'instance, tandis que Syncfusion Barcode nécessite 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.

IronBarcode est-il plus facile à licencier que Syncfusion Barcode ?

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 Syncfusion 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 à Syncfusion Barcode ?

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 à Syncfusion ?

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 Syncfusion BarCode 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 Syncfusion BarCode à IronBarcode ?

La migration de Syncfusion Barcode vers IronBarcode implique principalement le remplacement des appels API basés sur les instances par les méthodes statiques d'IronBarcode, la suppression des chaudières 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().

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