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

Aspose BarCode for .NET : comparaison directe avec IronBarcode et exemples de code

Barcode4NETvs Code-barres IronBarcode : Comparaison d'un générateur en fin de vie avec une bibliothèque moderne de codes-barres .NET

Barcode4NET est effectivement en fin de vie. La dernière version - Barcode4NET2.0 de O2 Solutions - a été publiée le 25 juin 2007. De nouvelles licences ne sont plus vendues via ComponentSource (les clients existants peuvent encore renouveler le Support et les Mises à jour logicielles), aucun package NuGet n'a jamais été publié, et la bibliothèque cible .NET Framework1.1 / 2.0 / 3.x et .NET Compact 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 publiée par O2 Solutions et distribuée par ComponentSource. Elle était conçue pour les applications .NET Frameworkbasées sur Windows - principalement Windows Forms, ASP.NET Web Forms, .NET Compact Framework, et SQL Server Reporting Services 2000 / 2005 - et délivrait des sorties en bitmap et vecteur propres pour les symbologies 1D et 2D 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'utilisait nécessitait un élément <Reference> manuel dans le fichier .csproj pointant vers le 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 :

  • API de réglage des propriétés : Les développeurs créaient un objet Barcode, assignaient Symbology, Data, Width, et Height comme propriétés, puis appelaient GenerateBarcode() pour recevoir un System.Drawing.Bitmap.
  • Couverture des symbologies: 39 symbologies 1D (Code128, Code39, EAN-13, UPC-A, et plus) plus cinq formats 2D (DataMatrix, PDF417, MicroPDF417, Code 16K, CODABLOCK F); Le QR Code et Aztèque ne sont pas pris en charge
  • Génération uniquement : aucune fonctionnalité de lecture ou de numérisation de codes-barres n'a jamais fait partie du produit.
  • Windows and .NET Frameworkonly: Targets .NET Framework1.1 / 2.0 / 3.x and .NET Compact Framework; pas de prise en charge pour .NET Core, .NET 5+, Linux, macOS, Docker, ou runtime 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 vendue via ComponentSource et aucune version de code depuis 2007

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 n'offrait aucun enchaînement fluide, aucune capacité de lecture, pas de support pour les codes QR, et pas d'options 2D avancées comme l'intégration de logo 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, suivie d'options chaînables pour la taille, la couleur et le format. La lecture utilise BarcodeReader.Read() qui accepte les chemins de fichiers image, les flux, et les documents PDF sans nécessiter une bibliothèque PDF séparée.

Caractéristiques principales d' IronBarcode:

  • API de génération statique fluide : BarcodeWriter.CreateBarcode() enchaîne .ResizeTo(), .AddAnnotationTextAboveBarcode(), et les méthodes de sauvegarde dans une seule expression.
  • Lecture de code-barres : BarcodeReader.Read() décode les codes-barres à partir d'images et de PDFs nativement.
  • Prise en charge de nombreux formats : Code128, Code39, EAN-13, UPC-A, QR Code, Data Matrix, PDF417, Aztec, et bien d'autres.
  • Spécialisation en QR code : QRCodeWriter.CreateQrCode() fournit des options spécifiques aux QR, y compris l'intégration de logos et le niveau de correction d'erreur.
  • Distribution NuGet : Installation standard dotnet add package IronBarcode ; 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 Non Oui — QRCodeWriter.CreateQrCode()
Code QR avec logo Non Oui — .AddBrandLogo()
Data Matrix / PDF417 Oui Oui
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 — enum ReadingSpeed
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 instancient un objet Barcode, assignent des propriétés individuelles, et appellent 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 sauvegarder, d'afficher ou de diffuser l'image. Cela était approprié pour les 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'enum BarcodeEncoding correspond directement à l'enum Symbology. .ResizeTo() remplace les assignations de propriétés Width et Height. Les méthodes terminales — .SaveAsPng(), .SaveAsJpeg(), .ToPngBinaryData() — remplacent les appels séparés de GenerateBarcode() et de sauvegarde bitmap. 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() comme méthode statique qui accepte les chemins de fichiers image, les objets 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 des scénarios d'images à haut volume ou bruyantes, la classe BarcodeReaderOptions offre un contrôle sur la vitesse de lecture et la détection multi-code-barres. 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 plus tard ne pouvait pas référencer la bibliothèque du tout.

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 le DLL dans une image de base personnalisée, soit le copier lors de la construction du conteneur, ce qui n'est compatible avec aucun des 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 de DLL manuelle.

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 est effectivement en fin de vie. De nouvelles licences ne sont plus vendues via ComponentSource, bien que les clients existants puissent renouveler le Support et les Mises à jour logicielles via ComponentSource selon les termes du fournisseur. Si un nouveau développeur rejoint une équipe utilisant Barcode4NET, il n'y a aucun mécanisme pour acheter une place supplémentaire pour eux. La dernière version du code était la version 2.0 en 2007, donc tout défaut ou problème de sécurité découvert depuis cette version n'est pas traité par des correctifs.

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 à 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.Code39 BarcodeEncoding.Code39
Symbology.EAN13 BarcodeEncoding.EAN13
Symbology.UPCA BarcodeEncoding.UPCA
Symbology.DataMatrix BarcodeEncoding.DataMatrix
Symbology.PDF417 BarcodeEncoding.PDF417
(QR Code not supported in Barcode4NET) BarcodeEncoding.QRCode
Gestion manuelle de 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") natif
.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 leur .csproj, exécute la compilation, et rencontre un échec de chargement car Barcode4NETa été construit pour .NET Framework1.1 / 2.0 / 3.x et ne peut pas être référencé à partir d'une cible .NET moderne. À 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. Passer à Code-barres IronBarcode signifie dotnet restore gère tout — le problème de l'emplacement du 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. C'est un produit commercial sans version de code depuis 2007 et sans suivi CVE ni flux de correctifs. Les auditeurs de sécurité traitent généralement les dépendances dans cet état différemment des bibliothèques activement maintenues, et la découverte devient souvent un élément de remédiation formel plutôt qu'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 PDFs nativement, consolidant la dépendance en 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 package NuGet, donc il n'y a pas de commande dotnet remove package. Chaque fichier .csproj qui référence la bibliothèque contient un élément <Reference Include="Barcode4NET"> avec un <HintPath> pointant vers le 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 version — normalement ThirdParty/Barcode4NET/ ou lib/ — doit également être préparé pour suppression avec git rm.

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

Le GenerateBarcode() de Barcode4NETretourne un System.Drawing.Bitmap. La chaîne fluide d'IronBarcode se termine par .ToPngBinaryData() retournant byte[], ou .SaveAsPng() écrivant directement sur le disque. Le code qui assigne la valeur de retour à une variable de type Bitmap ou la passe à une méthode qui attend un Bitmap — tel qu'un PictureBox WinForms — nécessite une correction en une ligne au site d'appel : envelopper le tableau d'octets dans un MemoryStream et appeler Image.FromStream().

Symbologie Enum Renommer

L'enum Symbology dans Barcode4NETs'aligne directement avec l'enum BarcodeEncoding dans IronBarcode. Toutes les valeurs communes — Code128, Code39, EAN13, UPCA, QRCode — conservent leurs noms. Un remplacement solution-wide de Symbology. avec BarcodeEncoding. couvre la plupart des cas, même si chaque remplacement devrait ê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 gestion manuelle de 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 jusqu'à .NET 9, et reçoit des mises à jour de compatibilité à mesure que de nouvelles versions de .NET sont publiées. Barcode4NETcible uniquement .NET Framework1.1 / 2.0 / 3.x et .NET Compact Framework, et n'a pas reçu de sortie depuis 2007. Les équipes sur .NET Framework4.x peuvent migrer vers Code-barres IronBarcode et ensuite mettre à jour librement leur framework cible vers toute version .NET actuelle sans contraintes de 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 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 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().

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