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

Barcode4.NET vs IronBarcode : Comparaison de la bibliothèque de codes-barres C#

Barcode4NET a atteint sa fin de vie sans annonce officielle. La vente de nouvelles licences via ComponentSource a cessé, aucun package NuGet n'a jamais été publié et la bibliothèque cible exclusivement .NET Framework. Pour les équipes ayant hérité d'une dépendance à Barcode4NET, cet article compare les fonctionnalités de cette bibliothèque à celles d' Code-barres IronBarcode aujourd'hui : portée de la plateforme, conception de l'API, capacité de lecture des codes-barres et réalité des licences, ce qui rend une évaluation comparative plutôt inhabituelle.

Comprendre Barcode4NET

Barcode4NET était une bibliothèque commerciale de génération de codes-barres distribuée par ComponentSource et d'autres revendeurs de logiciels similaires. Il a été conçu pour les applications .NET Frameworksous Windows — principalement Windows Forms et ASP.NET Web Forms — et fournissait une sortie bitmap propre pour les symbologies 1D de base de son époque.

La bibliothèque n'a jamais été disponible sous forme de package NuGet . Elle était distribuée sous forme de DLL que les développeurs intégraient au système de contrôle de version ou plaçaient dans un emplacement partagé pour les artefacts. Chaque projet qui l'utilise nécessite un élément <Reference> manuel dans le fichier .csproj pointant vers la DLL sur le disque. C'était une pratique courante lorsque Barcode4NETétait actif, mais cela crée des frictions importantes dans les flux de travail CI/CD modernes.

Principales caractéristiques architecturales de Barcode4NET :

  • Property-setter API: Les développeurs ont créé un objet Barcode, lui ont attribué Symbology, Data, Width, et Height comme propriétés, puis ont appelé GenerateBarcode() pour recevoir un System.Drawing.Bitmap@
  • Focus sur la symbologie 1D : Codes pris en charge : Code128, Code39, EAN-13 et UPC-A ; La prise en charge des codes QR était limitée selon la version.
  • Génération uniquement : aucune fonctionnalité de lecture ou de numérisation de codes-barres n'a jamais fait partie du produit.
  • Compatible uniquement avec Windows et .NET Framework : aucune prise en charge de .NET Core, .NET 5+, Linux, macOS, Dockerou des environnements d'exécution cloud.
  • Aucune distribution NuGet : une référence DLL manuelle est requise dans chaque fichier projet et pipeline de build. Fin de vie : aucune nouvelle licence disponible, aucun correctif de sécurité, aucun correctif de bug et aucune solution de migration proposée par le fournisseur.

API de génération Barcode4NET

Le flux de travail de génération complet dans Barcode4NETutilisait un modèle de définition de propriétés :

// Barcode4NET— manual DLL, .NET Frameworkonly
// Non Paquet NuGet— requires ThirdParty/Barcode4NET/Barcode4NET.dll in source control
using Barcode4NET;
using System.Drawing;
using System.Drawing.Imaging;

var barcode = new Barcode4NET.Barcode();
barcode.Symbology = Symbology.Code128;
barcode.Data = "ITEM-12345";
barcode.Width = 300;
barcode.Height = 100;
Bitmap barcodeImage = barcode.GenerateBarcode();
barcodeImage.Save(outputPath, ImageFormat.Png);
// Barcode4NET— manual DLL, .NET Frameworkonly
// Non Paquet NuGet— requires ThirdParty/Barcode4NET/Barcode4NET.dll in source control
using Barcode4NET;
using System.Drawing;
using System.Drawing.Imaging;

var barcode = new Barcode4NET.Barcode();
barcode.Symbology = Symbology.Code128;
barcode.Data = "ITEM-12345";
barcode.Width = 300;
barcode.Height = 100;
Bitmap barcodeImage = barcode.GenerateBarcode();
barcodeImage.Save(outputPath, ImageFormat.Png);
Imports Barcode4NET
Imports System.Drawing
Imports System.Drawing.Imaging

Dim barcode As New Barcode4NET.Barcode()
barcode.Symbology = Symbology.Code128
barcode.Data = "ITEM-12345"
barcode.Width = 300
barcode.Height = 100
Dim barcodeImage As Bitmap = barcode.GenerateBarcode()
barcodeImage.Save(outputPath, ImageFormat.Png)
$vbLabelText   $csharpLabel

Ceci représente l'intégralité de l'interface de l'API Barcode4NET. La bibliothèque ne proposait ni enchaînement fluide, ni fonction de lecture, ni sortie PDF, ni options avancées de code QR telles que l'intégration de logos ou le contrôle de correction d'erreurs.

Comprendre IronBarcode

IronBarcode est une bibliothèque commerciale .NET de codes-barres développée par Iron Software , qui couvre à la fois la génération et la lecture des codes-barres dans un seul package. Il est distribué exclusivement via NuGet, cible .NET Framework4.6.2 à .NET 9 et fonctionne sous Windows, Linux, macOS, Docker, Azure et AWS Lambda.

La bibliothèque est construite autour d'une API statique fluide. La génération utilise BarcodeWriter.CreateBarcode() avec une chaîne de données et un type d'encodage, suivis d'options chaînables pour la taille, la couleur et le format. La lecture utilise BarcodeReader.Read() qui accepte les chemins d'accès aux fichiers images, les flux et les documents PDF sans nécessiter de bibliothèque PDF distincte.

Caractéristiques principales d' IronBarcode:

  • Fluent static generation API: BarcodeWriter.CreateBarcode() chains .ResizeTo(), .AddAnnotationTextAboveBarcode(), et save methods in a single expression
  • Lecture de BarCodes : BarcodeReader.Read() décode nativement les codes-barres à partir d'images et de PDF
  • Prise en charge de nombreux formats : Code128, Code39, EAN-13, UPC-A, QR Code, Data Matrix, PDF417, Aztec, et bien d'autres.
  • Spécialisation du code QR: QRCodeWriter.CreateQrCode() offre des options spécifiques au code QR, notamment l'intégration de logos et le niveau de correction des erreurs
  • Distribution NuGet: Standard dotnet add package IronBarcode installation ; dotnet restore gère toutes les dépendances
  • Multiplateforme : Fonctionne sur .NET 5, 6, 7, 8 et 9 sous Windows, Linux et macOS, y compris les conteneurs Dockeret les environnements d'exécution cloud sans serveur.
  • Produit commercial actif : mises à jour régulières, correctifs de sécurité, mises à jour de compatibilité avec les versions .NET et licences disponibles à l'achat à des prix définis.

Comparaison des fonctionnalités

Le tableau suivant met en évidence les différences les plus importantes entre Barcode4NETet IronBarcode:

Fonction Barcode4NET Code-barres IronBarcode
package NuGet Non — DLL manuelle uniquement Oui (IronBarcode)
génération de codes-barres Oui Oui
Lecture de codes-barres Non Oui
Prise en charge multiplateforme Non — Windows uniquement Oui — Windows, Linux, macOS
Maintenance active Non (fin de vie) Oui
Nouvelles licences disponibles Non Oui

Comparaison détaillée des fonctionnalités

Fonction Barcode4NET Code-barres IronBarcode
Génération
Génération Code128 Oui Oui
Génération Code39 Oui Oui
Génération EAN-13 / UPC-A Oui Oui
génération de code QR Limité Oui - QRCodeWriter.CreateQrCode()
Code QR avec logo Non Oui - .AddBrandLogo()
Matrice de données / PDF417 / Aztèque Non Oui
API chaînable fluide Non Oui
En lisant
Lecture de codes-barres à partir d'images Non Oui - BarcodeReader.Read()
Lecture de codes-barres à partir de fichiers PDF Non Oui, natif, sans bibliothèque supplémentaire
Détection de plusieurs codes-barres Non Oui - ExpectMultipleBarcodes
configuration de vitesse de lecture Non Oui - ReadingSpeed enum
Plateforme
.NET Framework Oui Oui (.NET Framework 4.6.2+)
.NET 5 / 6 / 7 / 8 / 9 Non Oui
Linux / macOS Non Oui
Docker Non Oui
Azure / AWS Lambda Non Oui
Distribution
Paquet NuGet Non Oui
dotnet restore compatible Non Oui
Intégration CI/CD Étapes manuelles de la DLL Restauration standard
Maintenance
Développement actif Non (fin de vie) Oui
correctifs de sécurité Non Oui
Corrections de bugs Non Oui
Nouvelles licences Non Oui — Lite 749 $, Plus 1 499 $, Professional 2 999 $, Illimité 5 999 $

Conception d'API de génération

L'API de génération représente le point de comparaison le plus direct entre ces deux bibliothèques, puisque la génération était la seule fonctionnalité offerte par Barcode4NET.

Approche Barcode4NET

Barcode4NET utilisait un modèle de définition de propriétés impératif. Les développeurs ont instancié un objet Barcode, lui ont attribué des propriétés individuelles et ont appelé GenerateBarcode() pour recevoir un System.Drawing.Bitmap :

using Barcode4NET;
using System.Drawing;
using System.Drawing.Imaging;

public Bitmap GenerateLabel(string sku)
{
    var barcode = new Barcode4NET.Barcode();
    barcode.Symbology = Symbology.Code128;
    barcode.Data = sku;
    barcode.Width = 400;
    barcode.Height = 120;
    return barcode.GenerateBarcode();
}
using Barcode4NET;
using System.Drawing;
using System.Drawing.Imaging;

public Bitmap GenerateLabel(string sku)
{
    var barcode = new Barcode4NET.Barcode();
    barcode.Symbology = Symbology.Code128;
    barcode.Data = sku;
    barcode.Width = 400;
    barcode.Height = 120;
    return barcode.GenerateBarcode();
}
Imports Barcode4NET
Imports System.Drawing
Imports System.Drawing.Imaging

Public Function GenerateLabel(sku As String) As Bitmap
    Dim barcode As New Barcode4NET.Barcode()
    barcode.Symbology = Symbology.Code128
    barcode.Data = sku
    barcode.Width = 400
    barcode.Height = 120
    Return barcode.GenerateBarcode()
End Function
$vbLabelText   $csharpLabel

Le type de retour - System.Drawing.Bitmap - signifiait que le code appelant était responsable de l'enregistrement, de l'affichage ou de la diffusion de l'image. Cela convenait aux applications WinForms où un Bitmap pouvait être assigné directement à un PictureBox, mais nécessitait des étapes de conversion supplémentaires pour toute autre cible de sortie.

Approche IronBarcode

IronBarcode utilise une API statique fluide. Un simple appel de méthode lance la génération, et des méthodes chaînables configurent le résultat avant une méthode de sauvegarde ou de conversion terminale :

// NuGet: dotnet add package IronBarcode
using IronBarCode;

public byte[] GenerateLabel(string sku)
{
    return BarcodeWriter.CreateBarcode(sku, BarcodeEncoding.Code128)
        .ResizeTo(400, 120)
        .ToPngBinaryData();
}
// NuGet: dotnet add package IronBarcode
using IronBarCode;

public byte[] GenerateLabel(string sku)
{
    return BarcodeWriter.CreateBarcode(sku, BarcodeEncoding.Code128)
        .ResizeTo(400, 120)
        .ToPngBinaryData();
}
Imports IronBarCode

Public Function GenerateLabel(sku As String) As Byte()
    Return BarcodeWriter.CreateBarcode(sku, BarcodeEncoding.Code128) _
        .ResizeTo(400, 120) _
        .ToPngBinaryData()
End Function
$vbLabelText   $csharpLabel

L'énumération BarcodeEncoding correspond directement à l'énumération Symbology. .ResizeTo() remplace les affectations de propriété Width et Height. Les méthodes de terminal - .SaveAsPng(), .SaveAsJpeg(), .ToPngBinaryData() - remplacent les appels séparés GenerateBarcode() et bitmap-save. Pour des scénarios de génération plus avancés, consultez la documentation sur la génération de codes-barres IronBarcode .

Capacité de lecture des codes-barres

La capacité de lecture représente la plus grande différence de capacités entre ces deux bibliothèques. Barcode4NETn'a jamais proposé la lecture de codes-barres dans aucune de ses versions. Code-barres IronBarcode intègre des fonctionnalités de lecture complètes dans le même package que la génération.

Approche Barcode4NET

Barcode4NET ne disposait pas d'API de lecture. Les équipes qui devaient décoder les codes-barres à partir d'images ou de documents numérisés devaient intégrer une bibliothèque entièrement distincte : soit ZXing .NET, une alternative open source, soit un SDK de scanner commercial. Il en a résulté deux chaînes de dépendances distinctes : Barcode4NETpour la génération et une seconde bibliothèque pour la lecture.

Approche IronBarcode

IronBarcode fournit BarcodeReader.Read() en tant que méthode statique qui accepte les chemins d'accès aux fichiers d'image, les objets de flux et les documents PDF :

using IronBarCode;

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

// Read all barcodes from a multi-page PDF — no extra PDF library required
var pdfResults = BarcodeReader.Read("invoice-batch.pdf");
foreach (var result in pdfResults)
{
    Console.WriteLine($"Page {result.PageNumber}: {result.Value}");
}
using IronBarCode;

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

// Read all barcodes from a multi-page PDF — no extra PDF library required
var pdfResults = BarcodeReader.Read("invoice-batch.pdf");
foreach (var result in pdfResults)
{
    Console.WriteLine($"Page {result.PageNumber}: {result.Value}");
}
Imports IronBarCode

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

' Read all barcodes from a multi-page PDF — no extra PDF library required
Dim pdfResults = BarcodeReader.Read("invoice-batch.pdf")
For Each result In pdfResults
    Console.WriteLine($"Page {result.PageNumber}: {result.Value}")
Next
$vbLabelText   $csharpLabel

Pour les scénarios de gros volumes ou d'images bruitées, la classe BarcodeReaderOptions permet de contrôler la vitesse de lecture et la détection de codes-barres multiples. Consultez la documentation relative à la lecture des codes-barres pour connaître les options de configuration.

Couverture de la plateforme et du déploiement

La prise en charge de la plateforme représente la différence la plus importante pour les équipes qui entreprennent des projets de modernisation .NET .

Approche Barcode4NET

Barcode4NET a été compilé avec les assemblys du .NET Framework. Il fonctionnait sous Windows, dans les applications .NET Framework, dans les projets Web Forms et Windows Forms hébergés sur IIS. Il n'y avait pas de versions Linux, pas de versions .NET Core , ni de prise en charge du runtime cloud. Lorsque Microsoft a introduit .NET Core , puis a unifié la plateforme sous le nom de .NET 5+, Barcode4NETn'a bénéficié d'aucune mise à jour correspondante. Tout projet ciblant net5.0 ou une version ultérieure ne peut pas faire référence à la bibliothèque.

Le modèle de distribution des DLL a accentué la contrainte de la plateforme. Chaque environnement de compilation (poste de travail du développeur, agent de compilation, conteneur Docker) nécessitait que la DLL soit présente à un emplacement connu. Dans les déploiements basés sur des conteneurs, cela signifiait soit intégrer la DLL dans une image de base personnalisée, soit la copier pendant la construction du conteneur, ce qui n'est ni l'un ni l'autre compatible avec les flux de travail standard dotnet restore.

Approche IronBarcode

IronBarcode cible plusieurs frameworks à partir d'un seul package NuGet : .NET Framework4.6.2 à .NET 9, et toutes les versions actuelles de .NET sur Windows, Linux et macOS. Le déploiement sur des conteneurs Dockerutilise les images d'exécution .NET standard sans modification. Azure Functions, AWS Lambda et d'autres environnements d'exécution sans serveur sont pris en charge par le même package NuGet . La commande dotnet restore résout toutes les dépendances sans aucune gestion manuelle des DLL.

Architecture des licences et statut du fournisseur

La situation des licences pour Barcode4NETn'est pas un point concurrentiel — c'est une contrainte pratique qui influence chaque décision quant à la poursuite ou non de l'utilisation de la bibliothèque.

Approche Barcode4NET

Barcode4NET n'est plus commercialisé. Aucune nouvelle licence n'est disponible via ComponentSource ni par aucun autre canal. Si un développeur rejoint une équipe utilisant Barcode4NET, il n'existe aucun mécanisme permettant de lui acheter une licence. Selon la structure des licences existantes, un nouveau développeur peut ne pas être légalement autorisé à exécuter ou à déboguer du code lié aux codes-barres pendant le développement. Il n'existe aucun système de suivi des problèmes, aucun canal d'assistance et aucun fournisseur à contacter concernant les défauts. Les failles de sécurité découvertes après la dernière version restent définitivement non corrigées.

Approche IronBarcode

IronBarcode est un produit commercial activement maintenu avec une licence perpétuelle. Les niveaux commencent à 749 $ pour une licence Lite mono-développeur, avec les niveaux Plus (1 499 $, 3 développeurs), Professional (2 999 $, 10 développeurs) et Illimité (5 999 $) disponibles. Tous les niveaux incluent un déploiement sans redevance. Les correctifs de sécurité, les corrections de bogues et les mises à jour de compatibilité avec les versions .NET sont déployés à un rythme de publication régulier. Un essai gratuit de 30 jours est disponible pour évaluation sans clé de licence.

Référence de mappage d'API

Barcode4NET Code-barres IronBarcode
new Barcode4NET.Barcode() BarcodeWriter.CreateBarcode(data, encoding)
barcode.Symbology = Symbology.Code128 BarcodeEncoding.Code128 (paramètre de CreateBarcode)
barcode.Data = "ITEM-12345" Premier paramètre de CreateBarcode()
barCode.Width = 300 ; hauteur du code-barres = 100 |.ResizeTo(300, 100)`
barcode.GenerateBarcode() retourne Bitmap .SaveAsPng(path) / .ToPngBinaryData()
Symbology.QRCode BarcodeEncoding.QRCode
Symbology.Code39 BarcodeEncoding.Code39
Symbology.EAN13 BarcodeEncoding.EAN13
Symbology.UPCA BarcodeEncoding.UPCA
Manuel DLL <Reference Include="Barcode4NET"> <PackageReference Include="IronBarcode" />
API de lecture indisponible BarcodeReader.Read(path)
Prise en charge des fichiers PDF non disponible BarcodeReader.Read("doc.pdf") native
.NET Frameworkuniquement .NET Framework4.6.2 à .NET 9

Lorsque les équipes envisagent de passer de Barcode4NETà IronBarcode

Mise à niveau .NET bloquée

L'événement déclencheur le plus courant est un projet de modernisation .NET . Une équipe cible net8.0 dans son .csproj, exécute la compilation et rencontre une erreur de compilation parce que Barcode4NETa été compilé contre des assemblages .NET Frameworkqui ne sont plus référencés. L'erreur est sans ambiguïté : la bibliothèque ne se chargera pas sous le nouveau framework cible. À ce stade, l'équipe est confrontée à un choix binaire : revenir sur la modification du framework cible et rester sur .NET Framework, ou remplacer Barcode4NET. La migration ne peut être reportée sans bloquer l'effort de modernisation plus large.

Échecs des pipelines CI/CD suite à des modifications d'infrastructure

Le modèle de distribution de DLL de Barcode4NETcrée une fragilité latente dans les pipelines de compilation. Lorsqu'un agent de construction est reconfiguré, qu'une image de conteneur est mise à jour ou qu'un nouvel environnement CI est configuré, la DLL Barcode4NETdoit être placée manuellement à l'emplacement attendu par le fichier projet. Les équipes qui n'ont pas soigneusement documenté cette étape ne découvrent le problème que lorsque le processus échoue. La transition vers Code-barres IronBarcode signifie que dotnet restore@ s'occupe de tout - le problème de l'emplacement de la DLL cesse d'exister.

Les nouveaux membres de l'équipe ne peuvent pas obtenir de licence.

Lorsqu'un sous-traitant rejoint le projet ou qu'un deuxième développeur doit travailler sur les fonctionnalités des codes-barres, aucune licence n'est à acheter. L'équipe doit contourner cette contrainte : soit le nouveau développeur évite complètement le code-barres, soit quelqu'un transfère une licence qui pourrait ne pas être légalement transférable selon les termes originaux. Aucune de ces situations n'est viable pour une équipe qui développe activement le produit.

Audits de sécurité et de conformité

Les organisations qui effectuent la génération de nomenclatures logicielles ou vérifient les dépendances par rapport aux bases de données en fin de vie découvrent Barcode4NET. Il s'agit d'un produit commercial sans fournisseur actif, sans suivi CVE et sans correctif disponible. Les auditeurs de sécurité traitent différemment les dépendances commerciales en fin de vie et les bibliothèques open source matures : l'absence de processus de réponse du fournisseur signifie que toute vulnérabilité reste définitivement non corrigée. Cela se traduit généralement par une mesure corrective formelle plutôt que par un risque différé.

Ajout d'une fonctionnalité de lecture à un flux de travail existant

Les équipes qui utilisaient initialement Barcode4NETpour des flux de travail de génération uniquement découvrent par la suite qu'elles doivent vérifier les codes-barres des documents numérisés, traiter les images téléchargées par les utilisateurs ou extraire des données des factures PDF. Avec Barcode4NET, cela nécessite l'intégration d'une seconde bibliothèque. Le BarcodeReader.Read() d'IronBarcode gère à la fois les images et les PDF de manière native, en consolidant la dépendance dans un seul paquet maintenu.

Considérations courantes en matière de migration

Suppression de la référence DLL

Barcode4NET n'a jamais été distribué en tant que paquetage NuGet, il n'y a donc pas de commande dotnet remove package. Chaque fichier .csproj qui fait référence à la bibliothèque contient un élément <Reference Include="Barcode4NET"> avec un <HintPath>@ pointant vers la DLL sur le disque. Chacun de ces éléments doit être trouvé et supprimé manuellement. Une recherche grep sur la solution permet de les localiser :

grep -rl "Barcode4NET" --include="*.csproj" .
grep -rl "Barcode4NET" --include="*.csproj" .
SHELL

Le répertoire DLL dans le contrôle de source - typiquement ThirdParty/Barcode4NET/ ou lib/ - doit également être mis en scène pour être supprimé avec git rm.

Changement du type de retour : de Bitmap à tableau d'octets

Le GenerateBarcode() de Barcode4NETrenvoie un System.Drawing.Bitmap. La chaîne fluide d'IronBarcode se termine par .ToPngBinaryData() renvoyant byte[], ou .SaveAsPng() écrivant directement sur le disque. Le code qui assigne la valeur de retour à une variable de type Bitmap ou qui la passe à une méthode attendant un Bitmap - comme un PictureBox WinForms - nécessite un ajustement d'une ligne à l'emplacement de l'appel : enveloppez le tableau d'octets dans un MemoryStream et appelez Image.FromStream().

Symbologie Enum Renommer

L'énumération Symbology dans Barcode4NETcorrespond directement à l'énumération BarcodeEncoding dans IronBarcode. Toutes les valeurs communes - Code128, Code39, EAN13, UPCA, QRCode - conservent leur nom. Une recherche et un remplacement de Symbology. par BarcodeEncoding. à l'échelle de la solution couvrent la plupart des cas, bien que chaque remplacement doive être revu pour confirmer le contexte.

Nettoyage du script de compilation

Les scripts de compilation et les fichiers de configuration CI/CD qui copient la DLL Barcode4NETdans les répertoires de sortie ou les agents de compilation doivent être mis à jour. Ces étapes n'ont pas d'équivalent après la migration NuGet - dotnet restore remplace toute la gestion manuelle des DLL. Laisser en place des étapes de copie de DLL obsolètes après la migration n'entraînera pas d'échecs de compilation, mais elles représentent une configuration morte qui crée de la confusion pour les futurs responsables de la maintenance.

Fonctionnalités supplémentaires IronBarcode

Fonctionnalités disponibles dans Code-barres IronBarcode qui n'ont jamais fait partie de Barcode4NET :

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

IronBarcode prend en charge .NET Framework4.6.2 à .NET 9 et bénéficie de mises à jour de compatibilité à chaque nouvelle version de .NET . La sortie de .NET 10 étant prévue fin 2026, Iron Software publie des versions préliminaires compatibles avant leur disponibilité générale. Barcode4NETne possède aucune version .NET au-delà de .NET Frameworket ne recevra aucune mise à jour future. Les équipes utilisant .NET Framework4.x peuvent migrer vers Code-barres IronBarcode puis mettre à niveau librement leur framework cible vers n'importe quelle version .NET actuelle ou future sans contraintes liées à la bibliothèque de codes-barres.

Conclusion

Barcode4NET et Code-barres IronBarcode représentent différentes étapes de l'histoire du développement des codes-barres .NET . Barcode4NETétait une bibliothèque fonctionnelle et bien conçue pour son époque — une API de définition de propriétés qui générait une sortie bitmap propre pour les applications Windows Forms et Web Forms sur .NET Framework. Code-barres IronBarcode est un produit commercial actuel doté d'une API statique fluide, d'une prise en charge complète de la lecture des codes-barres, d'une couverture d'exécution multiplateforme et d'une distribution NuGet standard.

Cette comparaison est inhabituelle car Barcode4NETn'est plus un produit vivant. Il ne reçoit plus de mises à jour, de correctifs de sécurité ni de nouvelles licences. Les équipes chargées d'évaluer quelle bibliothèque adopter pour un nouveau projet ne rencontreraient pas Barcode4NETlors de cette évaluation ; celle-ci ne concerne que les équipes qui l'utilisent déjà en production et qui décident quand et comment migrer.

Pour les équipes qui utilisent déjà Barcode4NETen production, Code-barres IronBarcode est le remplaçant naturel. Le mappage de l'API est direct, les modifications du code sont superficielles et la sémantique de génération est équivalente. L'avantage est une dépendance qui est réellement maintenue, installable par les nouveaux membres de l'équipe et compatible avec les versions modernes de .NET et les environnements de déploiement.

En toute honnêteté, il ne s'agit pas d'un choix concurrentiel entre deux options viables. Barcode4NETne peut pas être étendu à de nouveaux membres d'équipe, ne peut pas fonctionner sur les versions modernes de .NET et ne peut pas être corrigé pour les problèmes de sécurité. Code-barres IronBarcode peut. La décision de migrer est motivée par ces contraintes pratiques plutôt que par une préférence pour une API ou une comparaison des fonctionnalités.

Questions Fréquemment Posées

Qu'est-ce que Barcode4.NET ?

Barcode4.NET 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 Barcode4.NET et IronBarcode ?

IronBarcode utilise une API statique, sans état, ne nécessitant aucune gestion d'instance, alors que Barcode4.NET 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.

IronBarcode est-il plus facile à licencier que Barcode4.NET ?

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 Barcode4.NET 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 à Barcode4.NET ?

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 l'achat, contrairement à Barcode4.NET ?

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 Barcode4.NET 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 Barcode4.NET vers IronBarcode ?

La migration de Barcode4.NET vers IronBarcode implique principalement le remplacement des appels API basés sur les 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().

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