Zum Fußzeileninhalt springen
MIT ANDEREN KOMPONENTEN VERGLEICHEN

GrapeCity Barcode vs IronBarcode: C# Barcode Bibliothek Vergleich

MessagingToolkit.Barcode vs IronBarcode: Migration einer verlassenen .NET-Bibliothek

MessagingToolkit.Barcode listet Silberlicht 5und Windows Phone 7 als Zielplattformen auf. Beide Produkte werden seit Jahren nicht mehr hergestellt. Wenn diese Bibliothek in Ihrem Code vorhanden ist, ist ein Ersatz der praktische nächste Schritt.

MessagingToolkit.Barcode verstehen

MessagingToolkit.Barcode war eine .NET Portierung der Java-Barcodebibliothek ZXing, erweitert um zusätzliche Messaging-Integrationen. Die Bibliothek wurde um 2011 gestartet und sah aktive Entwicklung bis 2012 und Anfang 2013. Ihre letzte Veröffentlichung – Version 1.7.0.2 – wurde am 27.April 2013veröffentlicht. Die Projektseite wird nicht mehr aktiv gepflegt, und seitdem ist kein öffentlicher Pfleger aufgetaucht.

Die Bibliothek wurde für die .NET Framework Ära und die mobilen Plattformen, die diese Zeit prägten, konzipiert. Es bot Barcode-Decodierung und -Codierung durch eine instanzbasierte API an, die System.Drawing.Bitmap-Eingaben akzeptiert und Ergebnisobjekte mit .Text und .BarcodeFormat-Eigenschaften zurückgibt. Für .NET Framework 4.x-Anwendungen, die 2012 unter Windows liefen, war dieser Ansatz praktisch und weit verbreitet.

Als Portierung von ZXing nutzte MessagingToolkit.Barcode zwar die zugrundeliegende Dekodierungs-Engine dieser Java-Bibliothek, ergänzte sie aber um eine eigene API-Oberfläche und Messaging-orientierte Erweiterungspunkte. Die Bibliothek blieb stets im .NET Framework verankert. Kein .NET Standard-Ziel wurde veröffentlicht, keine .NET Core-Unterstützung hinzugefügt und keine Updates jeglicher Art folgten der Veröffentlichung im April 2013.

Hauptmerkmale von MessagingToolkit.Barcode:

  • Letzte Veröffentlichung: April 2013, Version 1.7.0.2, mit keinen nachfolgenden Updates
  • ZXing-Heritage: Eine Portierung der Java-ZXing-Bibliothek mit .NET-spezifischen Erweiterungen
  • Instanzbasierte API: Erfordert die Instanziierung von BarcodeDecoder und BarcodeEncoder Objekten für jede Operation
  • System.Drawing-Abhängigkeit: Akzeptiert und gibt System.Drawing.Bitmap zurück, wodurch es in modernen .NET-Umgebungen nur auf Windows beschränkt ist
  • Einzelnes Ergebnis pro Dekodierungsaufruf: Gibt ein einzelnes Ergebnisobjekt (oder null) anstelle einer Sammlung zurück.
  • Keine PDF-Unterstützung: Die Eingabe ist auf Bitmap-Objekte beschränkt; kein Lesen von nativen Dokumenten
  • Keine automatische Formaterkennung: Das Format muss entweder vorkonfiguriert oder von der Bibliothek anhand des Bildes erkannt werden.
  • Eingestellte Plattformziele: Listet Silverlight 3, 4 und 5 auf; Windows Phone 7.0, 7.5, 7.8 und 8.0 in seinen NuGet Metadaten
  • Kein modernes .NET Zielframework-Moniker: Lässt sich nicht in Projekten kompilieren, die auf .NET Core, .NET 5 oder eine spätere Version abzielen.

Plattform- und Wartungsprotokoll

Die Metadaten des NuGet Pakets MessagingToolkit.Barcode dokumentieren die vorgesehenen Zielplattformen. Jeder Eintrag in der folgenden Tabelle repräsentiert eine Plattform, die zum Zeitpunkt der Entwicklung der Bibliothek aktuell oder nahezu aktuell war:

Plattform Status im Jahr 2026
Silberlicht 3 Eingestellt – Browser-Plugin entfernt 2021
Silberlicht 4 Eingestellt – Browser-Plugin entfernt 2021
Silberlicht 5 Eingestellt – Browser-Plugin entfernt 2021
Windows Phone 7.0 Eingestellt – Supportende 2014
Windows Phone 7.5 Eingestellt – Supportende 2014
Windows Phone 7.8 Eingestellt – Supportende 2014
Windows Phone 8.0 Eingestellt – Supportende 2017
.NET Framework 3.5 Nur Sicherheitspatches, keine neuen Funktionen
.NET Framework 4.0 Nur Sicherheitspatches, keine neuen Funktionen
.NET Framework 4.5 Nur Sicherheitspatches, keine neuen Funktionen

Für die Bibliothek gibt es kein kompatibles Zielframework for .NET Core, .NET 5, .NET 6, .NET 7, .NET 8 oder .NET 9. Projekte, die auf diese Laufzeitumgebungen abzielen, werden einen Build-Fehler erfahren, wenn das Paket keinen kompatiblen Framework-Moniker auflösen kann – keine Laufzeitwarnung, sondern ein Kompilierungsfehler.

IronBarcode verstehen

IronBarcode ist eine kommerzielle Barcode-Lese- und Generierungsbibliothek für .NET, die von Iron Software entwickelt und gepflegt wird. Es arbeitet über ein statisches API-Modell: BarcodeReader.Read() zum Dekodieren und BarcodeWriter.CreateBarcode() zum Kodieren, ohne dass instanzierte Leser- oder Schreiberobjekte erforderlich sind. Die Bibliothek beinhaltet ihre eigene Bildverarbeitungspipeline und ist nicht abhängig von System.Drawing, wodurch sie mit Windows, Linux, macOS und Container-Umgebungen kompatibel ist.

IronBarcode akzeptiert mehrere Eingabetypen für das Lesen: Dateipfade, Stream-Objekte, Byte-Arrays und PDF-Dokumentpfade. Die Ergebnisse werden als Sammlungen und nicht als einzelne, optionale Objekte zurückgegeben, wodurch die Verarbeitung von Bildern mit mehreren Barcodes ohne separate Konfiguration möglich ist. Die Formaterkennung erfolgt automatisch – die Bibliothek identifiziert den Barcode-Typ anhand des Bildinhalts, ohne dass der Aufrufer ihn vorher angeben muss.

Zur Generierung gibt IronBarcode ein flüssiges Ergebnisobjekt aus BarcodeWriter.CreateBarcode() zurück, das mehrere Ausgabeformate unterstützt, einschließlich PNG, JPEG, SVG, PDF und base64-kodierte Zeichenfolgen. Die Bibliothek wird regelmäßig aktualisiert und veröffentlicht aktiv neue NuGet Versionen.

Hauptmerkmale von IronBarcode:

  • Statisches API-Design: BarcodeReader.Read() und BarcodeWriter.CreateBarcode() erfordern keine instanzierten Objekte
  • Plattformübergreifend: Läuft unter Windows, Linux, macOS, Docker-Containern und Cloud-Funktionen
  • Keine Abhängigkeit von System.Drawing: Verwendet eine interne Bildpipeline, die mit allen modernen .NET -Plattformen kompatibel ist.
  • Lesen mehrerer Ergebnisse: Gibt eine Sammlung von jedem Dekodierungsaufruf zurück und unterstützt Bilder mit mehreren Barcodes.
  • PDF-Lesen: Liest Barcodes direkt aus PDF-Dokumenten ohne externe Extraktionsschritte.
  • Automatische Formaterkennung: Erkennt den Barcode-Typ anhand des Bildinhalts ohne Konfiguration durch den Aufrufer
  • Ausgabe der flüssigen Generierung: Speichern als PNG, JPEG, SVG, PDF oder Byte-Array aus einem einzelnen Ergebnisobjekt
  • Aktive Wartung: Regelmäßige NuGet Releases mit Sicherheitspatches und neuen Funktionen
  • Kommerzielle Lizenzierung: Für die Nutzung in der Produktion ist ein Lizenzschlüssel erforderlich; funktioniert im Testmodus ohne einen

Funktionsvergleich

Die folgende Tabelle bietet einen Überblick über die grundlegenden Unterschiede zwischen MessagingToolkit.Barcode und IronBarcode:

Feature MessagingToolkit.Barcode IronBarcode
Letzte Aktualisierung April 2013 2026 (aktiv)
Moderne .NET -Unterstützung Nein Ja (.NET 6, 7, 8, 9)
Plattformübergreifend Nein (nur Windows) Ja (Windows, Linux, macOS)
PDF-Barcode-Lesen Nein Ja
Automatische Formaterkennung Nein Ja
Aktive Sicherheitspatches Nein Ja
Kommerzielle Unterstützung None Professionelle Unterstützung verfügbar

Detaillierter Funktionsvergleich

Feature MessagingToolkit.Barcode IronBarcode
Wartung
Letzte Aktualisierung April 2013 2026 (aktiv)
NuGet -Version 1.7.0.2 (endgültig) Aktuell, regelmäßig aktualisiert
Aktive Entwicklung Nein Ja
Sicherheitspatches Keine seit 2013 Regelmäßige Patches
Plattform
.NET Framework 3.5-4.5 Ja Nein
.NET Framework 4.6.2+ Nein Ja
.NET Core Nein Ja
.NET 5 / 6 / 7 / 8 / 9 Nein Ja
ASP.NET Core Nein Ja
.NET BEHOBEN Nein Ja
Blazor Nein Ja
Linux / macOS Nein Ja
Docker / Container Nein Ja
Lektüre
Eingabetypen Nur Bitmap Pfad, Datenstrom, Byte-Array, PDF
PDF lesen Nein Ja (Muttersprachler)
Automatische Formaterkennung Nein Ja
Mehrere Barcodes pro Bild Nein Ja
System.Drawing-Abhängigkeit Erforderlich None
Generation
Ausgabeformate Nur Bitmap PNG, JPEG, SVG, PDF, Byte-Array
Fluent Output API Nein Ja
System.Drawing-Abhängigkeit Erforderlich None
Lizenzierung
Kommerzielle Unterstützung None Professionelle Unterstützung verfügbar
Wartungsstatus für Audits Kein aktiver Pfleger oder Veröffentlichungsprozess Aktiver Pfleger mit regelmäßigen Updates

Plattform- und Framework-Unterstützung

Die Plattformgeschichte dieser beiden Bibliotheken ist durch eine zwölfjährige Lücke geprägt. MessagingToolkit.Barcode wurde für einen bestimmten Zeitpunkt in der .NET -Geschichte entwickelt; IronBarcode wurde für die Gegenwart entwickelt.

MessagingToolkit.Barcode-Ansatz

MessagingToolkit.Barcode ist ausschließlich für .NET Framework 3.5, 4.0 und 4.5 ausgelegt. Es hat keine .NET Standard -Bezeichnung, kein .NET Core-Ziel und keine Kompatibilitätsschicht für moderne Laufzeitumgebungen. Wenn eine Projektdatei auf dieses Paket verweist und eine beliebige moderne .NET Version als Ziel hat, schlägt der NuGet -Wiederherstellungsvorgang mit einem Framework-Kompatibilitätsfehler fehl – ​​der Build wird nicht fortgesetzt.

Die Plattformtabelle in den NuGet Metadaten macht dies konkret. Silverlight 3, 4 und 5 sind als Zielversionen aufgeführt; Alle drei Versionen werden seit 2021 nicht mehr unterstützt. Aufgeführt sind Windows Phone 7.0, 7.5, 7.8 und 8.0; Alle diese Versionen erreichten zwischen 2014 und 2017 das Ende ihres Supports. Die verbleibenden Zielversionen – .NET Framework 3.5, 4.0 und 4.5 – sind unter Windows technisch weiterhin funktionsfähig, erhalten aber von Microsoft nur noch Sicherheitsupdates und keine neuen Funktionen mehr.

Die praktische Konsequenz ist, dass MessagingToolkit.Barcode ein Framework-Upgrade blockiert. Eine Projektdatei, die net472 anvisiert und dieses Paket referenziert, kann nicht ohne vorherige Entfernung des Pakets in net8.0 geändert werden. Das Paket ist nicht nur veraltet - das Fehlen eines modernen Ziel-Framework-Kennzeichens verhindert die Ziel-Framework-Änderung, die dem Projekt den Zugriff auf moderne .NET-Fähigkeiten ermöglichen würde.

In der Dokumentation der IronBarcode Plattform finden Sie die vollständige Liste der unterstützten Frameworks und Bereitstellungsziele.

IronBarcode Ansatz

IronBarcode unterstützt .NET Framework 4.6.2 bis .NET 9 und deckt damit sowohl ältere Windows-Anwendungen als auch moderne plattformübergreifende Bereitstellungen ab. Ein einzelnes NuGet Paket lässt sich auf allen unterstützten Plattformen installieren, ohne dass separate Grafikbibliotheken oder plattformspezifische Konfigurationen erforderlich sind.

Der plattformübergreifende Support ist in der Praxis sinnvoll. Die interne Bildpipeline von IronBarcode ist nicht auf System.Drawing angewiesen, das in .NET 6 nur noch für Windows verfügbar ist. Anwendungen, die auf Linux oder macOS abzielen, einschließlich derjenigen, die in Docker-Containern, Azure App Service auf Linux oder AWS Lambda laufen, verwenden dieselbe IronBarcode-API und -Verhalten wie Windows-Deployments.

API-Design

Die API-Oberfläche von MessagingToolkit.Barcode wurde um instanzbasierte Objekte und System.Drawing.Bitmap-Eingaben herum gestaltet. Die API von IronBarcode ist statisch und akzeptiert verschiedene Eingabetypen. Beide Bibliotheken kodieren und dekodieren Barcodes, die Vorgehensweise beim Aufruf unterscheidet sich jedoch deutlich.

MessagingToolkit.Barcode-Ansatz

Das Lesen mit MessagingToolkit.Barcode erforderte die Erstellung einer BarcodeDecoder-Instanz, die Konstruktion einer Bitmap aus der Bilddatei, das Übergeben der Bitmap an .Decode() und das Überprüfen des Ergebnisses auf Null, bevor auf .Text zugegriffen wird. Die Generation folgte demselben Instanzmuster: Erstellen Sie eine BarcodeEncoder, legen Sie ihre .Format-Eigenschaft fest, rufen Sie .Encode() auf, um eine Bitmap zu erhalten, und rufen Sie dann .Save() auf dieser Bitmap auf.

// MessagingToolkit.Barcode — .NET Framework target frameworks
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");
// MessagingToolkit.Barcode — .NET Framework target frameworks
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 = result?.Text
Dim format As String = result?.BarcodeFormat.ToString()

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

Die Bitmap-Abhängigkeit ist nicht zufällig. System.Drawing.Bitmap erfordert GDI+ auf Windows. In .NET 6 und später führt der Versuch, System.Drawing auf Linux oder macOS zu verwenden, zur Laufzeit zu einer PlatformNotSupportedException. Selbst wenn die MessagingToolkit.Barcode-Assembly in einem modernen .NET-Projekt geladen werden könnte – was aufgrund des fehlenden Framework-Ziels nicht möglich ist – würde die Bitmap Abhängigkeit eine plattformübergreifende Bereitstellung unabhängig davon verhindern.

IronBarcode Ansatz

IronBarcode verwendet durchgehend statische Methoden. BarcodeReader.Read() akzeptiert einen Dateipfad, einen Stream, ein Byte-Array oder einen PDF-Dateipfad — keine Bitmap erforderlich. Das Ergebnis ist eine Sammlung, nicht ein einzelnes, optionales Objekt. Die Generierung verwendet BarcodeWriter.CreateBarcode() mit dem als Parameter übergebenen Codierungstyp, und das Ergebnisobjekt bietet direkte Speichermethoden.

// IronBarcode — .NET Framework 4.6.2 through .NET 9
using IronBarCode;

IronBarCode.License.LicenseKey = "YOUR-LICENSE-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");
// IronBarcode — .NET Framework 4.6.2 through .NET 9
using IronBarCode;

IronBarCode.License.LicenseKey = "YOUR-LICENSE-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

IronBarCode.License.LicenseKey = "YOUR-LICENSE-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

Eine detaillierte Anleitung zum Lesen von Barcodes aus Bildern finden Sie unter Wie man Barcodes aus Bildern liest . Informationen zum Generieren von 1D-Barcodes, einschließlich der Formate Code 128, EAN-13 und UPC, finden Sie unter "Erstellen von 1D-Barcodes" .

Sicherheit und Instandhaltung

Eine ungewartete Bibliothek hat eine andere Sicherheitslage als eine aktiv gewartete. Der Unterschied ist nicht, ob eine CVE eingereicht wurde — es ist, ob eine CVE angesprochen werden könnte, wenn eine eingereicht würde.

MessagingToolkit.Barcode-Ansatz

MessagingToolkit.Barcode wurde seitApril 2013nicht mehr aktualisiert. Jede Anfälligkeit, die nach diesem Datum entdeckt wird — in der eigenen Bildparselogik der Bibliothek, in ihrer von ZXing abgeleiteten Dekodier-Implementierung oder in ihren transkonzeptuellen Abhängigkeiten — bleibt ungepatcht. Es gibt keinen öffentlichen Pfleger zu benachrichtigen, kein Sicherheitsberatungsprozess zu überwachen und keinen Veröffentlichungsmechanismus, durch den ein Fix Benutzer erreichen könnte, selbst wenn einer entwickelt würde.

Sicherheitsscanning-Tools — Snyk, WhiteSource, GitHub Dependabot, NuGet-Audit — kennzeichnen nicht gewartete Pakete in der Regel als erhöhtes Risiko. Die Kennzeichnung ist nicht von einer bestätigten CVE abhängig; Es spiegelt das Fehlen eines Prozesses wider, durch den bestätigte Schwachstellen behoben werden könnten. Das ist ein anderes Risikoprofil als eine Bibliothek mit einem aktiven Pfleger und einem dokumentierten Sicherheitsreaktionsprozess.

Für Teams, die unter Compliance-Rahmenwerken arbeiten – PCI DSS, HIPAA, SOC 2, ISO 27001 – hat dies praktische Konsequenzen für die Auditierung. Diese Frameworks erwarten ein aktives Patch-Management von Drittanbietersoftware, und ein ungewartetes Paket ohne Reaktionsmechanismus für Schwachstellen wird in der Regel während der Auditüberprüfung markiert, unabhängig davon, ob eine spezifische CVE dafür eingereicht wurde oder nicht. Der Befund bezieht sich auf die Wartungshaltung der Abhängigkeit und nicht auf das Vorhandensein einer bekannten Ausnutzung.

IronBarcode Ansatz

IronBarcode erhält regelmäßig NuGet Updates, die Sicherheitspatches, Abhängigkeitsaktualisierungen und neue Funktionen umfassen. Die Bibliothek wird von Iron Software entwickelt, die einen dokumentierten Supportprozess unterhält und für jedes Update Versionshinweise veröffentlicht. Sicherheitswarnungen werden, sofern zutreffend, in Patch-Releases berücksichtigt.

IronBarcode unterstützt über 50 Barcode-Formate, darunter alle Formate, die MessagingToolkit.Barcode verarbeitete – QR-Code, Code 128, EAN-13, EAN-8, UPC-A und andere – sowie Formate, die die ältere Bibliothek nie unterstützte: DataMatrix, Aztec, PDF417 und die gesamte Bandbreite moderner 2D-Symbologien.

API-Mapping-Referenz

Die folgende Tabelle ordnet die API-Elemente von MessagingToolkit.Barcode ihren IronBarcode Äquivalenten zu:

MessagingToolkit.Barcode IronBarcode Notizen
new BarcodeDecoder() Statisch — BarcodeReader.Read() Keine Instanz erforderlich
barcodeReader.Decode(bitmap) BarcodeReader.Read(path) Akzeptiert Pfad, Datenstrom oder Byte-Array
result.Text result.Value Immobilie umbenannt
result.BarcodeFormat result.Format Immobilie umbenannt
new BarcodeEncoder() Statisch — BarcodeWriter.CreateBarcode() Keine Instanz erforderlich
barcodeWriter.Format = BarcodeFormat.QrCode BarcodeEncoding.QRCode (Parameter) Das Format wurde als Parameter übergeben, nicht als Eigenschaft.
barcodeWriter.Encode("data") gibt Bitmap zurück BarcodeWriter.CreateBarcode("data", BarcodeEncoding.QRCode) Gibt ein flüssiges Ergebnis zurück, keine Bitmap.
bitmap.Save("path.png") .SaveAsPng("path.png") Fluent-Methode auf Ergebnisobjekt
BarcodeFormat.QrCode BarcodeEncoding.QRCode Enum-Namensraum und Wert umbenannt
BarcodeFormat.Code128 BarcodeEncoding.Code128 Gleicher symbolischer Name
Gibt null zurück, falls nicht gefunden Gibt eine leere Sammlung zurück Prüfen Sie .Any() oder .FirstOrDefault()
Nur .NET Framework 3.5-4.5 .NET 4.6.2 bis .NET 9 Volle Unterstützung für modernes .NET

Wenn Teams einen Wechsel von MessagingToolkit.Barcode zu IronBarcode erwägen

Die Szenarien, die Teams dazu veranlassen, diesen Übergang zu bewerten, haben eine gemeinsame Struktur: Eine Projektanforderung hat sich über das hinaus entwickelt, was eine Bibliothek aus der frühen .NET-Framework-Ära bewältigen kann.

Anforderungen an die Modernisierung des Frameworks

Der häufigste Auslöser ist ein geplantes oder laufendes .NET Upgrade. Wenn ein Team beschließt, ein Projekt von .NET Framework 4.x auf .NET 6 oder höher umzustellen, muss der Abhängigkeitsgraph auf Pakete überprüft werden, die keine Unterstützung für das moderne Framework bieten. MessagingToolkit.Barcode wird in diesem Audit als blockierende Abhängigkeit erscheinen – eine Abhängigkeit, die nicht mit einem modernen Zielframework-Moniker aufgelöst werden kann. Die Migration zu IronBarcode ist daher eine Voraussetzung für das umfassendere .NET Upgrade und keine separate Initiative. Teams, die eine Anwendungsmodernisierung durchführen, entdecken diese Abhängigkeit typischerweise früh in der Analysephase des Upgrades.

Sicherheits- und Compliance-Verpflichtungen

Ein zweites Szenario umfasst Sicherheitsüberprüfungen und Compliance-Audits. Teams, die nach den Standards von PCI DSS, HIPAA, SOC 2 oder ISO 27001 arbeiten, werden regelmäßigen Audits unterzogen, bei denen die Abhängigkeit von Drittanbietern überprüft wird. Ein ungewartetes Paket ohne Sicherheitsreaktionsmechanismus neigt dazu, als Auditbefund aus prozessualen Gründen aufzutauchen, unabhängig davon, ob eine spezifische Schwachstelle identifiziert wurde. Wenn ein Sicherheitsteam MessagingToolkit.Barcode als nicht konforme Abhängigkeit kennzeichnet, ist die Lösung der Ersatz — es gibt keinen Patch anzuwenden, keine Version zu aktualisieren und keinen Pfleger zu kontaktieren für eine Sicherheitsberatung. Die Migration zu IronBarcode beseitigt den Audit-Befund, indem eine Abhängigkeit ohne Wartungspfad durch eine ersetzt wird, die regelmäßige Sicherheitsupdates erhält.

Kapazitätserweiterung

Ein drittes Szenario entsteht, wenn neue Anforderungen über das hinausgehen, was MessagingToolkit.Barcode leisten kann. Anwendungen, die gescannte Dokumente oder PDF-Dateien verarbeiten, benötigen das Lesen von Barcodes aus diesen Formaten – MessagingToolkit.Barcode akzeptierte jedoch nur Bitmap-Eingaben, wodurch das Lesen von PDFs ohne eine separate Extraktionsschicht unmöglich war. Anwendungen, die Barcodes für die Webausgabe generieren, benötigen SVG- oder base64-Ausgaben — MessagingToolkit.Barcode gab ein Bitmap zurück, das zusätzliche Konvertierungsschritte und eine System.Drawing.Imaging Abhängigkeit erforderte. Wenn sich die Produktanforderungen auf diese Bereiche ausdehnen, werden die Einschränkungen der älteren Bibliothek zu technischen Beschränkungen, die sich nicht über ihre API-Oberfläche umgehen lassen.

Plattform-Zielwachstum

Ein viertes Szenario ist die Hinzufügung neuer Bereitstellungsziele. Teams, die ursprünglich Windows-only Anwendungen entwickelt haben und sich auf Linux-Hosting, macOS-Entwicklungsumgebungen, Docker-Container oder Cloud-Funktionen auf Linux-Laufzeiten ausdehnen, stoßen auf die System.Drawing Abhängigkeit als Blockade. MessagingToolkit.Barcode erfordert System.Drawing.Bitmap für alle Ein- und Ausgabeverfahren, und System.Drawing ist nur für Windows in .NET 6 und später verfügbar. Bei jedem anderen Zielsystem als Windows führt diese Abhängigkeit zu einem Laufzeitfehler und nicht nur zu einem Kompatibilitätsproblem. Der Umstieg auf IronBarcode beseitigt die System.Drawing Anforderung vollständig, wodurch die plattformübergreifende Bereitstellung möglich wird, die das Team zu erreichen versucht.

Gemeinsame Überlegungen zur Migration

Teams, die von MessagingToolkit.Barcode auf IronBarcode umsteigen, sollten sich über einige technische Unterschiede im Klaren sein, die sich auf die Mechanismen der Migration auswirken.

Namensraumersetzung

Jede Datei, die using MessagingToolkit.Barcode; enthält, erfordert ein Update auf using IronBarCode;. Eine Suche im gesamten Code nach der alten Namespace-Zeichenkette ist der zuverlässigste Ausgangspunkt, um den Umfang der Migration zu ermitteln. Dateien, die System.Drawing nur für den mit MessagingToolkit.Barcode verwendeten Bitmap-Typ importieren, können diesen Import vollständig entfernen, sobald IronBarcode vorhanden ist, da es nicht erforderlich ist.

Zielrahmenänderung

Durch das Entfernen von MessagingToolkit.Barcode aus der Projektdatei kann der Zielframework-Moniker aktualisiert werden. Die Änderung von <TargetFramework>net472</TargetFramework> zu <TargetFramework>net8.0</TargetFramework> wird möglich, sobald die blockierende Abhängigkeit entfernt ist. IronBarcode unterstützt beide Seiten dieser Umstellung – es ist kompatibel mit .NET Framework 4.6.2 und mit .NET 8 – sodass es vor dem endgültigen Abschluss des Framework-Upgrades installiert werden kann, wodurch die Migration gestaffelt und nicht in einem einzigen Schritt durchgeführt werden kann.

Namensraumunterschiede von BarcodeWriter

MessagingToolkit.Barcode verwendete BarcodeEncoder als Generationsklasse, wobei das Format als Eigenschaft (barcodeWriter.Format = BarcodeFormat.QrCode) festgelegt wurde, bevor .Encode() aufgerufen wurde. IronBarcode verwendet BarcodeWriter.CreateBarcode() als statische Methode, wobei der Codierungstyp als Parameter übergeben wird. Die Namen der Enums unterscheiden sich: BarcodeFormat.QrCode wird zu BarcodeEncoding.QRCode, und BarcodeFormat.Code128 wird zu BarcodeEncoding.Code128. Das Ergebnis von CreateBarcode() ist ein flüssiges Objekt mit .SaveAsPng(), .SaveAsJpeg(), .SaveAsSvg() und anderen Ausgabemethoden — es gibt keinen Bitmap zurück.

Zusätzliche IronBarcode Funktionen

IronBarcode bietet Funktionen, die über die in den obigen Abschnitten beschriebenen Funktionen hinausgehen:

  • PDF-Barcode-Lesen: BarcodeReader.Read("document.pdf") liest Barcodes von jeder Seite eines PDF-Dokuments und gibt Ergebnisse zurück, die Seitenzahlen-Metadaten enthalten. Es ist kein externer PDF-Extraktionsschritt erforderlich.
  • Stapelverarbeitung: Mehrere Dateien – Bilder und PDFs gemischt – können in einem einzigen Durchgang gelesen werden. Die automatische Formaterkennung bezieht sich auf den Barcode-Typ, nicht nur auf das Dateiformat.
  • QR-Code-Anpassung: Generierte QR-Codes können eingebettete Logos, benutzerdefinierte Farben und anpassbare Ruhebereiche über die QRCodeWriter API enthalten.
  • Async-freundliche Nutzung: BarcodeReader.Read() akzeptiert Stream Eingaben, die sich sauber in async Anforderungs-Pipelines in ASP.NET Coreund anderen asynchronen .NET-Anwendungen integrieren.
  • Mehrere Ausgabeformate für die Generierung: Generierte Barcodes können als PNG, JPEG, SVG, PDF gespeichert oder als Base64-codierter String zur direkten Einbettung in HTML-Antworten oder zur Speicherung in einer Datenbank abgerufen werden.

.NET-Kompatibilität und Zukunftsfähigkeit

IronBarcode unterstützt die gesamte Bandbreite der aktuellen .NET Versionen – .NET Framework 4.6.2 bis .NET 9 – und erhält Updates, die mit neuen .NET Versionen Schritt halten, sobald diese verfügbar sind. Die interne Bildpipeline der Bibliothek vermeidet Abhängigkeiten von System.Drawing oder anderen plattformspezifischen Grafik-APIs, was bedeutet, dass dasselbe Paket und dieselbe API identisch auf Windows, Linux, macOS und in Container-Umgebungen funktionieren. Mit der Veröffentlichung von .NET 10 und nachfolgenden Versionen stellt der aktive Entwicklungsrhythmus von IronBarcode sicher, dass die Kompatibilität erhalten bleibt, ohne dass Teams .NET Upgrades aufgrund von Bibliothekseinschränkungen verschieben müssen.

Abschluss

MessagingToolkit.Barcode und IronBarcode repräsentieren zwei sehr unterschiedliche Momente in der Entwicklung von .NET -Bibliotheken. MessagingToolkit.Barcode wurde für .NET Framework 4.x und die mobilen Plattformen der frühen 2010er Jahre entwickelt. IronBarcode wurde für das .NET entwickelt, das im Jahr 2026 existiert — plattformübergreifend, containerfreundlich und aktiv gewartet. Der technische Unterschied zwischen ihnen ist keine Frage der Funktionsgleichheit; Es ist eine Frage der Laufzeitkompatibilität. MessagingToolkit.Barcode lässt sich in einem modernen .NET Projekt nicht kompilieren, was bedeutet, dass der Vergleich in den meisten praktischen Szenarien nicht zwischen zwei konkurrierenden Optionen stattfindet.

MessagingToolkit.Barcode hat einen engen legitimen Anwendungsbereich: ein Projekt, das ausschließlich .NET Framework 4.x anvisiert, nur auf Windows läuft, nie auf eine neuere Laufzeit aktualisiert wird und in einer Umgebung arbeitet, ohne strenge Drittanbieter-Patch-Management-Anforderungen. In dieser spezifischen Konfiguration liefert die Bibliothek Ausgaben, und der Framework-Ziel-Blocker gilt nicht. Die Wartungslücke — über ein Jahrzehnt ohne Patches — trifft weiterhin auf alle Konfigurationen zu.

IronBarcode eignet sich für Teams, die Barcode-Funktionalität in einem modernen .NET Kontext benötigen: .NET 6, 7, 8 oder 9; Bereitstellung unter Linux oder macOS; Docker- oder Cloud-Umgebungen; ASP.NET CoreAnwendungen; oder jedes Projekt, das PDFs verarbeitet oder Barcodes in Ausgabeformaten benötigt, die über ein Windows-Bitmap hinausgehen. Die statische API reduziert den Instanziierungsoverhead des instanzbasierten Modells, und das Fehlen einer System.Drawing Abhängigkeit beseitigt eine bedeutsame plattformübergreifende Einschränkung.

Die grundlegende Bewertung ist unkompliziert. Für Teams, die .NET Framework 4.x verwenden und keine Änderung planen, funktioniert MessagingToolkit.Barcode weiterhin innerhalb dieser Einschränkungen. Für alle anderen Szenarien – Modernisierung, Compliance, plattformübergreifende Bereitstellung oder Funktionserweiterung – ist MessagingToolkit.Barcode keine praktikable Option, und IronBarcode ist ein direkter Ersatz mit einem kleinen, klar definierten Migrationspfad.

Häufig gestellte Fragen

Was ist der MessagingToolkit BarCode?

MessagingToolkit BarCode ist eine .NET Barcode-Bibliothek zum Erzeugen und Lesen von Barcodes in C#-Anwendungen. Sie ist eine von mehreren Alternativen, die Entwickler bei der Auswahl einer Barcode-Lösung for .NET-Projekte in Betracht ziehen.

Was sind die Hauptunterschiede zwischen MessagingToolkit BarCode und IronBarcode?

IronBarcode verwendet eine statische, zustandslose API, die keine Instanzverwaltung erfordert, während MessagingToolkit BarCode in der Regel eine Instanzerstellung und -konfiguration vor der Verwendung erfordert. IronBarcode bietet außerdem native PDF-Unterstützung, automatische Formaterkennung und Single-Key-Lizenzierung in allen Umgebungen.

Ist IronBarcode einfacher zu lizenzieren als MessagingToolkit BarCode?

IronBarcode verwendet einen einzigen Lizenzschlüssel, der sowohl die Entwicklungs- als auch die Produktionsbereitstellung abdeckt. Dies vereinfacht CI/CD-Pipelines und Docker-Konfigurationen im Vergleich zu Lizenzierungssystemen, die SDK-Schlüssel von Laufzeitschlüsseln trennen.

Unterstützt IronBarcode alle Barcode-Formate, die MessagingToolkit BarCode unterstützt?

IronBarcode unterstützt über 30 Barcode-Symbologien, darunter QR Code, Code 128, Code 39, DataMatrix, PDF417, Aztec, EAN-13, UPC-A, GS1 und viele mehr. Die automatische Formaterkennung bedeutet, dass keine explizite Formataufzählung erforderlich ist.

Unterstützt IronBarcode das native Lesen von PDF-Barcodes?

Ja, IronBarcode liest Barcodes direkt aus PDF-Dateien mit BarcodeReader.Read("document.pdf"), ohne dass eine separate PDF-Rendering-Bibliothek erforderlich ist. Die seitenweisen Ergebnisse umfassen Seitenzahl, Barcodeformat, Wert und Konfidenzwert.

Wie handhabt IronBarcode die Stapelverarbeitung im Vergleich zu MessagingToolkit BarCode?

Die statischen Methoden von IronBarcode sind zustandslos und natürlich thread-sicher, was die direkte Verwendung von Parallel.ForEach ohne Instanzverwaltung pro Thread ermöglicht. Es gibt auf keiner Preisstufe eine Obergrenze für den Durchsatz.

Welche .NET Versionen werden von IronBarcode unterstützt?

IronBarcode unterstützt .NET Framework 4.6.2+, .NET Core 3.1 und .NET 5, 6, 7, 8 und 9 in einem einzigen NuGet-Paket. Zu den Zielplattformen gehören Windows x64/x86, Linux x64 und macOS x64/ARM.

Wie installiere ich IronBarcode in einem .NET-Projekt?

Installieren Sie IronBarcode über NuGet: Führen Sie "Install-Package IronBarCode" in der Paketmanager-Konsole oder "dotnet add package IronBarCode" in der CLI aus. Es sind keine zusätzlichen SDK-Installationsprogramme oder Laufzeitdateien erforderlich.

Kann ich IronBarcode im Gegensatz zu MessagingToolkit vor dem Kauf testen?

Ja, der Testmodus von IronBarcode liefert vollständige dekodierte Barcodewerte - nur die erzeugten Ausgabebilder erhalten ein Wasserzeichen. Sie können die Lesegenauigkeit an Ihren eigenen Dokumenten testen, bevor Sie sich zum Kauf verpflichten.

Was ist der Preisunterschied zwischen MessagingToolkit BarCode und IronBarcode?

Die Preise für IronBarcode beginnen bei 749 US-Dollar für eine unbefristete Einzelentwicklerlizenz für Entwicklung und Produktion. Preisdetails und Volumenoptionen sind auf der IronBarcode-Lizenzierungsseite verfügbar. Es ist keine separate Runtime-Lizenz erforderlich.

Ist es einfach, von MessagingToolkit BarCode zu IronBarcode zu migrieren?

Bei der Migration von MessagingToolkit BarCode zu IronBarcode geht es in erster Linie darum, instanzbasierte API-Aufrufe durch die statischen Methoden von IronBarcode zu ersetzen, Lizenzierungsvorlagen zu entfernen und die Namen von Ergebniseigenschaften zu aktualisieren. Bei den meisten Migrationen wird eher Code reduziert als hinzugefügt.

Kann IronBarcode QR-Codes mit Logos generieren?

Ja. QRCodeWriter.CreateQrCode().AddBrandLogo("logo.png") bettet ein Markenbild nativ in einen QR-Code mit konfigurierbarer Fehlerkorrektur ein. Farbige QR-Codes werden auch über ChangeBarCodeColor() unterstützt.

Curtis Chau
Technischer Autor

Curtis Chau hat einen Bachelor-Abschluss in Informatik von der Carleton University und ist spezialisiert auf Frontend-Entwicklung mit Expertise in Node.js, TypeScript, JavaScript und React. Leidenschaftlich widmet er sich der Erstellung intuitiver und ästhetisch ansprechender Benutzerschnittstellen und arbeitet gerne mit modernen Frameworks sowie der Erstellung gut strukturierter, optisch ansprechender ...

Weiterlesen

Iron-Support-Team

Wir sind 24 Stunden am Tag, 5 Tage die Woche online.
Chat
E-Mail
Rufen Sie mich an