BarcodeLib vs IronBarcode: C# Barcode Bibliothek Vergleich
Barkoder SDK vs IronBarcode: Mobiles Kamera-Scannen vs Vollständige .NET-Barcode-Abdeckung
Das Barkoder SDK taucht in nahezu jeder Übersicht der "besten Barcode-SDKs 2026" auf und wird in Vergleichsmatrizen neben ZXing, Dynamsoft, Scandit und IronBarcode aufgeführt. Entwickler, die Barcode-Lösungen für .NET-Projekte evaluieren, stoßen schon früh in ihrer Recherche darauf – sie lesen über MatrixSight, den DeBlur-Modus, die Erkennung mehrerer Barcodes und die DPM-Unterstützung und finden das wirklich überzeugend. Auf NuGet bietet Barkoder zwei offizielle .NET-Pakete an: Plugin.Maui.Barkoder und Barkoder.Xamarin. Beide sind Kamerascanning-Komponenten für mobile MAUI- und Xamarin-Apps. Was Barkoder nicht liefert, ist eine allgemeine .NET-Bibliothek: Keine ASP.NET Core-, Konsolen-, Desktop-, Server- oder PDF-Oberfläche. Dieser Vergleich erklärt, was Barkoder ist, was es in seiner nativen Domäne stark macht und wie IronBarcode die breiteren Anforderungen abdeckt, die .NET-Entwickler typischerweise haben.
Barkoder SDK verstehen
Barkoder ist ein kommerzielles Barcode-Scanning-SDK, das auf einem C/C++-Prozessorkern basiert und mit nativen SDKs für iOS und Android ausgestattet ist. Es richtet sich an mobile Entwickler, die Echtzeit-Kamerascans benötigen – die Art von Scans, die ein Lagerarbeiter mit einem Smartphone oder ein Außendiensttechniker mit einem Tablet durchführt. Das Vertriebsmodell spiegelt dieses Ziel vollständig wider.
Das SDK wird für iOS über CocoaPods mit Swift- und Objective-C-APIs, für Android über Maven mit Kotlin- und Java-APIs und für hybride mobile Geräte über offizielle Plugins für React Native, Flutter, Cordova und Capacitor bereitgestellt. Auf .NET veröffentlicht Barkoder zwei offizielle NuGet-Pakete — Plugin.Maui.Barkoder und Barkoder.Xamarin — die die nativen iOS- und Android-SDKs einbinden und ein BarkoderView Kamera-Scan-Kontroll für MAUI und Xamarin mobile Apps bereitstellen.
Außerhalb von MAUI und Xamarin gibt es keine Barkoder-Option auf .NET. Es gibt kein universelles Barkoder.NET-Paket, kein ASP.NET Core, keine Azure Functions, kein AWS Lambda, keine Docker- oder Linux-Server-Zielplattformen, kein Konsolen-, Worker-Service-, WPF-, WinForms-, Avalonia- oder Blazor-Ziel, keinen Datei- oder Stream-Eingabemodus, kein PDF-Lesen und keine Barcode-Generierung. Für .NET-Arbeiten, die außerhalb eines MAUI- oder Xamarin-Mobil-App-Kopfes liegen, ist Barkoder nicht im Rahmen.
Wichtigste architektonische Merkmale des Barkoder SDK:
- Mobile-First-Architektur: Entwickelt für iOS- und Android-Kamerapipelines; Die gesamte Verarbeitung erfolgt lokal auf dem Gerät durch einen C/C++-Kern.
- .NET-Oberfläche beschränkt auf MAUI/Xamarin: Offizielle
Plugin.Maui.BarkoderundBarkoder.XamarinPakete bieten die Kamera-Scan-Kontrolle an; es gibt keine allgemeine .NET-Bibliothek - Keine Barcode-Generierung: Barkoder ist ein SDK mit Lesezugriff; es kann keine BarCodes erzeugen oder kodieren
- Kein PDF- oder Dateieingang: Das SDK hat kein Konzept, Barcodes aus PDF-Dokumenten, Bildern von Dateisystemen oder serverseitigen Dokumenten-Workflows zu lesen
- Keine Server-Bereitstellung: Das SDK läuft nicht in ASP.NET Core, Azure Functions, Docker-Containern oder in einer serverseitigen .NET-Ausführungsumgebung
- Nur Kamera-Frame-Eingabe: Die Eingabe ist immer ein Live-Kamera-Frame; es gibt keine Dateipfad-, Stream- oder Byte-Array-Überladung
Wie die Barkoder-Architektur aussieht
Die Bildverarbeitung erfolgt über den C/C++-Kern des SDKs. Die iOS- und Android-Wrapper stellen diesen Kern über plattformnative APIs bereit. Auf .NET binden die MAUI- und Xamarin-Plug-ins dieselben nativen SDKs ein und bieten eine BarkoderView Kontrolle an:
// dotnet add package Plugin.Maui.Barkoder
// XAML hosts a BarkoderView; this is the code-behind callback.
using Barkoder.Maui;
public partial class ScanPage : ContentPage, IBarkoderDelegate
{
public ScanPage()
{
InitializeComponent();
BarkoderView.SetFlashEnabled(false);
BarkoderView.SetZoomFactor(1.5f);
BarkoderView.StartScanning(this);
}
public void DidFinishScanning(BarcodeResult[] result)
{
foreach (var r in result)
{
Console.WriteLine($"Type: {r.BarcodeTypeName}");
Console.WriteLine($"Value: {r.TextualData}");
}
}
}
// dotnet add package Plugin.Maui.Barkoder
// XAML hosts a BarkoderView; this is the code-behind callback.
using Barkoder.Maui;
public partial class ScanPage : ContentPage, IBarkoderDelegate
{
public ScanPage()
{
InitializeComponent();
BarkoderView.SetFlashEnabled(false);
BarkoderView.SetZoomFactor(1.5f);
BarkoderView.StartScanning(this);
}
public void DidFinishScanning(BarcodeResult[] result)
{
foreach (var r in result)
{
Console.WriteLine($"Type: {r.BarcodeTypeName}");
Console.WriteLine($"Value: {r.TextualData}");
}
}
}
Imports Barkoder.Maui
Public Partial Class ScanPage
Inherits ContentPage
Implements IBarkoderDelegate
Public Sub New()
InitializeComponent()
BarkoderView.SetFlashEnabled(False)
BarkoderView.SetZoomFactor(1.5F)
BarkoderView.StartScanning(Me)
End Sub
Public Sub DidFinishScanning(result As BarcodeResult()) Implements IBarkoderDelegate.DidFinishScanning
For Each r In result
Console.WriteLine($"Type: {r.BarcodeTypeName}")
Console.WriteLine($"Value: {r.TextualData}")
Next
End Sub
End Class
Dies funktioniert innerhalb einer MAUI-Mobil-App gegen eine Live-Kamera. Es gibt keine Dateiüberladung, keine Stream-Überladung, keine PDF-Überladung und keine gleichwertige Oberfläche für ASP.NET Core-, Konsolen- oder Desktop-Projekte. Die nativen iOS- und Android-Codepfade verwenden dasselbe Komponentenmodell in Swift, Objective-C, Kotlin oder Java.
Die Features, die Barkoder einen Platz in den Zusammenfassungen einbringen, sind echte Fähigkeiten. MatrixSight und der DeBlur-Modus bieten eine proprietäre Technologie zur Schadensbehebung, die auch physisch beschädigte, schlecht gedruckte oder unter schlechten Lichtverhältnissen erfasste Barcodes lesen kann. Die Multi-Barcode-Erkennung dekodiert mehrere Barcodes gleichzeitig in einem einzigen Kamerabild und ermöglicht es Lagerarbeitern, ganze Regale auf einmal zu scannen. DPM (Direct Part Marking) Scanning unterstützt DataMatrix und andere Formate in lasergeätzten und punktgehämmerten Konfigurationen, die die meisten Allzweckbibliotheken nicht gut verarbeiten können. Die Unterstützung für hochauflösende Formate umfasst PDF417, aztekisch und andere 2D-Formate mit hoher Genauigkeit auf mobilen Kameras.
IronBarcode verstehen
IronBarcode ist eine native .NET Bibliothek, die den gesamten Barcode-Workflow – vom Lesen bis zum Generieren – in jeder .NET Umgebung abdeckt. Es ist das funktionale Äquivalent der Fähigkeiten von Barkoder für die .NET Plattform, mit zusätzlichen Funktionen, die nur im Server- und Desktop-Kontext sinnvoll sind.
IronBarcode wird über NuGet installiert und läuft ausschließlich lokal. Während der Barcode-Operationen werden keine Netzwerkaufrufe getätigt. Es funktioniert in abgeschotteten Umgebungen, auf Azure Functions, in Docker-Containern, in AWS Lambdaund auf allen .NET Laufzeitumgebungen von .NET Framework 4.6.2 bis .NET 9. Das statische API-Modell bedeutet, dass keine Scannerinstanz verwaltet, kein Lebenszyklus verfolgt und keine Thread-Sicherheitsbedenken durch gleichzeitige Aufrufe bestehen.
Hauptmerkmale von IronBarcode:
- Vollständige .NET -Abdeckung: Unterstützt .NET Framework 4.6.2+, .NET 6, 7, 8 und 9; Funktioniert unter Windows, Linux, macOS, Docker, Azure und AWS.
- Lesen und Generieren: Umfasst sowohl das Lesen von Barcodes aus Dateien, Datenströmen und PDFs als auch die Barcode-Generierung in über 50 Formaten.
- Statisches API-Design:
BarcodeReader.Read()undBarcodeWriter.CreateBarcode()sind statische Aufrufe ohne zustandsbehaftete Instanzverwaltung - ML-gestützte Fehlerkorrektur: Eine auf maschinellem Lernen basierende Bildvorverarbeitungspipeline verarbeitet beschädigte, degradierte und qualitativ minderwertige Barcodes.
- Native PDF-Unterstützung: Liest Barcodes direkt aus PDF-Dokumenten ohne zwischenzeitliche Bildextraktion.
- Vollständige Integration in das .NET -Ökosystem: Kompatibel mit ASP.NET Core Dependency Injection, async/await, Middleware und Hosting-Mustern
Funktionsvergleich
Die folgende Tabelle verdeutlicht die grundlegenden Unterschiede zwischen Barkoder SDK und IronBarcode:
| Feature | Barkoder SDK | IronBarcode |
|---|---|---|
| .NET /C#-Unterstützung | Nur MAUI / Xamarin Kamera UI | Vollständig — alle .NET -Laufzeitumgebungen |
| NuGet-Paket | Plugin.Maui.Barkoder, Barkoder.Xamarin |
IronBarcode |
| Barcode-Lesung | Ja – Handykamera | Ja – Dateien, Streams, PDFs |
| Barcode-Generierung | None | Vollständig — über 50 Formate |
| PDF-Verarbeitung | None | Native |
| Serverseitige Bereitstellung | None | Vollständig – ASP.NET Core, Azure, Lambda, Docker |
| Preisgestaltung | Lizenzierung des Mobile SDK | Unbefristete Lizenz verfügbar |
Detaillierter Funktionsvergleich
| Feature | Barkoder SDK | IronBarcode |
|---|---|---|
| Lektüre | ||
| Wiederherstellung beschädigter Barcodes | MatrixSight / Entschärfung | ML-Fehlerkorrektur, ReadingSpeed.ExtremeDetail |
| Mehrfach-Barcode-Erkennung | Ja – Kamerarahmen | ExpectMultipleBarcodes = true |
| DataMatrix-/DPM-Unterstützung | Ja | Ja — BarcodeEncoding.DataMatrix |
| QR-Code-Lesen | Ja | Ja |
| PDF417 | Ja | Ja |
| aztekisch | Ja | Ja |
| Code128, Code39, EAN | Ja | Ja – mehr als 50 Formate |
| Automatische Formaterkennung | Ja | Ja |
| Generation | ||
| Barcode-Generierung | None | Vollständig – alle Formate |
| QR-Code-Generierung | None | QRCodeWriter.CreateQrCode() |
| Logo/Branding auf QR-Code | None | AddBrandLogo() |
| Plattform | ||
| .NET / C# | Nur MAUI / Xamarin Kamera UI | Voll |
| iOS (nativ) | Ja (primär) | Über .NET MAUI |
| Android (nativ) | Ja (primär) | Über .NET MAUI |
| Windows / Linux / macOS | None | Voll |
| Docker / Container | None | Voll |
| Azure Functions | None | Voll |
| AWS Lambda | None | Voll |
| Air-Gap / Offline | Ja (auf dem Gerät) | Ja (vollständig lokal) |
| API-Entwurf | ||
| Unterstützung für Async/await | Nicht anwendbar | Voll |
| Abhängigkeitsinjektion | None | Vollständige .NET DI-Integration |
| PDF-Dokument-Eingabe | None | BarcodeReader.Read("doc.pdf") |
| Lizenzierung | ||
| Lizenzmodell | Lizenzierung des Mobile SDK | Dauerhafter, einmaliger Kauf |
| Preis (Eintritt) | Kontakt zum Vertrieb | See ironsoftware.com/csharp/barcode/licensing |
.NET -Bereitstellungsmodell
Der grundlegendste Unterschied zwischen Barkoder SDK und IronBarcode ist der Umfang. Barkoder's .NET-Oberfläche ist auf MAUI und Xamarin Kamera UI beschränkt; IronBarcode deckt den Rest des .NET-Ökosystems ab.
Barkoder SDK-Ansatz
Die veröffentlichte Plattformliste von Barkoder umfasst iOS Native(Swift / Objective-C), Android Native(Kotlin / Java), React Native, Flutter, Cordova, Capacitor, .NET MAUI, Xamarin und Web (WASM). Auf .NET speziell entspricht das Plugin.Maui.Barkoder und Barkoder.Xamarin. ASP.NET Core, Azure Functions, AWS Lambda, Docker, Linux servers, WPF, WinForms, Avalonia, and Blazor are absent. Die Architektur des SDKs basiert auf einer Live-Kamera-Pipeline auf einem Mobilgerät. Es gibt keinen dateibasierten Eingabemodus, keine Stream-API, keinen Batch-Verarbeitungspfad und kein serverseitiges Ausführungsmodell.
Für .NET-Arbeiten außerhalb einer MAUI- oder Xamarin-Mobil-App – eine Backend-API, einen Worker-Service, ein Desktop-Tool, eine PDF-Dokumentenpipeline – bietet Barkoder keinen Weg. Es gibt keine asynchrone API-Oberfläche für die Servernutzung, keine Abhängigkeitsinjektionsintegration, keine Unterstützung für Azure oder AWS Lambdaund keine PDF-Verarbeitungsfunktion.
IronBarcode Ansatz
IronBarcode wird über NuGet mit einem einzigen Befehl installiert und beim Start mit einem Lizenzschlüssel initialisiert:
// NuGet: dotnet add package IronBarcode
using IronBarCode;
IronBarCode.License.LicenseKey = "YOUR-LICENSE-KEY";
// Read a barcode from an image
var results = BarcodeReader.Read("scan.png");
foreach (var result in results)
{
Console.WriteLine($"Format: {result.Format}");
Console.WriteLine($"Value: {result.Value}");
}
// NuGet: dotnet add package IronBarcode
using IronBarCode;
IronBarCode.License.LicenseKey = "YOUR-LICENSE-KEY";
// Read a barcode from an image
var results = BarcodeReader.Read("scan.png");
foreach (var result in results)
{
Console.WriteLine($"Format: {result.Format}");
Console.WriteLine($"Value: {result.Value}");
}
Imports IronBarCode
IronBarCode.License.LicenseKey = "YOUR-LICENSE-KEY"
' Read a barcode from an image
Dim results = BarcodeReader.Read("scan.png")
For Each result In results
Console.WriteLine($"Format: {result.Format}")
Console.WriteLine($"Value: {result.Value}")
Next
Die Bibliothek läuft vollständig lokal – keine Netzwerkaufrufe, keine Datenübertragung, keine externen Abhängigkeiten. Es integriert sich mit der Abhängigkeitsinjektion von ASP.NET Core , unterstützt async/await und lässt sich ohne Änderungen auf Docker, Azure Functionsund AWS Lambdabereitstellen. Für eine produktionsreife ASP.NET Core Integration siehe die IronBarcode Dokumentation .
Wiederherstellung beschädigter Barcodes
Die Wiederherstellung beschädigter Barcodes ist die Funktion, die Entwickler am häufigsten dazu veranlasst, sich überhaupt erst mit Barkoder auseinanderzusetzen. Barkoders MatrixSight- und DeBlur-Modus werden für Logistik- und Fertigungsszenarien empfohlen, bei denen physische Etiketten abgenutzt, nass oder teilweise verdeckt werden.
Barkoder SDK-Ansatz
Der DeBlur-Modus von Barkoder wendet vor dem Dekodierungsversuch eine Bildvorverarbeitung an – Kontrastverbesserung, Schärfung, Rotationskorrektur. Dies funktioniert ausschließlich innerhalb der Verarbeitungskette mobiler Kameras. Der Modus wird auf SDK-Ebene konfiguriert, bevor der Scanvorgang beginnt, und das Kamerabild wird kontinuierlich verarbeitet. Es gibt keinen entsprechenden dateibasierten Pfad.
// dotnet add package Plugin.Maui.Barkoder
// Configured against the BarkoderView in a MAUI ContentPage
BarkoderView.DeblurEnabled = true;
BarkoderView.SetEnabledBarcodeTypes(new[] { BarcodeType.Code128 });
BarkoderView.StartScanning(this);
// dotnet add package Plugin.Maui.Barkoder
// Configured against the BarkoderView in a MAUI ContentPage
BarkoderView.DeblurEnabled = true;
BarkoderView.SetEnabledBarcodeTypes(new[] { BarcodeType.Code128 });
BarkoderView.StartScanning(this);
IronBarcode Ansatz
IronBarcode löst das gleiche Problem durch ReadingSpeed.ExtremeDetail, welches eine Mehrfachdurchlauf-Bildanalyse-Pipeline aktiviert — einschließlich ML-basierter Schadensbehebung, Kontrastverstärkung, Schärfung und Rotationskorrektur — bevor der Versuch der Dekodierung unternommen wird. Dies funktioniert mit beliebigen Datei-, Datenstrom- oder Byte-Array-Eingaben:
using IronBarCode;
IronBarCode.License.LicenseKey = "YOUR-LICENSE-KEY";
var options = new BarcodeReaderOptions
{
Speed = ReadingSpeed.ExtremeDetail,
ExpectMultipleBarcodes = false,
};
var results = BarcodeReader.Read("worn-shipping-label.png", options);
if (results.Any())
{
Console.WriteLine($"Recovered: {results.First().Value}");
}
else
{
Console.WriteLine("Could not decode — image quality too low");
}
using IronBarCode;
IronBarCode.License.LicenseKey = "YOUR-LICENSE-KEY";
var options = new BarcodeReaderOptions
{
Speed = ReadingSpeed.ExtremeDetail,
ExpectMultipleBarcodes = false,
};
var results = BarcodeReader.Read("worn-shipping-label.png", options);
if (results.Any())
{
Console.WriteLine($"Recovered: {results.First().Value}");
}
else
{
Console.WriteLine("Could not decode — image quality too low");
}
Imports IronBarCode
IronBarCode.License.LicenseKey = "YOUR-LICENSE-KEY"
Dim options As New BarcodeReaderOptions With {
.Speed = ReadingSpeed.ExtremeDetail,
.ExpectMultipleBarcodes = False
}
Dim results = BarcodeReader.Read("worn-shipping-label.png", options)
If results.Any() Then
Console.WriteLine($"Recovered: {results.First().Value}")
Else
Console.WriteLine("Could not decode — image quality too low")
End If
ReadingSpeed.Balanced bearbeitet die meisten sauberen oder leicht beschädigten Barcodes und ist schneller. Reservieren Sie ExtremeDetail für Fälle, in denen Balanced fehlschlägt — es ist gründlich aber erheblich langsamer. Weitere Hinweise zum Lesen schwieriger Barcodes finden Sie in der IronBarcode Lesedokumentation .
Erkennung mehrerer Barcodes
Die Erkennung mehrerer Barcodes erfolgt plattformübergreifend: Barkoder verarbeitet mehrere Codes in einem Kamerabild; IronBarcode verarbeitet mehrere Codes in einem Dokument oder einer Bilddatei.
Barkoder SDK-Ansatz
Der Multi-Barcode-Modus von Barkoder erkennt und dekodiert mehrere Barcodes gleichzeitig aus einem einzigen Kamerabild. In einem Lagerkontext hält ein Arbeiter ein Telefon über ein Regal und empfängt alle Barcode-Werte auf einmal. Dies wird auf SDK-Ebene konfiguriert, bevor der Scanvorgang beginnt:
// Plugin.Maui.Barkoder — multi-scan mode in a MAUI ContentPage
BarkoderView.MulticodeCachingEnabled = true;
BarkoderView.StartScanning(this);
// IBarkoderDelegate callback delivers all decoded codes per frame
public void DidFinishScanning(BarcodeResult[] results)
{
foreach (var r in results)
Console.WriteLine($"{r.BarcodeTypeName}: {r.TextualData}");
}
// Plugin.Maui.Barkoder — multi-scan mode in a MAUI ContentPage
BarkoderView.MulticodeCachingEnabled = true;
BarkoderView.StartScanning(this);
// IBarkoderDelegate callback delivers all decoded codes per frame
public void DidFinishScanning(BarcodeResult[] results)
{
foreach (var r in results)
Console.WriteLine($"{r.BarcodeTypeName}: {r.TextualData}");
}
' Plugin.Maui.Barkoder — multi-scan mode in a MAUI ContentPage
BarkoderView.MulticodeCachingEnabled = True
BarkoderView.StartScanning(Me)
' IBarkoderDelegate callback delivers all decoded codes per frame
Public Sub DidFinishScanning(results As BarcodeResult())
For Each r In results
Console.WriteLine($"{r.BarcodeTypeName}: {r.TextualData}")
Next
End Sub
IronBarcode Ansatz
In serverseitigen .NET -Anwendungen betrifft das Szenario mit mehreren Barcodes typischerweise ein Dokument – eine Rechnung mit einem Sendungsverfolgungs-Barcode und einem Produkt-Barcode oder ein Versandmanifest mit mehreren Artikeln pro Seite. IronBarcode bearbeitet dies mit ExpectMultipleBarcodes = true, und die gleiche Option funktioniert identisch mit Bildern und PDFs:
using IronBarCode;
IronBarCode.License.LicenseKey = "YOUR-LICENSE-KEY";
var options = new BarcodeReaderOptions
{
Speed = ReadingSpeed.Balanced,
ExpectMultipleBarcodes = true,
};
// Works on images and PDFs — single method call
var results = BarcodeReader.Read("shipping-manifest.pdf", options);
foreach (var barcode in results)
{
Console.WriteLine($"Page {barcode.PageNumber} | {barcode.Format} | {barcode.Value}");
}
using IronBarCode;
IronBarCode.License.LicenseKey = "YOUR-LICENSE-KEY";
var options = new BarcodeReaderOptions
{
Speed = ReadingSpeed.Balanced,
ExpectMultipleBarcodes = true,
};
// Works on images and PDFs — single method call
var results = BarcodeReader.Read("shipping-manifest.pdf", options);
foreach (var barcode in results)
{
Console.WriteLine($"Page {barcode.PageNumber} | {barcode.Format} | {barcode.Value}");
}
Imports IronBarCode
IronBarCode.License.LicenseKey = "YOUR-LICENSE-KEY"
Dim options As New BarcodeReaderOptions With {
.Speed = ReadingSpeed.Balanced,
.ExpectMultipleBarcodes = True
}
' Works on images and PDFs — single method call
Dim results = BarcodeReader.Read("shipping-manifest.pdf", options)
For Each barcode In results
Console.WriteLine($"Page {barcode.PageNumber} | {barcode.Format} | {barcode.Value}")
Next
Keine Seitenextraktion, keine Mehrfachanfragen, kein Netzwerk-Overhead pro Barcode. Die PDF-Datei wird nativ in einem einzigen Aufruf gelesen. Weitere Informationen zum Lesen mehrerer Barcodes und PDFs finden Sie in der IronBarcode Dokumentation .
Unterstützung für DataMatrix- und High-Density-Formate
DataMatrix ist von zentraler Bedeutung für industrielle und DPM-Anwendungsfälle – die Formate, die Barkoder für die Branchen Fertigung, Gesundheitswesen und Automobil hervorhebt.
Barkoder SDK-Ansatz
Barkoder unterstützt das Lesen von DataMatrix mit DPM-Konfigurationen für lasergeätzte und punktgehämmerte Markierungen. Das SDK unterstützt außerdem PDF417, aztekisch und andere hochauflösende 2D-Formate mit hoher Genauigkeit auf mobilen Kameras. Das alles läuft innerhalb der Kamera-Pipeline auf iOS oder Android ab:
// Plugin.Maui.Barkoder — DataMatrix scanning in a MAUI ContentPage
BarkoderView.SetEnabledBarcodeTypes(new[] { BarcodeType.DataMatrix });
BarkoderView.StartScanning(this);
// Plugin.Maui.Barkoder — DataMatrix scanning in a MAUI ContentPage
BarkoderView.SetEnabledBarcodeTypes(new[] { BarcodeType.DataMatrix });
BarkoderView.StartScanning(this);
' Plugin.Maui.Barkoder — DataMatrix scanning in a MAUI ContentPage
BarkoderView.SetEnabledBarcodeTypes(New BarcodeType() { BarcodeType.DataMatrix })
BarkoderView.StartScanning(Me)
Barkoder generiert weder DataMatrix noch ein anderes Barcode-Format. Es handelt sich um ein SDK mit Lesezugriff.
IronBarcode Ansatz
IronBarcode liest und generiert DataMatrix nativ. Auf der Leseseite bearbeitet ReadingSpeed.ExtremeDetail die typischen niedrigen Kontraste und rauen Kanten von lasergravierten DPM-Markierungen. Auf der Erzeugungsseite produziert BarcodeWriter.CreateBarcode() DataMatrix für die Erstellung von Teileetiketten:
using IronBarCode;
IronBarCode.License.LicenseKey = "YOUR-LICENSE-KEY";
// Generate a DataMatrix barcode for a part label
BarcodeWriter.CreateBarcode("PART-ID-20240315-A42", BarcodeEncoding.DataMatrix)
.SaveAsPng("part-label.png");
// Generate a QR code with brand logo
QRCodeWriter.CreateQrCode("https://parts.example.com/A42", 500)
.AddBrandLogo("company-logo.png")
.SaveAsPng("branded-qr.png");
// Read auto-detects format — DataMatrix, QR, Code128, PDF417, etc.
var results = BarcodeReader.Read("etched-part.png");
using IronBarCode;
IronBarCode.License.LicenseKey = "YOUR-LICENSE-KEY";
// Generate a DataMatrix barcode for a part label
BarcodeWriter.CreateBarcode("PART-ID-20240315-A42", BarcodeEncoding.DataMatrix)
.SaveAsPng("part-label.png");
// Generate a QR code with brand logo
QRCodeWriter.CreateQrCode("https://parts.example.com/A42", 500)
.AddBrandLogo("company-logo.png")
.SaveAsPng("branded-qr.png");
// Read auto-detects format — DataMatrix, QR, Code128, PDF417, etc.
var results = BarcodeReader.Read("etched-part.png");
Imports IronBarCode
IronBarCode.License.LicenseKey = "YOUR-LICENSE-KEY"
' Generate a DataMatrix barcode for a part label
BarcodeWriter.CreateBarcode("PART-ID-20240315-A42", BarcodeEncoding.DataMatrix) _
.SaveAsPng("part-label.png")
' Generate a QR code with brand logo
QRCodeWriter.CreateQrCode("https://parts.example.com/A42", 500) _
.AddBrandLogo("company-logo.png") _
.SaveAsPng("branded-qr.png")
' Read auto-detects format — DataMatrix, QR, Code128, PDF417, etc.
Dim results = BarcodeReader.Read("etched-part.png")
Eine vollständige Liste der unterstützten Formate und Generierungsoptionen finden Sie im IronBarcode Barcode-Generierungsleitfaden .
API-Mapping-Referenz
Diese Tabelle bildet die konzeptionellen Entsprechungen zwischen Barkoder's MAUI-Kamera-Scanning-API und wie IronBarcode dasselbe Ergebnis für Datei-, Stream- oder PDF-Eingaben in jedem .NET-Projekt erreicht:
| Barkoder-Konzept | IronBarcode Äquivalent |
|---|---|
| SDK-Initialisierung mit Lizenzschlüssel | IronBarCode.License.LicenseKey = "YOUR-LICENSE-KEY" |
BarkoderView.DeblurEnabled = true |
Speed = ReadingSpeed.ExtremeDetail |
BarkoderView.MulticodeCachingEnabled = true |
ExpectMultipleBarcodes = true |
SetEnabledBarcodeTypes(BarcodeType.DataMatrix) |
BarcodeEncoding.DataMatrix (automatisch bei Lesung erkannt) |
BarkoderView.StartScanning(this) |
BarcodeReader.Read("image.png") — synchrones Ergebnis |
BarcodeResult.TextualData |
result.Value |
BarcodeResult.BarcodeTypeName |
result.Format |
| MatrixSight-Schadenswiederherstellung | ReadingSpeed.ExtremeDetail mit ML-Vorverarbeitung |
| Kamerabildanalyse | Datei-/Stream-/Byte-Array-Eingabe |
| Verarbeitung auf dem Gerät | Vollständig lokal – keine Netzwerkanrufe |
| Keine Unterstützung für Generationen | BarcodeWriter.CreateBarcode() / QRCodeWriter.CreateQrCode() |
| Keine PDF-Unterstützung | BarcodeReader.Read("document.pdf") — nativ |
| Keine Serverbereitstellung | Funktioniert in ASP.NET Core, Docker, Azure Functionsund Lambda. |
Wenn Teams einen Wechsel vom Barkoder SDK zu IronBarcode erwägen
.NET-Projektanforderungen außerhalb von MAUI
Das häufigste Szenario ist einfach: Ein Entwickler oder ein Team erstellt eine .NET Anwendung – ASP.NET Core, einen Windows-Dienst, ein Konsolentool, eine Desktop-App – und stößt dabei auf Barkoder. Sie lesen über MatrixSight, DeBlur und Mehrfach-Barcode-Erkennung, finden die Funktionen überzeugend und entdecken dann, dass die .NET-Oberfläche Plugin.Maui.Barkoder und Barkoder.Xamarin ist — beide nur für mobile Kamera-UI. Teams in dieser Situation migrieren nicht von Barkoder weg; Sie wählen von Anfang an das richtige Werkzeug für ihre Plattform aus. IronBarcode ist die .NET Antwort auf die Anforderungen, die Barkoder auf mobilen Geräten erfüllt.
Serverseitige Barcode-Verarbeitungs-Workflows
Manche Teams entwickeln zunächst einen Prototyp für einen Barcode-Verarbeitungs-Workflow mithilfe einer mobilen Scan-App – beispielsweise Barkoder oder einem anderen mobilen SDK – und müssen diesen Workflow später serverseitig replizieren oder erweitern. Gängige Beispiele hierfür sind die Verarbeitung hochgeladener Barcode-Bilder über einen API-Endpunkt, das Auslesen von Barcodes aus PDF-Dokumenten in einem Dokumentenmanagementsystem oder die Stapelverarbeitung gescannter Etikettenarchive. Keiner dieser Arbeitsabläufe ist mit Barkoder möglich, da es kein serverseitiges Bereitstellungsmodell gibt. IronBarcode verarbeitet sie alle mit der gleichen statischen API über ASP.NET Core, Azure Functions, Docker und AWS Lambdahinweg.
Anforderungen an die Barcode-Generierung
Teams, die .NET Anwendungen für Logistik, Inventarisierung oder Compliance entwickeln, stellen häufig fest, dass das Lesen von Barcodes nur die halbe Miete ist. Die Generierung von Barcodes – das Drucken von Etiketten, das Einbetten von QR-Codes in Dokumente, das Erstellen von Versandmanifesten – ist ebenso wichtig. Barkoder ist von Haus aus schreibgeschützt; Es besitzt keine Stromerzeugungskapazität. Wenn der Umfang eines Projekts über das reine Lesen hinausgeht, macht eine Bibliothek, die beide Seiten des Arbeitsablaufs abdeckt, die Integration einer zweiten Abhängigkeit überflüssig. IronBarcode bietet sowohl das Lesen als auch das Generieren von Barcodes in über 50 Formaten über eine einheitliche API.
PDF-Dokumentverarbeitung
In .NET Enterprise werden Barcodes häufig in PDF-Dokumente eingebettet – Rechnungen, Versandmanifeste, Krankenakten, Compliance-Dokumente. Barkoder hat keine Ahnung von diesem Arbeitsablauf; Es ist für die Kameraeingabe auf Mobilgeräten konzipiert. Teams, die Barcodes aus eingehenden PDF-Dokumenten lesen, Barcode-Daten für Geschäftslogik extrahieren oder das Vorhandensein von Barcodes in Dokumentenarchiven überprüfen müssen, benötigen eine Bibliothek mit nativer PDF-Unterstützung. IronBarcode liest Barcodes direkt aus PDFs, ohne dass eine Zwischenbildextraktion erforderlich ist.
Vorhersagbarkeit von Preisen und Bereitstellung
Die Barkoder-Mobile-SDK-Preise sind um das mobile Anwendungs- und Vertriebsmodell strukturiert – Abonnement, pro App und pro Gerät abgestufte Tarife, die an den mobilen Einsatz gebunden sind. Für Teams, deren .NET-Arbeiten außerhalb von MAUI oder Xamarin liegen, gilt dieses Preismodell nicht, da das SDK dort nicht läuft. Wenn IronBarcode das geeignete Werkzeug ist, ist das Preismodell einfach: eine unbefristete Lizenz ohne pro Anfrage-Gebühren und ohne Volumenbeschränkungen für die Anzahl der verarbeiteten Barcodes.
Gemeinsame Überlegungen zur Migration
Von der Eingabe per Mobilkamera zur dateibasierten Eingabe
Teams, die einen auf Barkoder basierenden mobilen Scan-Prototyp implementiert haben und die Funktionalität in .NET replizieren müssen, werden feststellen, dass sich das Eingabemodell von Kamerabildern zu Datei, Stream oder Byte-Array ändert. IronBarcode akzeptiert die gleichen Daten in mehreren Formen — ein Dateipfad-String, ein Stream, ein byte[] oder ein System.Drawing.Image. Die Logik der Barcode-Verarbeitung ist ansonsten identisch:
// All of these call the same underlying pipeline
var results1 = BarcodeReader.Read("scan.png");
var results2 = BarcodeReader.Read(imageStream);
var results3 = BarcodeReader.Read(imageBytes);
// All of these call the same underlying pipeline
var results1 = BarcodeReader.Read("scan.png");
var results2 = BarcodeReader.Read(imageStream);
var results3 = BarcodeReader.Read(imageBytes);
' All of these call the same underlying pipeline
Dim results1 = BarcodeReader.Read("scan.png")
Dim results2 = BarcodeReader.Read(imageStream)
Dim results3 = BarcodeReader.Read(imageBytes)
Geschwindigkeit vs. Genauigkeit – ein Kompromiss
Der DeBlur-Modus von Barkoder ist immer aktiv, wenn konfiguriert, und läuft innerhalb der mobilen Kamera-Schleife. IronBarcode beschreibt den Genauigkeits-gegen-Geschwindigkeit-Kompromiss explizit über ReadingSpeed. Für die meisten Dateien ist ReadingSpeed.Balanced angebracht. Für beschädigte oder verschlechterte Eingaben, die Balanced nicht dekodieren kann, wendet ReadingSpeed.ExtremeDetail die vollständige Mehrfachdurchlauf-ML-Pipeline an. Die Strukturierung der Batch-Verarbeitung, um standardmäßig Balanced zu verwenden und nur bei Ausfällen auf ExtremeDetail zurückzufallen, wird als empfohlener Ansatz für leistungsintensive Arbeitsabläufe angesehen.
Asynchrone Integration in ASP.NET Core
Die BarcodeReader.Read()-Methode von IronBarcode ist synchron. In ASP.NET Core-Endpunkten, die gleichzeitige Anfragen bearbeiten, umwickeln Sie den Aufruf mit Task.Run(), um den Anfrage-Thread nicht zu blockieren:
var results = await Task.Run(() => BarcodeReader.Read(imageBytes, options));
var results = await Task.Run(() => BarcodeReader.Read(imageBytes, options));
Dim results = Await Task.Run(Function() BarcodeReader.Read(imageBytes, options))
Formatspezifikation für die Leistung
IronBarcode erkennt Barcode-Formate standardmäßig automatisch. Bei Szenarien mit hohem Durchsatz, in denen das erwartete Format bekannt ist, verkürzt die Angabe des Formats die Verarbeitungszeit, da Formatprüfungen, die nicht übereinstimmen, entfallen. Verwenden Sie BarcodeReaderOptions.ExpectBarcodeTypes, um die Suche einzugrenzen, wenn das Format im Voraus bekannt ist.
Zusätzliche IronBarcode Funktionen
Über die direkten Entsprechungen der mobilen Funktionen von Barkoder hinaus bietet IronBarcode Funktionen, die speziell für .NET-Server- und Desktop-Kontexte relevant sind:
- Einbettung von QR-Code-Logos:
QRCodeWriter.CreateQrCode().AddBrandLogo()fügt ein Markenzeichenbild in die Mitte eines generierten QR-Codes hinzu — ein übliches Erfordernis für Marketing- und Verpackungsarbeitsabläufe - PDF-Barcode-Lesung : NativePDF-Eingabe bedeutet keine Zwischenbildextraktion; Mehrseitige PDFs werden in einem einzigen Anruf gescannt.
- Barcode-Aufdruck auf PDFs : IronBarcode kann Barcodes generieren und diese auf bestehende PDF-Dokumente aufdrucken, wodurch automatisierte Etiketten- und Dokumenten-Workflows ermöglicht werden.
- Massenbildlesung:
BarcodeReader.ReadBulk()verarbeiten mehrere Bilder gleichzeitig für Operationen mit hohem Durchsatz im Batch-Betrieb - Stilvolle QR-Code-Generierung : Benutzerdefinierte Farben, Ränder und Fehlerkorrekturstufen für QR-Codes
- GS1- und HIBC-Formate : Unterstützung für Barcode-Standards im Gesundheitswesen und in der Lieferkette, die über die Standardformate 1D und 2D hinausgehen.
.NET-Kompatibilität und Zukunftsfähigkeit
IronBarcode unterstützt .NET Framework 4.6.2 und alle modernen .NET-Versionen bis .NET 9 und verfolgt aktiv den .NET 10-Veröffentlichungszyklus. Die Bibliothek läuft auf Windows, Linux und macOS und wird gegen Docker-, Azure Functions- und AWS Lambda-Bereitstellungsziele getestet. Da sich das .NET Ökosystem weiterhin in Richtung plattformübergreifender und Cloud-nativer Muster entwickelt, entspricht das vollständig lokale Ausführungsmodell von IronBarcode – ohne Cloud-Abhängigkeit, ohne API-Schlüsselverwaltung und ohne Netzwerklatenz – der Richtung moderner .NET Anwendungsarchitektur.
Abschluss
Barkoder SDK und IronBarcode arbeiten in weitgehend unterschiedlichen Domänen. Barkoder ist ein mobiles Kamera-Scanner-SDK, das für iOS und Android entwickelt wurde, mit einem C/C++-Verarbeitungskern, hybrider mobiler Verteilung und Plugin.Maui.Barkoder und Barkoder.Xamarin auf NuGet für MAUI- und Xamarin-Kamera-UI. IronBarcode ist eine native .NET-Bibliothek, die für Server-, Desktop-, MAUI-Programmverarbeitung und Cloud-Bereitstellungen gebaut wurde, über NuGet verteilt und in das .NET-Ökosystem durch Standardmuster integriert. Die beiden Bibliotheken überlappen sich nur geringfügig – nur MAUI und Xamarin, und nur für die Kamera-UI-Nutzung.
Barkoder ist die richtige Wahl beim Bau einer Kamera-Scanning-UI innerhalb einer MAUI-, Xamarin-, React-Native-, Flutter-, Cordova- oder Capacitor-Mobil-App. Seine MatrixSight- und DeBlur-Funktionen sind wirklich stark für Feldscann-Szenarien, in denen die Bildqualität nicht kontrolliert werden kann. Die Multi-Barcode-Erkennung und die DPM-Unterstützung eignen sich hervorragend für mobile Arbeitsabläufe in der Fertigung und Logistik. Wenn Ihre Team einen mobilen Front-End für Arbeiter baut, die physische Gegenstände mit einer Gerätekamera scannen, gehört Barkoder in die Bewertung.
IronBarcode ist die richtige Wahl für die Entwicklung von .NET Anwendungen – ASP.NET Core APIs, Windows-Dienste, Dokumentenverarbeitungspipelines, Desktop-Tools oder Cloud-Funktionen –, die das Lesen von Barcodes, die Generierung von Barcodes oder beides benötigen. Es deckt den gesamten Barcode-Workflow mit einem einzigen NuGet Paket ab, läuft vollständig lokal ohne Netzwerkabhängigkeiten und integriert sich in Standard .NET -Muster wie Dependency Injection, Async/Await und Cloud-Hosting. Für .NET-Entwickler, die durch Vergleichszusammenfassungen zu Barkoder geführt wurden, bietet IronBarcode die gleichen Kernfähigkeiten – damage-tolerant reading, Multi-Barcode-Erkennung, DataMatrix und Unterstützung für Formate mit hoher Dichte – implementiert für Datei-, Stream- und PDF-Eingänge über die .NET-Plattform.
Die praktische Schlussfolgerung ist einfach: Wählen Sie je nach Anwendungsfall. Eine MAUI-Kamera-UI passt nahtlos zu Barkoder; Datei, Stream, PDF, Generierung oder jede nicht-MAUI .NET-Oberfläche passt nahtlos zu IronBarcode. Viele Produktionssysteme nutzen beide – Barkoder auf dem mobilen Client und IronBarcode auf dem Server – und die beiden integrieren sich natürlich als Hybrid.
Häufig gestellte Fragen
Was ist Barkoder SDK?
Barkoder SDK ist eine .NET Barcode-Bibliothek zum Erzeugen und Lesen von Barcodes in C#-Anwendungen. Es 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 Barkoder SDK und IronBarcode?
IronBarcode verwendet eine statische, zustandslose API, die keine Instanzverwaltung erfordert, während das Barkoder SDK 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 Barkoder SDK?
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 Barkoder SDK 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 funktioniert die Stapelverarbeitung bei IronBarcode im Vergleich zu Barkoder SDK?
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 Barkoder 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 Barkoder SDK 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 der Umstieg von Barkoder SDK auf IronBarcode einfach?
Die Migration von Barkoder SDK zu IronBarcode umfasst in erster Linie das Ersetzen instanzbasierter API-Aufrufe durch statische Methoden von IronBarcode, das Entfernen von Lizenzierungsformulierungen und das Aktualisieren der Namen von Ergebniseigenschaften. 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.

