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

MessagingToolkit Barcode vs IronBarcode : Comparaison des bibliothèques de codes-barres C#

MessagingToolkit.Barcode mentionne Silverlight 5et Windows Phone 7 parmi ses plateformes cibles. Les deux sont abandonnés depuis des années. Si cette bibliothèque fait partie de votre code source, la question n'est pas de savoir s'il faut la remplacer, mais plutôt ce que vous attendez.

Comprendre MessagingToolkit.Barcode

MessagingToolkit.Barcode était un portage .NET de la bibliothèque de codes-barres Java ZXing, étendue avec des intégrations de messagerie supplémentaires. La bibliothèque a été lancée vers 2011 et a connu un développement actif tout au long de 2012 et jusqu'en 2013. Sa version finale — la 1.7.0.2 — a été publiée en 2014. Le dépôt GitHub reste accessible mais ne montre aucune activité : aucun commit, aucune réponse aux problèmes, aucune évaluation des demandes de fusion. Le projet est préservé, non entretenu.

La bibliothèque a été conçue pour l'ère du .NET Framework et les plateformes mobiles qui ont marqué cette période. Il proposait le décodage et l'encodage de codes-barres par le biais d'une API basée sur des instances, acceptant des entrées System.Drawing.Bitmap et renvoyant des objets de résultat avec des propriétés .Text et .BarcodeFormat. Pour les applications .NET Framework 4.x exécutées sous Windows en 2012, cette approche était pratique et couramment utilisée.

MessagingToolkit.Barcode, dérivé de ZXing, partageait le moteur de décodage sous-jacent de cette bibliothèque Java, mais y ajoutait sa propre API et des points d'extension dédiés à la messagerie. La bibliothèque est restée cantonnée au .NET Framework . Aucune cible .NET Standard n'a été publiée, aucune prise en charge de .NET Coren'a été ajoutée et aucune mise à jour d'aucune sorte n'a suivi la version 2014.

Caractéristiques principales de MessagingToolkit.Barcode :

  • Dernière version publiée en 2014 (version 1.7.0.2), sans mises à jour ultérieures.
  • Héritage ZXing : un portage de la bibliothèque Java ZXing avec des extensions spécifiques à .NET
  • Instance-based API: Requiert l'instanciation des objets BarcodeDecoder et BarcodeEncoder pour chaque opération
  • Dépendance System.Drawing: Accepte et renvoie System.Drawing.Bitmap, ce qui en fait une dépendance Windows uniquement dans les versions modernes de .NET
  • Un seul résultat par appel de décodage : renvoie un objet résultat (ou null) plutôt qu'une collection
  • Prise en charge des fichiers PDF non disponible : la saisie est limitée aux objets bitmap ; pas de lecture de documents natifs
  • Aucune détection automatique du format : le format doit être préconfiguré ou détecté par la bibliothèque à partir de l'image uniquement.
  • Plateformes cibles abandonnées : Liste Silverlight 3, 4 et 5 ; Windows Phone 7.0, 7.5, 7.8 et 8.0 dans ses métadonnées NuGet
  • Aucun moniker de framework cible .NET moderne : ne compilera pas dans les projets ciblant .NET Core, .NET 5 ou toute version ultérieure.

Registre de la plateforme et de la maintenance

Les métadonnées du package NuGet pour MessagingToolkit.Barcode documentent ses cibles visées. Chaque entrée du tableau suivant représente une plateforme qui était courante ou presque courante au moment du développement de la bibliothèque :

Plateforme Situation en 2026
Silverlight 3 Abandonné — extension de navigateur supprimée en 2021
Silverlight 4 Abandonné — extension de navigateur supprimée en 2021
Silverlight 5 Abandonné — extension de navigateur supprimée en 2021
Windows Phone 7.0 Abandonné — fin du support en 2014
Windows Phone 7.5 Abandonné — fin du support en 2014
Windows Phone 7.8 Abandonné — fin du support en 2014
Windows Phone 8.0 Abandonné — fin du support 2017
.NET Framework 3.5 Correctifs de sécurité uniquement, aucune nouvelle fonctionnalité
.NET Framework 4.0 Correctifs de sécurité uniquement, aucune nouvelle fonctionnalité
.NET Framework 4.5 Correctifs de sécurité uniquement, aucune nouvelle fonctionnalité

La bibliothèque ne dispose d'aucun framework cible compatible pour .NET Core, .NET 5, .NET 6, .NET 7, .NET 8 ou .NET 9. Les projets ciblant ces environnements d'exécution rencontreront une erreur de compilation lorsque le package ne pourra pas résoudre un moniker de framework compatible — non pas un avertissement d'exécution, mais une erreur de compilation.

Comprendre IronBarcode

IronBarcode est une bibliothèque commerciale de lecture et de génération de codes-barres pour .NET, développée et maintenue par Iron Software. Il fonctionne selon un modèle d'API statique : BarcodeReader.Read() pour le décodage et BarcodeWriter.CreateBarcode() pour l'encodage, sans nécessiter d'objets lecteurs ou écrivains instanciés. La bibliothèque intègre son propre pipeline de traitement d'images et ne dépend pas de System.Drawing, ce qui la rend compatible avec les environnements Windows, Linux, macOS et les conteneurs.

IronBarcode accepte plusieurs types d'entrée pour la lecture : chemins d'accès aux fichiers, objets Stream, tableaux d'octets et chemins d'accès aux documents PDF. Les résultats sont renvoyés sous forme de collections plutôt que d'objets uniques pouvant être nuls, ce qui permet de gérer les images à plusieurs codes-barres sans configuration séparée. La détection du format est automatique : la bibliothèque identifie le type de code-barres à partir du contenu de l'image sans que l'utilisateur ait besoin de le spécifier au préalable.

Pour la génération, Code-barres IronBarcode renvoie un objet résultat fluide de BarcodeWriter.CreateBarcode() qui prend en charge plusieurs formats de sortie, notamment PNG, JPEG, SVG, PDF et des chaînes encodées en base64. La bibliothèque reçoit des mises à jour régulières et publie activement de nouvelles versions NuGet .

Caractéristiques principales d' IronBarcode:

  • Conception d'API statique: BarcodeReader.Read() et BarcodeWriter.CreateBarcode() ne nécessitent pas d'objets instanciés
  • Multiplateforme : Fonctionne sous Windows, Linux, macOS, conteneurs Docker et fonctions cloud
  • Aucune dépendance à System.Drawing : utilise un pipeline d'images interne compatible avec toutes les plateformes .NET modernes
  • Lecture à résultats multiples : renvoie une collection à partir de chaque appel de décodage, prenant en charge les images à plusieurs codes-barres
  • Lecture de fichiers PDF : lit les codes-barres directement dans les documents PDF sans étape d'extraction externe.
  • Détection automatique du format : identifie le type de code-barres à partir du contenu de l'image sans configuration de l'appelant
  • Sortie de génération fluide : enregistrement au format PNG, JPEG, SVG, PDF ou tableau d'octets à partir d'un seul objet de résultat
  • Maintenance active : Publications régulières NuGet avec correctifs de sécurité et nouvelles fonctionnalités
  • Licence commerciale : nécessite une clé de licence pour une utilisation en production ; fonctionne en mode d'essai sans

Comparaison des fonctionnalités

Le tableau suivant présente une vue d'ensemble des différences fondamentales entre MessagingToolkit.Barcode et IronBarcode:

Fonction MessagingToolkit.Barcode Code-barres IronBarcode
Dernière mise à jour 2014 2026 (actif)
Prise en charge moderne de .NET Non Oui (.NET 6, 7, 8, 9)
Multiplateforme Non (Windows uniquement) Oui (Windows, Linux, macOS)
lecture de codes-barres PDF Non Oui
Détection automatique du format Non Oui
Correctifs de sécurité actifs Non Oui
Soutien commercial Aucun Support professionnel disponible

Comparaison détaillée des fonctionnalités

Fonction MessagingToolkit.Barcode Code-barres IronBarcode
Maintenance
Dernière mise à jour 2014 2026 (actif)
Version NuGet 1.7.0.2 (final) Actuel, régulièrement mis à jour
Développement actif Non Oui
correctifs de sécurité Aucun depuis 2014 Corrections régulières
Plateforme
.NET Framework 3.5-4.5 Oui Non
.NET Framework 4.6.2+ Non Oui
.NET Core Non Oui
.NET 5 / 6 / 7 / 8 / 9 Non Oui
ASP.NET Core Non Oui
.NET CORRIGÉ Non Oui
Blazor Non Oui
Linux / macOS Non Oui
Docker / conteneurs Non Oui
En lisant
Types d'entrée Bitmap uniquement Chemin, flux, tableau d'octets, PDF
Lecture de PDF Non Oui (natif)
Détection automatique du format Non Oui
Plusieurs codes-barres par image Non Oui
Dépendance de dessin du système Les exigences sont les suivantes Aucun
Génération
Formats de sortie Bitmap uniquement PNG, JPEG, SVG, PDF, tableau d'octets
API de sortie fluide Non Oui
Dépendance de dessin du système Les exigences sont les suivantes Aucun
Licence
Soutien commercial Aucun Support professionnel disponible
Résultat de l'audit de conformité Signalé comme abandonné Réussit les audits standard

Support de la plateforme et du framework

L'histoire de ces deux bibliothèques est marquée par un écart de 12 ans. MessagingToolkit.Barcode a été conçu pour un moment précis de l'histoire de .NET ; Code-barres IronBarcode a été conçu pour le présent.

Approche par code-barres de MessagingToolkit

MessagingToolkit.Barcode cible exclusivement .NET Framework 3.5, 4.0 et 4.5. Il ne possède pas d'appellation .NET Standard , pas de cible .NET Coreet aucun module de compatibilité pour les environnements d'exécution modernes. Lorsqu'un fichier de projet référence ce package et cible une version .NET moderne, l'opération de restauration NuGet échoue avec une erreur de compatibilité du framework — la compilation ne se poursuit pas.

Le tableau des plateformes dans les métadonnées NuGet le concrétise. Silverlight 3, 4 et 5 sont des cibles répertoriées ; Ces trois systèmes ont été abandonnés depuis 2021. Windows Phone 7.0, 7.5, 7.8 et 8.0 sont listés ; Tous ces frameworks ont atteint la fin de leur support entre 2014 et 2017. Les cibles restantes — .NET Framework 3.5, 4.0 et 4.5 — restent techniquement fonctionnelles sous Windows, mais ne reçoivent plus que des correctifs de sécurité de Microsoft, sans aucun développement de nouvelles fonctionnalités.

La conséquence pratique est que MessagingToolkit.Barcode fait office de bloqueur de la modernisation du framework. Un fichier de projet qui cible net472 et fait référence à ce paquet ne peut pas être modifié en net8.0 sans d'abord supprimer le paquet. Ce package n'est pas seulement obsolète ; il empêche activement la modification du framework cible qui permettrait au projet d'accéder aux fonctionnalités modernes de .NET .

Consultez la documentation de la plateforme IronBarcode pour obtenir la liste complète des frameworks et cibles de déploiement pris en charge.

Approche IronBarcode

IronBarcode prend en charge .NET Framework 4.6.2 à .NET 9, couvrant à la fois les applications Windows héritées et les déploiements multiplateformes modernes. Un seul package NuGet s'installe sur toutes les plateformes prises en charge sans nécessiter de bibliothèques graphiques distinctes ni de configuration spécifique à la plateforme.

La prise en charge multiplateforme est significative dans la pratique. Le pipeline d'images interne d'IronBarcode ne dépend pas de System.Drawing, qui est devenu exclusivement Windows dans .NET 6. Les applications ciblant Linux ou macOS - y compris celles qui s'exécutent dans des conteneurs Docker, Azure App Service on Linux ou AWS Lambda - utilisent la même API et le même comportement Code-barres IronBarcode que les déploiements Windows.

Conception d'API

La surface API de MessagingToolkit.BarCode a été conçue autour d'objets basés sur des instances et d'entrées System.Drawing.Bitmap. L'API d'IronBarcode est statique et accepte plusieurs types d'entrée. Les deux bibliothèques encodent et décodent les codes-barres, mais leur mode d'appel diffère sensiblement.

Approche par code-barres de MessagingToolkit

La lecture avec MessagingToolkit.Barcode a nécessité la création d'une instance BarcodeDecoder, la construction d'un Bitmap à partir du fichier image, le passage du bitmap à .Decode(), et la vérification de la nullité du résultat avant d'accéder à .Text. La génération a suivi le même modèle d'instance : créer un BarcodeEncoder, définir sa propriété .Format, appeler .Encode() pour recevoir un Bitmap, puis appeler .Save() sur ce bitmap.

// Only compiles on .NET Framework 4.5or earlier
using MessagingToolkit.Barcode;
using System.Drawing;

// Reading
var barcodeReader = new BarcodeDecoder();
var bitmap = new Bitmap("barcode.png");
var result = barcodeReader.Decode(bitmap);
string value = result?.Text;
string format = result?.BarcodeFormat.ToString();

// Writing
var barcodeWriter = new BarcodeEncoder();
barcodeWriter.Format = BarcodeFormat.QrCode;
var outputBitmap = barcodeWriter.Encode("Hello World");
outputBitmap.Save("output.png");
// Only compiles on .NET Framework 4.5or earlier
using MessagingToolkit.Barcode;
using System.Drawing;

// Reading
var barcodeReader = new BarcodeDecoder();
var bitmap = new Bitmap("barcode.png");
var result = barcodeReader.Decode(bitmap);
string value = result?.Text;
string format = result?.BarcodeFormat.ToString();

// Writing
var barcodeWriter = new BarcodeEncoder();
barcodeWriter.Format = BarcodeFormat.QrCode;
var outputBitmap = barcodeWriter.Encode("Hello World");
outputBitmap.Save("output.png");
Imports MessagingToolkit.Barcode
Imports System.Drawing

' Reading
Dim barcodeReader As New BarcodeDecoder()
Dim bitmap As New Bitmap("barcode.png")
Dim result = barcodeReader.Decode(bitmap)
Dim value As String = If(result?.Text, Nothing)
Dim format As String = If(result?.BarcodeFormat.ToString(), Nothing)

' Writing
Dim barcodeWriter As New BarcodeEncoder()
barcodeWriter.Format = BarcodeFormat.QrCode
Dim outputBitmap = barcodeWriter.Encode("Hello World")
outputBitmap.Save("output.png")
$vbLabelText   $csharpLabel

La dépendance Bitmap n'est pas fortuite. System.Drawing.Bitmap nécessite GDI+ sur Windows. Dans .NET 6 et les versions ultérieures, toute tentative d'utilisation de System.Drawing sur Linux ou macOS génère un PlatformNotSupportedException au moment de l'exécution. Même si l'assemblage MessagingToolkit.BarCode pouvait être chargé dans un projet .NET moderne - il ne le peut pas en raison de la cible de cadre manquante - la dépendance Bitmap empêcherait de toute façon le déploiement multiplateforme.

Approche IronBarcode

IronBarcode utilise exclusivement des méthodes statiques. BarcodeReader.Read() accepte un chemin de fichier, un Stream, un tableau d'octets ou un chemin de fichier PDF - aucun Bitmap n'est requis. Le résultat est une collection, et non un objet unique pouvant être nul. La génération utilise BarcodeWriter.CreateBarcode() avec le type d'encodage passé en paramètre, et l'objet résultat expose directement les méthodes de sauvegarde.

// Works on .NET 6, 7, 8, 9 — Windows, Linux, macOS, Docker
using IronBarCode;

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

// Reading
var results = BarcodeReader.Read("barcode.png");
string value = results.FirstOrDefault()?.Value;
string format = results.FirstOrDefault()?.Format.ToString();

// Writing
BarcodeWriter.CreateBarcode("Hello World", BarcodeEncoding.QRCode)
    .SaveAsPng("output.png");
// Works on .NET 6, 7, 8, 9 — Windows, Linux, macOS, Docker
using IronBarCode;

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

// Reading
var results = BarcodeReader.Read("barcode.png");
string value = results.FirstOrDefault()?.Value;
string format = results.FirstOrDefault()?.Format.ToString();

// Writing
BarcodeWriter.CreateBarcode("Hello World", BarcodeEncoding.QRCode)
    .SaveAsPng("output.png");
Imports IronBarCode

' Works on .NET 6, 7, 8, 9 — Windows, Linux, macOS, Docker
IronBarCode.License.LicenseKey = "YOUR-KEY"

' Reading
Dim results = BarcodeReader.Read("barcode.png")
Dim value As String = results.FirstOrDefault()?.Value
Dim format As String = results.FirstOrDefault()?.Format.ToString()

' Writing
BarcodeWriter.CreateBarcode("Hello World", BarcodeEncoding.QRCode) _
    .SaveAsPng("output.png")
$vbLabelText   $csharpLabel

Pour des instructions détaillées sur la lecture des codes-barres à partir d'images, consultez la section " Comment lire les codes-barres à partir d'images " . Pour générer des codes-barres 1D, y compris les formats Code 128, EAN-13 et UPC, consultez la section " Créer des codes-barres 1D " .

Sécurité et maintenance

Une bibliothèque abandonnée présente un niveau de sécurité radicalement différent de celui d'une bibliothèque activement entretenue. La différence ne réside pas dans le fait qu'une CVE ait été signalée, mais dans la possibilité de traiter une CVE.

Approche par code-barres de MessagingToolkit

MessagingToolkit.Barcode n'a reçu aucune mise à jour depuis 2014. Toute vulnérabilité découverte après cette date — dans la logique d'analyse d'images de la bibliothèque, dans son implémentation de décodage dérivée de ZXing ou dans ses dépendances transitives — reste définitivement non corrigée. Il n'y a pas de responsable de la maintenance à informer, pas de processus d'avis de sécurité à surveiller et aucun mécanisme de diffusion permettant à un correctif d'atteindre les utilisateurs, même si un correctif était développé.

Les outils d'analyse de sécurité — Snyk, WhiteSource, GitHub Dependabot, NuGet audit — signalent les packages abandonnés comme présentant un risque élevé. Le signalement n'est pas conditionné par la confirmation d'une CVE ; Cela reflète l'absence de tout processus permettant de remédier aux vulnérabilités confirmées. Cela représente un profil de risque catégoriquement différent de celui d'une bibliothèque disposant d'un responsable de maintenance actif et d'une procédure de réponse aux incidents de sécurité documentée.

Pour les équipes opérant dans le cadre de référentiels de conformité — PCI DSS, HIPAA, SOC 2, ISO 27001 — cela a des conséquences pratiques en matière d'audit. Ces frameworks nécessitent une gestion active des correctifs des logiciels tiers. Un package abandonné sans mécanisme de réponse aux vulnérabilités échouera à un audit de conformité, qu'une CVE spécifique ait été enregistrée ou non à son encontre. Le constat de l'audit est l'absence de dépendance maintenable, et non la présence d'une faille de sécurité connue.

Approche IronBarcode

IronBarcode reçoit des mises à jour régulières NuGet , incluant des correctifs de sécurité, des mises à jour de dépendances et de nouvelles fonctionnalités. La bibliothèque est développée par Iron Software, qui maintient un processus de support documenté et publie des notes de version pour chaque mise à jour. Les avis de sécurité, le cas échéant, sont traités dans les correctifs.

IronBarcode prend en charge plus de 50 formats de codes-barres, y compris tous les formats gérés par MessagingToolkit.Barcode (QR Code, Code 128, EAN-13, EAN-8, UPC-A et autres), ainsi que des formats que l'ancienne bibliothèque ne prenait jamais en charge : DataMatrix, Aztec, PDF417 et toute la gamme des symbologies 2D modernes.

Référence de mappage d'API

Le tableau suivant fait correspondre les éléments de l'API MessagingToolkit.Barcode à leurs équivalents IronBarcode :

MessagingToolkit.Barcode Code-barres IronBarcode Notes
new BarcodeDecoder() Statique - BarcodeReader.Read() Aucune instance requise
barcodeReader.Decode(bitmap) BarcodeReader.Read(path) Accepte un chemin, un flux ou un tableau d'octets
result.Text result.Value Propriété renommée
result.BarcodeFormat result.Format Propriété renommée
new BarcodeEncoder() Statique - BarcodeWriter.CreateBarcode() Aucune instance requise
barcodeWriter.Format = BarcodeFormat.QrCode BarcodeEncoding.QRCode(paramètre) Le format est passé en tant que paramètre, et non en tant que propriété.
barcodeWriter.Encode("data") retours Bitmap BarcodeWriter.CreateBarcode("data", BarcodeEncoding.QRCode) Renvoie un résultat fluide, et non une image bitmap.
bitmap.Save("path.png") .SaveAsPng("path.png") Méthode fluide sur l'objet résultat
BarcodeFormat.QrCode BarcodeEncoding.QRCode L'espace de noms et la valeur de l'énumération ont été renommés.
BarcodeFormat.Code128 BarcodeEncoding.Code128 Même nom symbolique
Renvoie null si non trouvé Renvoie une collection vide Consultez .Any() ou .FirstOrDefault()
.NET Framework 3.5à 4.5 uniquement .NET 4.6.2 à .NET 9 Prise en charge complète des technologies .NET modernes

Lorsque les équipes envisagent de passer de MessagingToolkit.Barcode à IronBarcode

Les scénarios qui incitent les équipes à évaluer cette transition partagent une structure commune : une exigence du projet a évolué au-delà de ce qu'une bibliothèque de l'ère des frameworks de 2014 peut prendre en charge.

Exigences de modernisation du cadre

Le déclencheur le plus courant est une mise à niveau .NET planifiée ou en cours. Lorsqu'une équipe décide de migrer un projet de .NET Framework 4.x vers .NET 6 ou une version ultérieure, le graphe de dépendances doit être audité afin de repérer les packages qui ne prennent pas en charge les frameworks modernes. MessagingToolkit.Barcode apparaîtra dans cet audit comme une dépendance bloquante — une dépendance qui ne peut pas être résolue par rapport à un moniker de framework cible moderne. La migration vers Code-barres IronBarcode est donc une condition préalable à la mise à niveau globale de .NET , et non une initiative distincte. Les équipes chargées de la modernisation des applications découvrent généralement cette dépendance dès les premières étapes de l'analyse de la mise à niveau.

Obligations en matière de sécurité et de conformité

Un deuxième scénario implique des examens de sécurité et des audits de conformité. Les équipes opérant sous les cadres PCI DSS, HIPAA, SOC 2 ou ISO 27001 font l'objet d'audits périodiques qui examinent la santé des dépendances envers les tiers. Un paquet abandonné sans mécanisme de réponse de sécurité échoue à ces audits pour des raisons de procédure, indépendamment du fait qu'une vulnérabilité spécifique ait été identifiée ou non. Lorsqu'une équipe de sécurité signale MessagingToolkit.Barcode comme une dépendance non conforme, la solution consiste à le remplacer : il n'y a pas de correctif à appliquer, pas de version à mettre à niveau et aucun fournisseur à contacter pour obtenir un avis de sécurité. La migration vers Code-barres IronBarcode résout le problème d'audit en remplaçant une dépendance sans maintenance par une dépendance bénéficiant de mises à jour de sécurité régulières.

Extension des capacités

Un troisième scénario se présente lorsque de nouvelles exigences dépassent les capacités de MessagingToolkit.Barcode. Les applications qui traitent des documents numérisés ou des fichiers PDF ont besoin de lire les codes-barres de ces formats — MessagingToolkit.Barcode n'acceptait que les entrées bitmap, rendant la lecture des PDF impossible sans une couche d'extraction séparée. Les applications qui génèrent des codes-barres pour la diffusion sur le web ont besoin d'une sortie SVG ou base64 - MessagingToolkit.Barcode a renvoyé un Bitmap, nécessitant des étapes de conversion supplémentaires et une dépendance System.Drawing.Imaging. Lorsque les exigences du produit s'étendent à ces domaines, les limitations de l'ancienne bibliothèque deviennent des contraintes d'ingénierie qu'il est impossible de contourner au sein de son API.

Croissance ciblée de la plateforme

Un quatrième scénario consiste à ajouter de nouvelles cibles de déploiement. Les équipes qui ont initialement construit des applications Windows uniquement et qui s'étendent à l'hébergement Linux, aux environnements de développement macOS, aux conteneurs Docker ou aux fonctions cloud sur les runtimes Linux rencontrent la dépendance System.Drawing comme un problème bloquant. MessagingToolkit.BarCode nécessite System.Drawing.Bitmap pour toutes les opérations d'entrée et de sortie, et System.Drawing est réservé à Windows dans .NET 6 et les versions ultérieures. Tout système de déploiement autre que Windows transforme cette dépendance en un échec d'exécution, et non plus en un simple problème de compatibilité. La migration vers Code-barres IronBarcode supprime entièrement l'exigence System.Drawing, permettant le déploiement multiplateforme que l'équipe tente de réaliser.

Considérations courantes en matière de migration

Les équipes qui passent de MessagingToolkit.Barcode à Code-barres IronBarcode doivent être conscientes de plusieurs différences techniques qui affectent le fonctionnement de la migration.

Remplacement d'espace de noms

Chaque fichier contenant using MessagingToolkit.Barcode; nécessite une mise à jour vers using IronBarCode;. Une recherche dans l'ensemble du code source de l'ancienne chaîne d'espace de noms constitue le point de départ le plus fiable pour identifier la portée de la migration. Les fichiers qui importent System.Drawing uniquement pour le type Bitmap utilisé avec MessagingToolkit.Barcode peuvent avoir cette importation entièrement supprimée une fois qu'IronBarcode est en place, puisque Code-barres IronBarcode ne l'exige pas.

Changement du cadre cible

La suppression de MessagingToolkit.Barcode du fichier projet permet la mise à jour du moniker du framework cible. Le passage de <TargetFramework>net472</TargetFramework> à <TargetFramework>net8.0</TargetFramework> devient possible une fois que la dépendance bloquante est supprimée. Code-barres IronBarcode prend en charge les deux aspects de ce changement — il est compatible avec .NET Framework 4.6.2 et avec .NET 8 — il peut donc être installé avant que la mise à niveau du framework ne soit finalisée, permettant ainsi une migration par étapes plutôt qu'en une seule opération.

Différences entre les espaces de noms de BarcodeWriter

MessagingToolkit.BarCode a utilisé BarcodeEncoder comme classe de génération, avec le format défini comme une propriété (barcodeWriter.Format = BarcodeFormat.QrCode) avant d'appeler .Encode(). Code-barres IronBarcode utilise BarcodeWriter.CreateBarcode() comme méthode statique, avec le type d'encodage passé en paramètre. Les noms d'énumération diffèrent : BarcodeFormat.QrCodedevient BarcodeEncoding.QRCode, et BarcodeFormat.Code128devient BarcodeEncoding.Code128. Le résultat de CreateBarcode() est un objet fluide avec .SaveAsPng(), .SaveAsJpeg(), .SaveAsSvg(), et d'autres méthodes de sortie - il ne renvoie pas un Bitmap.

Fonctionnalités supplémentaires IronBarcode

IronBarcode offre des fonctionnalités qui vont au-delà de celles présentées dans les sections précédentes :

  • Lecture de codes-barres au format PDF: BarcodeReader.Read("document.pdf") lit les codes-barres de chaque page d'un document PDF, renvoyant des résultats qui incluent des métadonnées sur le numéro de page. Aucune étape d'extraction PDF externe n'est requise.
  • Traitement par lots : plusieurs fichiers — images et PDF confondus — peuvent être lus en une seule passe. La détection automatique du format s'applique au type de code-barres, et pas seulement au format de fichier.
  • Personnalisation des codes QR: Les codes QR générés peuvent inclure des logos intégrés, des couleurs personnalisées et des zones de silence réglables grâce à l'API QRCodeWriter.
  • Multithreading asynchrone : BarcodeReader.ReadAsync() fournit une surcharge asynchrone native pour l'intégration avec les motifs async/await dans ASP.NET Coreet d'autres applications .NET asynchrones.
  • Plusieurs formats de sortie pour la génération : les codes-barres générés peuvent être enregistrés aux formats PNG, JPEG, SVG, PDF ou récupérés sous forme de chaîne encodée en base64 pour une intégration directe dans les réponses HTML ou le stockage dans une base de données.

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

IronBarcode prend en charge l'ensemble des versions actuelles de .NET — de .NET Framework 4.6.2 à .NET 9 — et reçoit des mises à jour qui suivent les nouvelles versions de .NET dès leur disponibilité. Le pipeline d'images interne de la bibliothèque évite les dépendances avec System.Drawing ou d'autres API graphiques spécifiques à une plateforme, ce qui signifie que le même paquet et la même API fonctionnent de manière identique dans les environnements Windows, Linux, macOS et les conteneurs. Avec la publication de .NET 10 et des versions ultérieures, le rythme de développement actif d'IronBarcode garantit le maintien de la compatibilité sans obliger les équipes à reporter les mises à niveau de .NET en raison de contraintes liées aux bibliothèques.

Conclusion

MessagingToolkit.Barcode et Code-barres IronBarcode représentent deux moments très différents dans le développement des bibliothèques .NET . MessagingToolkit.Barcode a été conçu pour .NET Framework 4.x et les plateformes mobiles de 2011 à 2014. Code-barres IronBarcode a été conçu pour le .NET qui existera en 2026 : multiplateforme, compatible avec les conteneurs et activement maintenu. L'écart technique entre eux ne tient pas à une parité des fonctionnalités ; C'est une question de compatibilité d'exécution. MessagingToolkit.Barcode ne se compile pas dans un projet .NET moderne, ce qui signifie que la comparaison, dans la plupart des cas pratiques, ne se fait pas entre deux options concurrentes.

MessagingToolkit.Barcode occupe un cas d'utilisation légitime et restreint : un projet ciblant exclusivement .NET Framework 4.x, fonctionnant uniquement sous Windows, qui ne sera jamais mis à niveau vers un environnement d'exécution plus récent et qui opère dans un environnement où les exigences d'audit de sécurité ne sont pas appliquées. Dans cette configuration précise, la bibliothèque produit un résultat et le blocage technique ne s'applique pas. Cette configuration décrit très peu de projets actifs en 2026, et le problème de sécurité — douze ans sans correctifs — s'applique à toutes les configurations, sans exception.

IronBarcode convient aux équipes qui ont besoin de fonctionnalités de code-barres dans n'importe quel contexte .NET moderne : .NET 6, 7, 8 ou 9 ; Déploiement sous Linux ou macOS ; Environnements Docker ou hébergés dans le cloud ; Applications ASP.NET Core ; ou tout projet qui traite des PDF ou nécessite des codes-barres dans des formats de sortie autres qu'un bitmap Windows. L'API statique réduit la surcharge d'instanciation du modèle basé sur les instances, et l'absence de dépendance System.Drawing supprime une contrainte multiplateforme significative.

L'évaluation fondamentale est simple. Pour les équipes utilisant .NET Framework 4.x et n'ayant pas l'intention de changer, MessagingToolkit.Barcode continue de fonctionner dans ces limites. Pour tous les autres scénarios (modernisation, conformité, déploiement multiplateforme ou extension des capacités), MessagingToolkit.Barcode n'est pas une option viable, et Code-barres IronBarcode le remplace directement grâce à une procédure de migration simple et bien définie.

Questions Fréquemment Posées

Qu'est-ce que le BarCode MessagingToolkit ?

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

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

Est-il plus facile d'obtenir une licence pour IronBarcode que pour MessagingToolkit 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 MessagingToolkit 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 à MessagingToolkit 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 à MessagingToolkit ?

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 MessagingToolkit 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 MessagingToolkit BarCode vers IronBarcode ?

La migration de MessagingToolkit Barcode vers IronBarcode implique principalement le remplacement des appels d'API basés sur des instances par les méthodes statiques d'IronBarcode, la suppression du boilerplate de licence et la mise à jour des noms des propriétés de résultat. 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