Migrating from MessagingToolkit.Barcode to IronBarcode
MessagingToolkit.Barcode veröffentlichte seine letzte Version — 1.7.0.2 — im Jahr 2013 und hat seitdem keine Aktualisierungen mehr erhalten. Dieser Leitfaden beschreibt den kompletten Migrationsprozess zu IronBarcode: warum die Migration notwendig ist, welche Codeänderungen vorgenommen werden und wie man überprüft, ob die Migration abgeschlossen ist. Der Leitfaden richtet sich sowohl an Teams, die die Barcode-Funktionalität isoliert migrieren, als auch an Teams, die ein umfassenderes .NET Framework -Upgrade durchführen, für das MessagingToolkit.Barcode eine blockierende Abhängigkeit darstellt.
Warum von MessagingToolkit.Barcode migrieren?
Framework-Kompatibilitätsblocker: MessagingToolkit.Barcode zielt auf .NET Framework 3.5, 4.0 und 4.5 ab. Es hat kein .NET Standard -Ziel und kein .NET Core -Ziel. Wenn eine Projektdatei, die auf dieses Paket verweist, auf ein modernes .NET Zielframework – .NET 6, .NET 7, .NET 8 oder .NET 9 – eingestellt ist, schlägt der NuGet Wiederherstellungsvorgang mit einem Framework-Kompatibilitätsfehler fehl. Der Bauvorgang wird nicht fortgesetzt. Dies ist keine Warnung oder eine Laufzeitbeeinträchtigung; Es handelt sich um einen Kompilierfehler, der verhindert, dass das Projekt überhaupt erstellt werden kann. Das Entfernen von MessagingToolkit.Barcode ist eine Voraussetzung für jedes .NET Framework Upgrade und kein optionaler Bereinigungsschritt.
Sicherheitsrisiko: Seit der letzten Codeänderung sind zwölf Jahre vergangen. Für jede Schwachstelle, die nach 2014 in der Bildparsing-Logik der Bibliothek, ihrer von ZXing abgeleiteten Dekodierungsimplementierung oder ihren transitiven Abhängigkeiten entdeckt wurde, gibt es keinen Patch, keine Empfehlung und keinen Ansprechpartner für die Wartung. Sicherheitsüberprüfungstools kennzeichnen das Paket als verwaist. Compliance-Rahmenwerke – PCI DSS, HIPAA, SOC 2, ISO 27001 – erfordern ein aktives Patch-Management von Drittanbietersoftware. Ein nicht mehr benötigtes Paket fällt bei diesen Prüfungen aus prozessualen Gründen durch, unabhängig davon, ob eine spezifische CVE identifiziert wurde.
Eingestellte Zielplattformen: Die Metadaten des NuGet Pakets listen Silverlight 3, 4 und 5 als Zielplattformen auf; Alle drei wurden 2021 eingestellt. Aufgeführt sind Windows Phone 7.0, 7.5, 7.8 und 8.0; Die Unterstützung für diese Plattformen wurde zwischen 2014 und 2017 eingestellt. Die Bibliothek wurde nie aktualisiert, um eine Plattform zu unterstützen, die die Nachfolge dieser eingestellten Umgebungen angetreten hat.
Fähigkeitslücken: MessagingToolkit.Barcode akzeptierte nur System.Drawing.Bitmap-Eingaben, was in .NET 6 und später nur auf Windows beschränkt ist. Es wurde pro Dekodierungsaufruf ein einzelnes Ergebnis zurückgegeben, ohne Unterstützung für Bilder mit mehreren Barcodes. Es verfügte über keine PDF-Lesefunktion – Anwendungen, die Barcodes aus PDF-Dokumenten lesen mussten, benötigten einen separaten Extraktionsschritt, bevor sie die Bibliothek aufrufen konnten. Die Ausgabeerzeugung gab eine Bitmap zurück, die einen System.Drawing.Imaging-Import erforderte und eine plattformübergreifende Bereitstellung verhinderte.
Das grundsätzliche Problem
MessagingToolkit.Barcode erzwingt eine Abhängigkeit von System.Drawing und einem instanzbasierten Workflow, der mit modernen .NET-Versionen inkompatibel ist:
// MessagingToolkit.Barcode: only compiles on .NET Framework 4.5 or earlier
// System.Drawing.Bitmap throws PlatformNotSupportedException on Linux/.NET 6+
using MessagingToolkit.Barcode;
using System.Drawing;
var decoder = new BarcodeDecoder();
using (var bitmap = new Bitmap("barcode.png")) // Windows-only in .NET 6+
{
var result = decoder.Decode(bitmap); // Single result or null
if (result != null)
{
Console.WriteLine(result.Text);
}
}Imports MessagingToolkit.Barcode
Imports System.Drawing
Dim decoder As New BarcodeDecoder()
Using bitmap As New Bitmap("barcode.png") ' Windows-only in .NET 6+
Dim result = decoder.Decode(bitmap) ' Single result or Nothing
If result IsNot Nothing Then
Console.WriteLine(result.Text)
End If
End UsingIronBarcode entfernt die System.Drawing-Abhängigkeit vollständig und funktioniert identisch auf Windows, Linux, macOS und Docker-Containern:
// IronBarcode: runs on .NET 6, 7, 8, 9 — Windows, Linux, macOS, Docker
using IronBarCode;
IronBarCode.License.LicenseKey = "YOUR-LICENSE-KEY";
var results = BarcodeReader.Read("barcode.png"); //NeinBitmap, no System.Drawing
foreach (var result in results)
{
Console.WriteLine(result.Value);
}
IronBarcode vs. MessagingToolkit.Barcode: Funktionsvergleich
| Feature | MessagingToolkit.Barcode | IronBarcode |
|---|---|---|
| Letzte Aktualisierung | 2014 | 2026 (aktiv) |
| NuGet -Version | 1.7.0.2 (endgültig) | Aktuell, regelmäßig aktualisiert |
| .NET 6 / 7 / 8 / 9 Unterstützung | Nein | Ja |
| .NET Framework 4.6.2+ | Nein | Ja |
| .NET Framework 3.5-4.5 | Ja | Nein |
| .NET Core Unterstützung | Nein | Ja |
| ASP.NET Core | Nein | Ja |
| .NET BEHOBEN | Nein | Ja |
| Blazor | Nein | Ja |
| Plattformübergreifend (Linux, macOS) | Nein | Ja |
| Docker-/Container-Unterstützung | Nein | Ja |
| Eingabetypen für Barcode-Lesegeräte | Nur Bitmap | Pfad, Datenstrom, Byte-Array, PDF |
| PDF-Barcode-Lesen | Nein | Ja (Muttersprachler) |
| Mehrere Barcodes pro Bild | Nein | Ja |
| Automatische Formaterkennung | Nein | Ja |
| Ausgabeformate der Barcode-Generierung | Nur Bitmap | PNG, JPEG, SVG, PDF, Byte-Array |
| System.Drawing-Abhängigkeit | Erforderlich | None |
| Sicherheitspatches | Keine seit 2014 | Regelmäßige Patches |
| Kommerzielle Unterstützung | None | Professionelle Unterstützung verfügbar |
| Ergebnis der Compliance-Prüfung | Als aufgegeben markiert | Besteht Standardprüfungen |
Schnellstart: Migration von MessagingToolkit.Barcode zu IronBarcode
Schritt 1: Ersetzen des NuGet-Pakets
Entfernen Sie das Paket MessagingToolkit.Barcode:
dotnet remove package MessagingToolkit.Barcode
Falls das Projekt MessagingToolkit.Barcode.dll direkt über einen <HintPath>-Eintrag in der .csproj-Datei referenziert, entfernen Sie auch diese Referenz.
IronBarcode installieren:
dotnet add package IronBarcode
IronBarcode unterstützt .NET Framework 4.6.2 bis .NET 9. Es wird als einzelnes Paket mit allen gebündelten Abhängigkeiten installiert – es wird keine separate Grafikbibliothek oder ZXing-Referenz benötigt.
Schritt 2: Namespaces aktualisieren
Ersetzen Sie den MessagingToolkit-Namespace in jeder Datei, die auf die alte Bibliothek verweist, durch den IronBarcode-Namespace:
// Remove this
using MessagingToolkit.Barcode;
using System.Drawing; // if used only for Bitmap input to MessagingToolkit
// Add this
using IronBarCode;Imports IronBarCodeDateien, die System.Drawing ausschließlich für den Bitmap-Typ importierten, der mit MessagingToolkit.Barcode verwendet wurde, können diesen Import entfernen, sobald IronBarcode im Einsatz ist.
Schritt 3: Lizenz initialisieren
Fügen Sie die Lizenzinitialisierung einmal beim Start der Anwendung hinzu - in Program.cs, Startup.cs oder dem entsprechenden Einstiegspunkt. Für den Produktiveinsatz ist ein Lizenzschlüssel erforderlich; Die Bibliothek arbeitet im Testmodus ohne ein solches Exemplar.
// Add once at application startup
IronBarCode.License.LicenseKey = "YOUR-LICENSE-KEY";' Add once at application startup
IronBarCode.License.LicenseKey = "YOUR-LICENSE-KEY"Beispiele für die Code-Migration
Barcodes aus Bilddateien lesen
Der alte Ansatz erforderte die Konstruktion eines Bitmap aus dem Dateipfad und übergab ihn an eine BarcodeDecoder-Instanz. IronBarcode akzeptiert den Dateipfad direkt.
MessagingToolkit.Barcode-Ansatz:
using MessagingToolkit.Barcode;
using System.Drawing;
public string ReadBarcodeValue(string imagePath)
{
var decoder = new BarcodeDecoder();
using (var bitmap = new Bitmap(imagePath))
{
var result = decoder.Decode(bitmap);
return result?.Text;
}
}Imports MessagingToolkit.Barcode
Imports System.Drawing
Public Function ReadBarcodeValue(imagePath As String) As String
Dim decoder As New BarcodeDecoder()
Using bitmap As New Bitmap(imagePath)
Dim result = decoder.Decode(bitmap)
Return If(result IsNot Nothing, result.Text, Nothing)
End Using
End FunctionIronBarcode -Ansatz:
using IronBarCode;
public string ReadBarcodeValue(string imagePath)
{
var results = BarcodeReader.Read(imagePath);
return results.FirstOrDefault()?.Value;
}Imports IronBarCode
Public Function ReadBarcodeValue(imagePath As String) As String
Dim results = BarcodeReader.Read(imagePath)
Return results.FirstOrDefault()?.Value
End FunctionDie IronBarcode-Version entfernt die Bitmap-Konstruktion und das null-bedingte Muster bei einem einzelnen Objekt. BarcodeReader.Read() gibt eine Sammlung zurück – eine leere Sammlung, wenn nichts gefunden wird – sodass .FirstOrDefault() die Nullüberprüfung des alten Einzelwert-Rückgabewerts ersetzt.
Zugriff auf Formatinformationen aus den Ergebnissen
MessagingToolkit.Barcode legte das erkannte Format über result.BarcodeFormat offen. IronBarcode macht es über result.Format zugänglich. Beide sind Enum-Werte im Ergebnisobjekt, jedoch mit unterschiedlichen Enum-Typnamen.
MessagingToolkit.Barcode-Ansatz:
using MessagingToolkit.Barcode;
using System.Drawing;
var decoder = new BarcodeDecoder();
using (var bitmap = new Bitmap("barcode.png"))
{
var result = decoder.Decode(bitmap);
if (result != null)
{
Console.WriteLine($"Value: {result.Text}");
Console.WriteLine($"Format: {result.BarcodeFormat}");
}
}Imports MessagingToolkit.Barcode
Imports System.Drawing
Dim decoder As New BarcodeDecoder()
Using bitmap As New Bitmap("barcode.png")
Dim result = decoder.Decode(bitmap)
If result IsNot Nothing Then
Console.WriteLine($"Value: {result.Text}")
Console.WriteLine($"Format: {result.BarcodeFormat}")
End If
End UsingIronBarcode -Ansatz:
using IronBarCode;
var results = BarcodeReader.Read("barcode.png");
var first = results.FirstOrDefault();
if (first != null)
{
Console.WriteLine($"Value: {first.Value}");
Console.WriteLine($"Format: {first.Format}");
}Imports IronBarCode
Dim results = BarcodeReader.Read("barcode.png")
Dim first = results.FirstOrDefault()
If first IsNot Nothing Then
Console.WriteLine($"Value: {first.Value}")
Console.WriteLine($"Format: {first.Format}")
End IfDer Eigenschaftenname ändert sich von .Text zu .Value und von .BarcodeFormat zu .Format. Der Enum-Typ ändert sich von BarcodeFormat (MessagingToolkit) zu BarcodeEncoding (IronBarcode), obwohl .Format.ToString() eine vergleichbare, menschenlesbare Zeichenkette für Anzeige- oder Protokollierungszwecke erzeugt.
Barcodes generieren
MessagingToolkit.Barcode verwendete ein instanzbasiertes BarcodeEncoder mit einem Property-Set-Format, bevor .Encode() aufgerufen wurde. IronBarcode verwendet eine statische Methode, die den Kodierungstyp als Parameter entgegennimmt.
MessagingToolkit.Barcode-Ansatz:
using MessagingToolkit.Barcode;
public void GenerateQrCode(string data, string outputPath)
{
var encoder = new BarcodeEncoder();
encoder.Format = BarcodeFormat.QrCode;
var bitmap = encoder.Encode(data);
bitmap.Save(outputPath);
}Imports MessagingToolkit.Barcode
Public Sub GenerateQrCode(data As String, outputPath As String)
Dim encoder As New BarcodeEncoder()
encoder.Format = BarcodeFormat.QrCode
Dim bitmap = encoder.Encode(data)
bitmap.Save(outputPath)
End SubIronBarcode -Ansatz:
using IronBarCode;
public void GenerateQrCode(string data, string outputPath)
{
BarcodeWriter.CreateBarcode(data, BarcodeEncoding.QRCode)
.SaveAsPng(outputPath);
}Imports IronBarCode
Public Sub GenerateQrCode(data As String, outputPath As String)
BarcodeWriter.CreateBarcode(data, BarcodeEncoding.QRCode) _
.SaveAsPng(outputPath)
End SubFür die Erstellung von Code 128 und anderen 1D-Barcodes gilt dasselbe statische Muster mit einer anderen Codierungskonstante:
// Code 128
BarcodeWriter.CreateBarcode("PRODUCT-12345", BarcodeEncoding.Code128)
.SaveAsPng("code128.png");
// EAN-13
BarcodeWriter.CreateBarcode("5901234123457", BarcodeEncoding.EAN13)
.SaveAsPng("ean13.png");' Code 128
BarcodeWriter.CreateBarcode("PRODUCT-12345", BarcodeEncoding.Code128) _
.SaveAsPng("code128.png")
' EAN-13
BarcodeWriter.CreateBarcode("5901234123457", BarcodeEncoding.EAN13) _
.SaveAsPng("ean13.png")Aktualisierung des Zielrahmens
Sobald MessagingToolkit.Barcode entfernt und alle Verweise ersetzt wurden, kann das Zielframework der Projektdatei aktualisiert werden. Diese Änderung wurde durch die alte Abhängigkeit verhindert und wird erst nach deren Entfernung möglich:
MessagingToolkit.Barcode-Ansatz (Projektdatei):
<PropertyGroup>
<TargetFramework>net472</TargetFramework>
</PropertyGroup>
IronBarcode Ansatz (Projektdatei):
<PropertyGroup>
<TargetFramework>net8.0</TargetFramework>
</PropertyGroup>
IronBarcode unterstützt .NET Framework 4.6.2 bis .NET 9, sodass es vor dem Abschluss des Framework-Upgrades installiert werden kann. Dadurch kann die Migration schrittweise durchgeführt werden: IronBarcode wird zusammen mit MessagingToolkit.Barcode installiert, alle Verwendungen werden ersetzt, der neue Code wird überprüft, das alte Paket wird entfernt und als letzter Schritt das Zielframework geändert.
Barcodes aus PDF-Dokumenten lesen
MessagingToolkit.Barcode bot keine PDF-Unterstützung. Das Auslesen von Barcodes aus einer PDF-Datei erforderte das Extrahieren von Bildern aus jeder Seite mithilfe einer separaten Bibliothek, bevor der Barcode-Decoder aufgerufen werden konnte. IronBarcode liest PDF-Dateien direkt mit der gleichen Methode, die auch für Bilder verwendet wird.
MessagingToolkit.Barcode-Ansatz:
// Not supported — required external PDF page extraction before decode
//Neinequivalent exists in MessagingToolkit.Barcode
IronBarcode -Ansatz:
using IronBarCode;
// Read all barcodes from every page of a PDF document
var results = BarcodeReader.Read("invoice.pdf");
foreach (var barcode in results)
{
Console.WriteLine($"Page {barcode.PageNumber}: {barcode.Value} ({barcode.Format})");
}Imports IronBarCode
' Read all barcodes from every page of a PDF document
Dim results = BarcodeReader.Read("invoice.pdf")
For Each barcode In results
Console.WriteLine($"Page {barcode.PageNumber}: {barcode.Value} ({barcode.Format})")
NextAnwendungen, die gescannte Dokumente, Versandmanifeste oder mehrseitige Rechnungsstapel verarbeiten, erhalten diese Funktionalität im Rahmen der Migration ohne zusätzliche Bibliothek oder Konfiguration.
MessagingToolkit.Barcode API zu IronBarcode Mapping-Referenz
| MessagingToolkit.Barcode | IronBarcode | Notizen |
|---|---|---|
new BarcodeDecoder() | Statisch — BarcodeReader.Read() | Keine Instanz erforderlich |
barcodeReader.Decode(bitmap) | BarcodeReader.Read(path) | Akzeptiert Pfad, Datenstrom, Byte-Array oder PDF |
result.Text | result.Value | Immobilie umbenannt |
result.BarcodeFormat | result.Format | Grundstück umbenannt; Enum-Typ ist BarcodeEncoding |
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, unterschiedlicher Namensraum |
BarcodeFormat.Ean13 | BarcodeEncoding.EAN13 | Die Großschreibung ist unterschiedlich |
| Gibt null zurück, falls nicht gefunden | Gibt eine leere Sammlung zurück | Überprüfen Sie .Any() oder .FirstOrDefault() |
| Nur Bitmap-Eingabe | Pfad, Datenstrom, Byte-Array, PDF | Kein System erforderlich. Zeichnung erforderlich. |
| Nur .NET Framework 3.5-4.5 | .NET 4.6.2 bis .NET 9 | Volle Unterstützung für modernes .NET |
Gängige Migrationsprobleme und Lösungen
Problem 1: Namespace nach Paketaktualisierung nicht gefunden
Problem: Nach dem Entfernen von MessagingToolkit.Barcode und dem Hinzufügen von IronBarcode schlägt die Kompilierung mit CS0246: The type or namespace name 'BarcodeDecoder' could not be found fehl.
Lösung: Der alte Namespace using MessagingToolkit.Barcode; muss durch using IronBarCode; (beachten Sie das große C) in jeder Datei ersetzt werden, die die alte Bibliothek referenziert. Eine projektweite Suche nach der alten Namespace-Zeichenfolge findet alle betroffenen Dateien:
grep -r "using MessagingToolkit.Barcode" --include="*.cs" .
grep -r "BarcodeDecoder\|BarcodeEncoder" --include="*.cs" .
Problem 2: Mehrdeutigkeit von BarcodeReadern zwischen Namensräumen
Problem: Wenn ein Projekt sowohl MessagingToolkit.Barcode als auch IronBarcode während einer gestuften Migration referenziert, kann BarcodeReader zwischen den beiden Namespaces mehrdeutig sein.
Lösung: Die Referenz während der Übergangszeit explizit qualifizieren:
// Use the fully qualified name while both packages are installed
var results = IronBarCode.BarcodeReader.Read("barcode.png");Imports IronBarCode
Dim results = BarcodeReader.Read("barcode.png")Sobald alle Referenzen auf MessagingToolkit.Barcode ersetzt und das alte Paket entfernt wurden, kann der Qualifizierer weggelassen werden und die using IronBarCode;-Direktive ist ausreichend.
Problem 3: Zielframework nach Paketentfernung weiterhin auf net472 eingestellt
Problem: Nach dem Entfernen von MessagingToolkit.Barcode und der Installation von IronBarcode zielt die Projektdatei immer noch auf net472. Build-Warnungen weisen darauf hin, dass moderne .NET -APIs nicht verfügbar sind.
Lösung: Aktualisieren Sie das <TargetFramework>-Element in der .csproj-Datei, sobald die Abhängigkeit entfernt wurde. IronBarcode unterstützt sowohl net472 (über .NET Framework 4.6.2 Kompatibilität) als auch moderne Ziele. Der Wechsel zu net8.0 erfordert die Überprüfung, dass keine anderen alten Abhängigkeiten im Projekt verbleiben:
<!-- Update this line in the .csproj file -->
<TargetFramework>net8.0</TargetFramework>
Führen Sie dotnet build nach der Änderung aus, um verbleibende alte Abhängigkeiten zu identifizieren, die behoben werden müssen.
MessagingToolkit.Barcode-Migrationscheckliste
Vor der Migration anfallende Aufgaben
Überprüfen Sie den Quellcode, um alle Stellen zu identifizieren, die auf MessagingToolkit.Barcode verweisen:
# Find all using statements
grep -r "using MessagingToolkit.Barcode" --include="*.cs" .
# Find decoder instantiations
grep -r "BarcodeDecoder" --include="*.cs" .
# Find encoder instantiations
grep -r "BarcodeEncoder" --include="*.cs" .
# Find decode calls
grep -r "\.Decode(" --include="*.cs" .
# Find encode calls
grep -r "\.Encode(" --include="*.cs" .
# Find project file references
grep -r "MessagingToolkit" --include="*.csproj" .
grep -r "MessagingToolkit" --include="packages.config" .
Dokumentieren Sie alle Dateien, die Änderungen erfordern. Notieren Sie alle Orte, an denen System.Drawing.Bitmap als Eingabe für den Decoder verwendet wird – diese Verwendungen müssen ebenfalls aktualisiert werden.
Aufgaben der Code-Aktualisierung
- Führen Sie
dotnet remove package MessagingToolkit.Barcodeaus, um das Paket zu entfernen - Führen Sie
dotnet add package IronBarcodeaus, um IronBarcode zu installieren - Fügen Sie
IronBarCode.License.LicenseKey = "YOUR-LICENSE-KEY";beim Start der Anwendung hinzu - Ersetzen Sie alle
using MessagingToolkit.Barcode;-Anweisungen durchusing IronBarCode; - Ersetzen Sie alle
new BarcodeDecoder()-Muster durchBarcodeReader.Read()-statische Aufrufe - Ersetzen Sie alle
new BarcodeEncoder()-Muster durchBarcodeWriter.CreateBarcode()-statische Aufrufe - Aktualisieren Sie alle
result.Text-Referenzen aufresult.Value - Aktualisieren Sie alle
result.BarcodeFormat-Referenzen aufresult.Format - Aktualisieren Sie alle
barcodeWriter.Format = BarcodeFormat.X-Muster, um die Codierung als Parameter zu übergeben - Ersetzen Sie
bitmap.Save()durch.SaveAsPng()oder die entsprechende Ausgabemethode auf dem IronBarcode-Ergebnis - Entfernen Sie
using System.Drawing;-Importe, wo sie nur für Bitmap-Eingaben auf MessagingToolkit verwendet wurden - Aktualisieren Sie
<TargetFramework>in der Projektdatei, wenn ein Framework-Upgrade Teil der Migration ist
Post-Migrationstests
- Überprüfen Sie, dass
dotnet buildmit null Fehlern und null Referenzen auf MessagingToolkit abgeschlossen wird - Führen Sie
grep -r "MessagingToolkit" --include="*.cs" .aus und bestätigen Sie null Ergebnisse - Testen Sie das Barcode-Lesen mit echten Barcode-Bildern aus Ihrer Anwendung und bestätigen Sie, dass
.Valueden erwarteten String zurückgibt - Testen Sie das Lesen von Barcodes mit Bildern mehrerer Barcodes und bestätigen Sie, dass alle Barcodes in der Sammlung zurückgegeben werden.
- Testen Sie die Barcode-Generierung und überprüfen Sie, ob die Ausgabedatei dem erwarteten Format und der erwarteten Kodierung entspricht.
- Falls die PDF-Lesefunktion verwendet wird, testen Sie diese mit einem repräsentativen PDF-Dokument und überprüfen Sie, ob die Metadaten der Seitenzahlen korrekt sind.
- Wurde das Zielframework geändert, führen Sie die vollständige Suite in der neuen Laufzeitumgebung aus, um weitere Kompatibilitätsprobleme zu identifizieren.
Wichtigste Vorteile der Migration zu IronBarcode
Ungehinderte Framework-Upgrades: Sobald MessagingToolkit.Barcode entfernt wurde, kann das Zielframework der Projektdatei auf jede moderne .NET Version aktualisiert werden. Diese eine Änderung ermöglicht den Zugriff auf die Leistungsverbesserungen von .NET 8, die Sprachfunktionen von C# 12, native asynchrone Muster und das gesamte Ökosystem der NuGet Pakete, die .NET Standard 2.0 oder höher erfordern.
Plattformübergreifende Bereitstellung: Die interne Bildpipeline von IronBarcode ist nicht von System.Drawing abhängig, was ab .NET 6 nur auf Windows beschränkt ist. Nach der Migration können Anwendungen auf Linux-Servern, macOS-Entwicklungsumgebungen, Docker-Containern und Cloud-Funktionsruntimes bereitgestellt werden, ohne auf PlatformNotSupportedException der Barcode-Bibliothek zu stoßen.
Feststellungen zur Einhaltung der Vorschriften: IronBarcode erhält regelmäßig Sicherheitsupdates im Rahmen eines dokumentierten Wartungsprozesses. Durch den Austausch einer nicht mehr genutzten Abhängigkeit gegen eine aktiv gepflegte Abhängigkeit werden die im Rahmen von Prüfungen festgestellten Mängel gemäß PCI DSS, HIPAA, SOC 2 und ähnlichen Rahmenwerken behoben, die ein aktives Patch-Management von Drittanbieterbibliotheken erfordern.
Nativer PDF-Support: BarcodeReader.Read() akzeptiert PDF-Dateipfade direkt, wodurch ein separater PDF-Bildextraktionsschritt vor der Barcode-Decodierung entfällt. Anwendungen, die gescannte Dokumente oder Rechnungsstapel verarbeiten, profitieren von dieser Funktionalität, ohne dass neue Bibliotheken oder Pipeline-Stufen hinzugefügt werden müssen.
Erweiterte Ausgabeoptionen: Generierte Barcodes sind als PNG, JPEG, SVG, PDF oder base64-kodierte Strings über das zurückgegebene Fluent-Result-Objekt von BarcodeWriter.CreateBarcode() verfügbar. Dies ersetzt den System.Drawing.Bitmap-Rückgabetyp von MessagingToolkit.Barcode, entfernt die Windows-exklusive Ausgabebeschränkung und ermöglicht die direkte Einbettung in Webantworten oder Datenbankspeicher.

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 Handbücher.