IRONSOFTWAREHOME
VIDEOS

Migrating from BarcodeScanning.Native.Maui to IronBarcode

Curtis Chau
Curtis Chau
Updated: 3. Mai 2026

Dieser Leitfaden bietet einen vollständigen Migrationspfad von BarcodeScanning.Native.Maui zu IronBarcode und behandelt den Austausch des Kameraereignismusters, Namensraumänderungen, Beispiele für die Codemigration sowie die Behandlung von Szenarien, die BarcodeScanning.Native.Maui nicht abdecken kann – Windows MAUI, Datei- und PDF-Eingabe, serverseitige Verarbeitung und Barcode-Generierung.

Warum von BarcodeScanning.MAUI migrieren?

Teams, die von BarcodeScanning.Native.Maui migrieren, melden folgende Auslöser:

Windows MAUI-Ziel erforderlich: BarcodeScanning.Native.Maui kapselt native iOS- und Android-APIs. Es gibt keine Windows-Implementierung und es ist auch keine geplant. Wenn Ihre MAUI-App neben iOS und Android auch Windows als Zielplattform hat, benötigen Sie eine Bibliothek, die auf allen drei Plattformen ohne plattformspezifische Verzweigungen funktioniert.

Datei- oder PDF-Eingabe zu den Anforderungen hinzugefügt: BarcodeScanning.Native.Maui akzeptiert nur Live-Kamerabilder. Wenn Benutzer ein Bild aus ihrer Galerie hochladen müssen oder wenn ein serverseitiger Endpunkt Barcodes aus PDFs extrahieren muss, bietet die Bibliothek keinen entsprechenden Codepfad an. Für jedes Szenario mit Datei- oder PDF-Barcodes wird ein anderes Werkzeug benötigt.

Die iOS UPC-A-Daten waren in der Produktion fehlerhaft: Apples Vision-Framework liefert 13 Ziffern für UPC-A-Barcodes (EAN-13-Kodierung). BarcodeScanning.Native.Maui leitet dies unkorrigiert weiter. Wenn UPC-A-Codes mit einer führenden Null gespeichert wurden, könnten Bestandsdatensätze, Kassenabfragen oder Lieferkettenintegrationen unbemerkt gestört worden sein. IronBarcode liefert ohne manuelle Normalisierung den korrekten 12-stelligen UPC-A-Wert.

PDF417-Scans waren unzuverlässig: Die GitHub -Issues der Bibliothek dokumentieren PDF417 als "sehr problematisch – die meisten Scans werden gar nicht erst durchgeführt". Für Versandetiketten, Führerscheine und Bordkarten ist dies ein direktes Hindernis.

Generierung erforderlich: BarcodeScanning.Native.Maui kann keine Barcodes generieren. IronBarcode generiert Code128, QR, DataMatrix und andere Formate als Bilddateien oder Byte-Arrays.

Serverseitige Verarbeitung eingeführt: BarcodeScanning.Native.Maui ist ein Kamera-UI-Steuerelement – ​​es kann nicht in einem Serverprozess ausgeführt werden. Wenn neben dem Scannen auf dem Mobilgerät auch serverseitiges Barcode-Lesen erforderlich ist, deckt IronBarcode beide Seiten mit demselben Paket und derselben API ab.

Das grundsätzliche Problem

BarcodeScanning.Native.Maui verknüpft das Lesen von Barcodes vollständig mit dem Live-Kamera-Ereignismodell. Sobald eine Anforderung außerhalb dieses Modells liegt, bietet die Bibliothek nichts mehr an:

private void OnBarcodeDetected(object sender, OnDetectionFinishedEventArg e)
{
    var barcode = e.BarcodeResults.FirstOrDefault();
    if (barcode != null)
        ResultLabel.Text = barcode.DisplayValue;
}

IronBarcode akzeptiert beliebige Dateneingaben – Kameraaufnahmen, Dateien, PDFs, Byte-Arrays – und läuft auf jeder Plattform:

using IronBarCode;

private async void ScanBarcodeButton_Clicked(object sender, EventArgs e)
{
    var photo = await MediaPicker.CapturePhotoAsync();
    if (photo == null) return;

    using var stream = await photo.OpenReadAsync();
    using var ms = new MemoryStream();
    await stream.CopyToAsync(ms);

    var results = BarcodeReader.Read(ms.ToArray());
    ResultLabel.Text = results.FirstOrDefault()?.Value ?? "No barcode found";
}

IronBarcode vs. BarcodeScanning.MAUI: Funktionsvergleich

FeatureBarcodeScanning.MAUIIronBarcode
Live-KamerabildlesungJa – CameraView-SteuerungNein (verwenden Sie MediaPicker zum Aufnehmen und lesen Sie es dann).
In-App-KamerasucherJa – kontinuierliche EchtzeitNein – verwendet die Systemkamera-Benutzeroberfläche über MediaPicker.
Aus Bilddatei lesenNeinJa — BarcodeReader.Read(path)
Aus Byte-Array lesenNeinJa — BarcodeReader.Read(bytes)
Aus dem Stream lesenNeinJa — BarcodeReader.Read(stream)
Aus PDF lesenNeinJa — BarcodeReader.Read(pdf)
Barcode-GenerierungNeinJa — BarcodeWriter + QRCodeWriter
Windows MAUI-UnterstützungNeinJa
iOS MAUI-UnterstützungJaJa
Android MAUI-UnterstützungJaJa
macOS MAUI-UnterstützungNicht dokumentiertJa
Serverseitig / ASP.NETNeinJa
Docker / Azure / AWS LambdaNeinJa
iOS UPC-A GenauigkeitGibt 13 Stellen zurück (Fehler), erfordert manuelle NormalisierungGibt den korrekten 12-stelligen UPC-A-Code zurück.
PDF417 Zuverlässigkeit"Die meisten Scans finden nie statt" (GitHub Probleme)Unterstützt
Mehrfach-Barcode-ErkennungJa (mehrere pro Rahmen über e.BarcodeResults)Ja (ExpectMultipleBarcodes Option)
LesegeschwindigkeitssteuerungNoneReadingSpeed.Faster / Balanced / Detailed / ExtremeDetail
LizenzMIT (Open Source, kostenlos)Gewerblich – Lite 749 $, Plus 1.499 $, Professional 2.999 $, Unlimited 5.999 $
.NET Framework -UnterstützungNein (nur MAUI)Ja – .NET Framework 4.6.2+

Schnellstart: Migration von BarcodeScanning.MAUI zu IronBarcode

Schritt 1: Ersetzen des NuGet-Pakets

BarcodeScanning.Native.Maui entfernen:

dotnet remove package BarcodeScanning.Native.Maui
SHELL

IronBarcode installieren:

dotnet add package IronBarcode
SHELL

Schritt 2: Namespaces aktualisieren

Entfernen Sie den Namespace "BarcodeScanning" aus allen Dateien:

// Remove
using BarcodeScanning;

Fügen Sie den IronBarcode -Namespace hinzu:

// Add
using IronBarCode;

In XAML-Dateien entfernen Sie die scanner: XML-Namespace-Deklaration:

<!-- Remove this line from ContentPage attributes -->
xmlns:scanner="clr-namespace:BarcodeScanning;assembly=BarcodeScanning.Native.Maui"
XML

Schritt 3: Lizenz initialisieren

Fügen Sie die Lizenzinitialisierung beim Anwendungsstart hinzu — in MauiProgram.cs oder App.xaml.cs:

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

Beispiele für die Code-Migration

Kamera-Scan: CameraView zu MediaPicker

Die CameraView Steuerung bot einen Echtzeitsucher mit kontinuierlicher Rahmenerkennung. Der Ersatz durch IronBarcode verwendet MAUI's MediaPicker, um die Systemkamera zu öffnen, ein Foto aufzunehmen und das resultierende Bild zu verarbeiten.

BarcodeScanning.MAUI-Ansatz — XAML:

<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
             xmlns:scanner="clr-namespace:BarcodeScanning;assembly=BarcodeScanning.Native.Maui">
    <StackLayout>
        <scanner:CameraView x:Name="CameraView"
                            OnDetectionFinished="OnBarcodeDetected"
                            CameraEnabled="True"
                            BarcodeFormats="All"
                            VerticalOptions="FillAndExpand" />
        <Label x:Name="ResultLabel" Text="Waiting for scan..." />
    </StackLayout>
</ContentPage>
XML

BarcodeScanning.MAUI-Ansatz — Code-Behind:

using BarcodeScanning;

private void OnBarcodeDetected(object sender, OnDetectionFinishedEventArg e)
{
    var barcode = e.BarcodeResults.FirstOrDefault();
    if (barcode != null)
        MainThread.BeginInvokeOnMainThread(() =>
            ResultLabel.Text = barcode.DisplayValue);
}

IronBarcode Ansatz — XAML:

<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://schemas.microsoft.com/dotnet/2021/maui">
    <StackLayout>
        <Button Text="Scan Barcode" Clicked="ScanButton_Clicked" />
        <Label x:Name="ResultLabel" Text="Tap to scan..." />
    </StackLayout>
</ContentPage>
XML

IronBarcode Ansatz – Code-Behind:

using IronBarCode;

private async void ScanButton_Clicked(object sender, EventArgs e)
{
    var photo = await MediaPicker.CapturePhotoAsync();
    if (photo == null) return;

    using var stream = await photo.OpenReadAsync();
    using var ms = new MemoryStream();
    await stream.CopyToAsync(ms);

    var results = BarcodeReader.Read(ms.ToArray());
    var first = results.FirstOrDefault();
    ResultLabel.Text = first?.Value ?? "No barcode found";
}

Dieser Code läuft auf iOS, Android und Windows MAUI ohne plattformspezifische Verzweigungen. Das Benutzererlebnis ändert sich von einem Live-Sucher innerhalb der App zum nativen Kamerabildschirm der Plattform – was für die meisten Geschäftsanwendungen geeignet ist. Die IronBarcode MAUI-Leseanleitung beschreibt weitere Konfigurationsoptionen.

Verarbeitung mehrerer Barcodes pro Scan

BarcodeScanning.MAUI-Ansatz:

private void OnBarcodeDetected(object sender, OnDetectionFinishedEventArg e)
{
    foreach (var barcode in e.BarcodeResults)
    {
        MainThread.BeginInvokeOnMainThread(() =>
            Console.WriteLine($"Found: {barcode.DisplayValue}"));
    }
}

IronBarcode -Ansatz:

using IronBarCode;

private async void ScanButton_Clicked(object sender, EventArgs e)
{
    var photo = await MediaPicker.CapturePhotoAsync();
    if (photo == null) return;

    using var stream = await photo.OpenReadAsync();
    using var ms = new MemoryStream();
    await stream.CopyToAsync(ms);

    var options = new BarcodeReaderOptions
    {
        Speed = ReadingSpeed.Balanced,
        ExpectMultipleBarcodes = true
    };

    var results = BarcodeReader.Read(ms.ToArray(), options);
    foreach (var result in results)
        Console.WriteLine($"{result.Format}: {result.Value}");
}

ExpectMultipleBarcodes = true teilt dem Leser mit, nach dem ersten gefundenen Barcode weiter zu scannen. Ohne diese Option wird beim ersten Treffer eine Antwort zurückgegeben, was bei Szenarien mit nur einem Barcode schneller ist.

iOS UPC-A-Fix: Normalisierungs-Workaround entfernen

Falls Ihre Codebasis die UPC-A-Lösung mit der führenden Null enthält, entfernen Sie diese vollständig. IronBarcode liefert ohne manuelle Eingriffe den korrekten 12-stelligen Wert.

BarcodeScanning.MAUI-Ansatz – Workaround vorhanden:

private void OnBarcodeDetected(object sender, OnDetectionFinishedEventArg e)
{
    var barcode = e.BarcodeResults.FirstOrDefault();
    if (barcode == null) return;

    var value = barcode.DisplayValue;

    // Workaround: Apple Vision returns 13 digits for UPC-A
    if (barcode.BarcodeFormat == BarcodeFormats.Upca && value.Length == 13)
        value = value.Substring(1);

    ProcessBarcode(value, barcode.BarcodeFormat.ToString());
}

IronBarcode Ansatz – kein Workaround erforderlich:

using IronBarCode;

private async void ScanButton_Clicked(object sender, EventArgs e)
{
    var photo = await MediaPicker.CapturePhotoAsync();
    if (photo == null) return;

    using var stream = await photo.OpenReadAsync();
    using var ms = new MemoryStream();
    await stream.CopyToAsync(ms);

    var results = BarcodeReader.Read(ms.ToArray());
    var first = results.FirstOrDefault();
    if (first == null) return;

    // result.Value is the correct 12-digit UPC-A — no normalization needed
    ProcessBarcode(first.Value, first.Format.ToString());
}

Löschen Sie alle Übereinstimmungen von BarcodeFormats.Upca, die mit Substring(1) gepaart sind — dieser Code ist nach der Migration überflüssig.

Hinzufügen von Datei- und PDF-Unterstützung

BarcodeScanning.Native.Maui bietet keine Entsprechung für die Eingabe von Dateien oder PDFs. Falls es sich hierbei um eine neue Anforderung handelt, die zum Zeitpunkt der Migration erfüllt werden muss:

BarcodeScanning.MAUI-Ansatz:

//Neinequivalent exists — BarcodeScanning.Native.Maui cannot read from files or PDFs
C#

IronBarcode -Ansatz:

using IronBarCode;

// Read from a file the user picked with FilePicker
private async void ReadFileButton_Clicked(object sender, EventArgs e)
{
    var file = await FilePicker.PickAsync(new PickOptions
    {
        PickerTitle = "Select image or PDF"
    });
    if (file == null) return;

    var results = BarcodeReader.Read(file.FullPath);
    foreach (var result in results)
        ResultLabel.Text += $"\n{result.Format}: {result.Value}";
}

// Read barcodes from a PDF directly — no intermediate image step
private void ReadPdfBarcodes()
{
    var results = BarcodeReader.Read("shipment-manifest.pdf");
    foreach (var result in results)
        Console.WriteLine($"{result.Format}: {result.Value}");
}

Die IronBarcode Dokumentation zum Lesen von PDFs behandelt die Unterstützung mehrseitiger PDFs und die Auswahl von Seitenbereichen.

Serverseitige Barcode-Verarbeitung

Wenn Ihre Anwendung eine Backend-ASP.NET-API hat, die ebenfalls Barcode-Verarbeitung benötigt, läuft derselbe BarcodeReader.Read() Aufruf dort ohne Modifikation. BarcodeScanning.Native.Maui hat kein serverseitiges Äquivalent.

BarcodeScanning.MAUI-Ansatz:

//Neinequivalent exists — BarcodeScanning.Native.Maui is a camera UI control
// and cannot run in a server process
C#

IronBarcode -Ansatz:

using IronBarCode;

// ASP.NET endpoint — reads barcodes from an uploaded file
[HttpPost("scan")]
public async Task<IActionResult> ScanBarcode(IFormFile file)
{
    using var ms = new MemoryStream();
    await file.CopyToAsync(ms);

    var results = BarcodeReader.Read(ms.ToArray());
    var values = results.Select(r => new { r.Value, Format = r.Format.ToString() });
    return Ok(values);
}

Das gleiche Paket, die gleiche API, das gleiche Verhalten – auf Mobilgeräten und Servern.

Barcodes generieren

BarcodeScanning.Native.Maui verfügt über keine Generierungs-API. IronBarcode generiert mehrere Formate.

BarcodeScanning.MAUI-Ansatz:

//Neinequivalent exists — BarcodeScanning.Native.Maui cannot generate barcodes
C#

IronBarcode -Ansatz:

using IronBarCode;

// QR code
QRCodeWriter.CreateQrCode("https://example.com/product/12345", 500)
    .SaveAsPng("qr.png");

// Code128 barcode sized to specific dimensions
BarcodeWriter.CreateBarcode("ITEM-98765", BarcodeEncoding.Code128)
    .ResizeTo(400, 100)
    .SaveAsPng("label.png");

// Get bytes for returning from an API or storing in a database
byte[] barcodeBytes = BarcodeWriter.CreateBarcode("ITEM-98765", BarcodeEncoding.Code128)
    .ToPngBinaryData();

Die IronBarcode Generierungsdokumentation umfasst alle unterstützten Formate und Styling-Optionen.

BarcodeScanning.MAUI API zu IronBarcode Mapping-Referenz

BarcodeScanning.Native.MauiIronBarcode
CameraView XAML-SteuerelementEntfernen — verwenden Sie Button + MediaPicker.CapturePhotoAsync()
OnDetectionFinished EreignisBarcodeReader.Read(imageBytes) Rückgabewert
OnDetectionFinishedEventArg eIEnumerable-Ergebnis von BarcodeReader.Read()
e.BarcodeResultsRückgabewert von BarcodeReader.Read()
e.BarcodeResults.FirstOrDefault()results.FirstOrDefault()
barcode.DisplayValueresult.Value
barcode.BarcodeFormatresult.Format
BarcodeFormats="All"Automatische Erkennung – keine Konfiguration erforderlich
CameraEnabled="True"await MediaPicker.CapturePhotoAsync()
Nur iOS + AndroidiOS, Android, Windows, macOS MAUI
Keine DateieingabeBarcodeReader.Read(filePath)
Keine PDF-EingabeBarcodeReader.Read("document.pdf")
Keine GenerationBarcodeWriter.CreateBarcode() / QRCodeWriter.CreateQrCode()
iOS UPC-A gibt 13 Ziffern zurückGibt die korrekten 12 Ziffern zurück – keine Normalisierung erforderlich
PDF417 unzuverlässigUnterstützt

Gängige Migrationsprobleme und Lösungen

Problem 1: Verlust der Live-Sucher-Erfahrung

BarcodeScanning.MAUI: Die CameraView Steuerung bettete eine Echtzeit-Kameravorschau direkt in die MAUI-Seite ein. Der Benutzer konnte das Kamerabild sehen und auf einen Barcode zielen – die Erkennung erfolgte automatisch ohne Knopfdruck.

Lösung: MediaPicker.CapturePhotoAsync() zeigt stattdessen den Plattformkamera-Bildschirm an. Für die meisten Geschäftsprozesse ist dies akzeptabel. Für Verbraucher-Apps, die eine kontinuierliche Live-Vorschau erfordern, können Kamerarahmen direkt an BarcodeReader.Read() übergeben werden:

using IronBarCode;

// Continuous scanning: pass camera frame bytes to BarcodeReader.Read()
// (frame capture depends on your MAUI camera frame source)
private void ProcessCameraFrame(byte[] frameBytes)
{
    var results = BarcodeReader.Read(frameBytes);
    if (results.Any())
    {
        var first = results.First();
        MainThread.BeginInvokeOnMainThread(() =>
            ResultLabel.Text = first.Value);
    }
}

Hierfür muss eine Kamerabildquelle separat von IronBarcode angeschlossen werden. Bevor Sie diesen Weg einschlagen, sollten Sie abwägen, ob eine Live-Vorschau wirklich erforderlich ist oder ob die Systemkamera-Benutzeroberfläche ausreichend ist.

Problem 2: Änderungen am Eigenschaftsnamen und Enum der Klasse e.BarcodeResults

BarcodeScanning.MAUI: barcode.DisplayValue gibt den decodierten String zurück; barcode.BarcodeFormat gibt einen Enum-Wert der BarcodeScanning-Bibliothek zurück.

Lösung: Ersetzen Sie DisplayValue durch result.Value und barcode.BarcodeFormat durch result.Format. Das Iterationsmuster ist dasselbe:

// Before
foreach (var barcode in e.BarcodeResults)
    Console.WriteLine(barcode.DisplayValue);

// After
var results = BarcodeReader.Read(imageBytes);
foreach (var result in results)
    Console.WriteLine(result.Value);

Problem 3: Thread-Marshaling für UI-Aktualisierungen

BarcodeScanning.MAUI: OnDetectionFinished wird in einem Hintergrundthread ausgelöst, sodass alle UI-Updates MainThread.BeginInvokeOnMainThread() erfordern.

Lösung: Mit dem MediaPicker + async Muster erfolgt die Fortsetzung nach await im aufrufenden Kontext — typischerweise der Hauptthread. Die MainThread.BeginInvokeOnMainThread() Wrapper um die Ergebnisausgabe können in der Regel entfernt werden, was den Handler-Code vereinfacht.

Ausgabe 4: MAUI-Kameraberechtigungen

BarcodeScanning.MAUI: Das Paket fügt Kamera-Berechtigungen zu AndroidManifest.xml und Info.plist automatisch als Teil seiner Einrichtung hinzu.

Lösung: Da IronBarcode MediaPicker verwendet, müssen die Standard-MAUI-Kamera-Berechtigungen manuell vorhanden sein. Dies sind die gleichen Berechtigungen, die jede MAUI-App für MediaPicker.CapturePhotoAsync() benötigt und sind typischerweise bereits vorhanden. Verifizieren Sie, dass android.permission.CAMERA in AndroidManifest.xml deklariert ist und NSCameraUsageDescription in Info.plist gesetzt ist, bevor das Gerät getestet wird.

BarcodeScanning.MAUI-Migrationscheckliste

Vor der Migration anfallende Aufgaben

Führen Sie diese Suchvorgänge durch, um alle Verwendungen von BarcodeScanning.Native.Maui zu finden, bevor Sie Änderungen vornehmen:

grep -rn "using BarcodeScanning" --include="*.cs" .
grep -rn "using BarcodeScanning" --include="*.xaml" .
grep -rn "CameraView" --include="*.cs" .
grep -rn "CameraView" --include="*.xaml" .
grep -rn "OnDetectionFinished" --include="*.cs" .
grep -rn "OnDetectionFinishedEventArg" --include="*.cs" .
grep -rn "e\.BarcodeResults" --include="*.cs" .
grep -rn "DisplayValue" --include="*.cs" .
grep -rn "BarcodeFormats\.Upca" --include="*.cs" .
grep -rn "scanner:" --include="*.xaml" .
SHELL

Dokumentieren Sie jeden Treffer. Beachten Sie, welche Dateien CameraView XAML-Verwendung enthalten (erfordern XAML-Änderungen) im Gegensatz zu denen, die nur Code-Behind-Änderungen enthalten. Identifizieren Sie alle UPC-A-Normalisierungs-Workarounds, die nach der Migration gelöscht werden müssen.

Aufgaben der Code-Aktualisierung

  1. Entfernen Sie das BarcodeScanning.Native.Maui NuGet-Paket
  2. Installieren Sie das IronBarcode NuGet-Paket
  3. Fügen Sie IronBarCode.License.LicenseKey = "YOUR-LICENSE-KEY"; in MauiProgram.cs oder App.xaml.cs hinzu
  4. Ersetzen Sie using BarcodeScanning; durch using IronBarCode; in allen .cs Dateien
  5. Entfernen Sie xmlns:scanner="..." Namespace-Deklarationen aus allen XAML-Dateien
  6. Ersetzen Sie scanner:CameraView Steuerelemente in XAML durch ein Button, das MediaPicker.CapturePhotoAsync() auslöst
  7. Entfernen Sie die Verkabelung von OnDetectionFinished="..." Ereignissen aus XAML
  8. Ersetzen Sie OnDetectionFinished Ereignishandler durch async Button-Klick-Handler unter Verwendung von BarcodeReader.Read()
  9. Ersetzen Sie barcode.DisplayValue durch result.Value überall
  10. Ersetzen Sie barcode.BarcodeFormat durch result.Format überall
  11. Löschen Sie alle BarcodeFormats.Upca + Substring(1) Normalisierungsumgehungen
  12. Fügen Sie ExpectMultipleBarcodes = true zu BarcodeReaderOptions hinzu, wo zuvor die Mehrfach-Barcode-Erkennung auf e.BarcodeResults angewiesen war, um mehrere Elemente zurückzugeben
  13. Entfernen Sie MainThread.BeginInvokeOnMainThread() Wrapper aus dem Code zur Ergebnisausgabe, wo das asynchrone Muster sie unnötig macht
  14. Verifizieren Sie, dass AndroidManifest.xml und Info.plist Kamera-Berechtigungen vorhanden sind

Post-Migrationstests

  • Überprüfen Sie, ob das Scannen von Barcodes unter iOS funktioniert und ob UPC-A-Werte als 12-stellige Zeichenketten ohne führende Nullen zurückgegeben werden.
  • Überprüfen Sie, ob das Scannen von Android-Barcodes für alle in der Anwendung verwendeten Formate korrekte Werte liefert.
  • Überprüfen Sie, ob das Scannen von Barcodes unter Windows MAUI funktioniert, wenn Windows ein Build-Ziel ist.
  • Testen Sie das Scannen von PDF417 anhand echter Versandetiketten, Führerscheine oder Bordkarten, falls diese verwendet werden.
  • Testen Sie Mehrfach-Barcode-Szenarien mit ExpectMultipleBarcodes = true und bestätigen Sie, dass alle Barcodes in einem Bild zurückgegeben werden
  • Verifizieren Sie, dass die Dateiauswahl-Scanfunktion (BarcodeReader.Read(filePath)) auf allen MAUI-Zielen funktioniert
  • Überprüfen Sie die PDF-Barcode-Lesefunktion, falls diese Funktion im Zuge der Migration neu hinzugefügt wurde.
  • Bestätigen Sie, dass die serverseitige BarcodeReader.Read() die richtigen Ergebnisse liefert, falls eine Backend-Komponente hinzugefügt wurde
  • Führen Sie alle vorhandenen automatisierten Tests aus und vergleichen Sie die Barcode-Wertausgaben mit den Baselines vor der Migration.

Wichtigste Vorteile der Migration zu IronBarcode

Vollständige Windows MAUI-Unterstützung: IronBarcode läuft auf allen vier MAUI-Zielplattformen – iOS, Android, Windows und macOS – mit demselben Code und demselben Paket. Keine plattformspezifische Barcode-Implementierung ist für Windows notwendig, und keine #if WINDOWS Blöcke sind im Anwendungscode erforderlich.

Jede Eingabequelle: BarcodeReader.Read() akzeptiert Dateipfade, Byte-Arrays, Streams und PDF-Dokumente. Bei jedem Barcode-Szenario – Kameraaufnahme, Datei-Upload, Galeriebild, serverseitige PDF-Verarbeitung – wird dieselbe statische Methode mit demselben Ergebnistyp verwendet.

Korrekte UPC-A-Werte: IronBarcode liefert unter iOS den korrekten 12-stelligen UPC-A-Wert ohne Normalisierungscode in der Anwendung. Historische UPC-A-Daten, die aufgrund des Verhaltens von BarcodeScanning.Native.Maui mit einer führenden Null gespeichert werden, beeinträchtigen die Genauigkeit der nach der Migration gelesenen Werte nicht.

Zuverlässiges PDF417: PDF417 wird vollständig unterstützt und lässt sich zuverlässig lesen. Versandetiketten, Führerscheine und Bordkarten können ohne die in den GitHub -Issues von BarcodeScanning.Native.Maui dokumentierte Einschränkung "die meisten Scans finden nie statt" gescannt werden.

Barcode-Generierung: BarcodeWriter.CreateBarcode() und QRCodeWriter.CreateQrCode() erzeugen Code128, QR, DataMatrix und andere Formate als PNG-Dateien oder Byte-Arrays. Generierung und Auslesen sind aus demselben Paket ohne zusätzliche Abhängigkeiten möglich.

Serverseitige Bereitstellung: Der gleiche BarcodeReader.Read() Aufruf läuft in ASP.NET, Azure Functions, Docker-Containern und AWS Lambda. Mobile und serverseitige Barcode-Logik können dieselbe API, dieselbe Formatunterstützung und denselben Ergebnistyp nutzen, ohne dass zwei separate Barcode-Implementierungen gepflegt werden müssen.

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

...
Weiterlesen

Verwandte Artikel

Key in blue circle

Holen Sie sich sofort Ihren kostenlosen 30-Tage-Testschlüssel.

Your trial license will be sent to your email address

Keine Einschränkungen. 100 % freigeschaltet. Keine Kreditkarte.

bullet_checkedIhr Testlizenzschlüssel wurde Ihnen per E-Mail gesendet.Keine Einschränkungen. 100 % freigeschaltet. Keine Kreditkarte.
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
AWS-Logo
Booking Badge

Von Millionen von Ingenieur*innen weltweit vertraut

Azure (WebApps, Funktionen v3)
Erhalten Sie Ihre unverbindliche Beratung
Füllen Sie das Formular unten aus oder senden Sie eine E-Mail an sales@ironsoftware.com
Ihre Daten werden immer vertraulich behandelt.
Von Millionen von Ingenieur*innen weltweit vertraut
Azure (WebApps, Funktionen v3)
Erhalten Sie sofort Ihren kostenlosen 30-Tage-Testschlüssel.
Ihr Testlizenzschlüssel wurde Ihnen per E-Mail gesendet.