Zum Fußzeileninhalt springen
MIT ANDEREN KOMPONENTEN VERGLEICHEN

Barkoder SDK vs IronBarcode: C# Barcode Bibliothek Vergleich

Das Barkoder SDKtaucht 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. Dann suchen sie auf NuGet. Keine Ergebnisse. Das Barkoder SDKverfügt über kein .NET Paket, keine C#-API und keinen offiziellen Weg in ein .NET Projekt. Dieser Vergleich erklärt, was Barkoder eigentlich ist, was es in seinem natürlichen Anwendungsbereich so stark macht und wie IronBarcode die gleichen Anforderungen für .NET Entwickler erfüllt.

Barkoder SDKverstehen

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. Es ist kein NuGet Paket verfügbar. Es gibt keine C#-Bindungen. Es gibt keinen unterstützten Pfad in ein .NET Projekt.

Das Unternehmen bietet von der Community gepflegte Xamarin- und MAUI-Binding-Projekte an, diese sind jedoch keine offiziellen Produkte, werden von Barkoder nicht produktionsseitig unterstützt und werden nicht zusammen mit dem Haupt-SDK aktualisiert. Die Verwendung einer Community-Anbindung für einen kritischen Barcode-Workflow in einer produktiven .NET Anwendung stellt ein erhebliches technisches Risiko dar. Für ernsthafte .NET Implementierungen sind sie keine realistische Option.

Wichtigste architektonische Merkmale des Barkoder SDK:

  • Mobile-First-Architektur: Exklusiv für iOS- und Android-Kamera-Pipelines entwickelt; Die gesamte Verarbeitung erfolgt lokal auf dem Gerät durch einen C/C++-Kern.
  • Kein .NET SDK: Es existiert kein NuGet Paket; Die Suche nach "barkoder" auf NuGet liefert keine Ergebnisse.
  • Keine Barcode-Generierung: Barkoder ist ein SDK mit Lesezugriff; es kann keine BarCodes erzeugen oder kodieren
  • Keine PDF-Verarbeitung: Das SDK kann weder Barcodes aus PDF-Dokumenten noch Bilder aus Dateisystemen oder serverseitige Dokument-Workflows lesen.
  • Keine Serverbereitstellung: Das SDK kann nicht in ASP.NET Core, Azure Functions, Docker-Containern oder einer serverseitigen .NET Ausführungsumgebung ausgeführt werden.
  • Nur für die Community: .NET -Bindung: Das MAUI-Bindungsprojekt ist experimentell, stellt nur eine Teilmenge des SDK bereit und wird nicht für den Produktiveinsatz unterstützt.

Wie die Barkoder-Architektur aussieht

Die Bildverarbeitung erfolgt über den C/C++-Kern des SDKs. Die iOS- und Android-Wrapper stellen diesen Kern über plattformspezifische APIs bereit. Keiner der folgenden Codeabschnitte läuft in einem .NET Kontext – es gibt keine using Barkoder;-Anweisung in irgendeinem C#-Projekt:

// iOS — Swift only, no C# equivalent
let barkoderView = BarkoderView(frame: frame)
barkoderView.config = BarkoderConfig(licenseKey: "LICENSE_KEY") { config in
    config.decoder.decoderType = .code128
    config.decoder.deblurEnabled = true
}
barkoderView.startScanning { result in
    print(result.textualData ?? "No result")
}
// Android — Kotlin only, no C# equivalent
val barkoderView = BarkoderView(context)
barkoderView.config = BarkoderConfig("LICENSE_KEY")
barkoderView.config.decoder.decoderType = DecoderType.Code128
barkoderView.config.decoder.deblurEnabled = true
barkoderView.startScanning { result ->
    println(result.textualData)
}

Bevor wir Barkoder gänzlich hinter uns lassen, lohnt es sich, anzuerkennen, was es gut macht. Die Merkmale, die ihm einen Platz in den Vergleichslisten sichern, 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() und BarcodeWriter.CreateBarcode() sind statische Aufrufe ohne zustandsbehaftete Instanz, die verwaltet werden muss.
  • 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 SDKund IronBarcode:

Feature Barkoder SDK IronBarcode
.NET /C#-Unterstützung Keine Vollständig — alle .NET -Laufzeitumgebungen
NuGet-Paket Keine Ja — IronBarcode
Barcode-Lesung Ja – Handykamera Ja – Dateien, Streams, PDFs
Barcode-Generierung Keine Vollständig — über 50 Formate
PDF-Verarbeitung Keine Native
Serverseitige Bereitstellung Keine Vollständig – ASP.NET Core, Azure, Lambda, Docker
Preisgestaltung Lizenzierung des Mobile SDK Ab 749 $ einmalig, unbefristet

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 Keine Vollständig – alle Formate
QR-Code-Generierung Keine QRCodeWriter.CreateQrCode()
Logo/Branding auf QR-Code Keine AddBrandLogo()
Plattform
.NET / C# Keine Voll
iOS (nativ) Ja (primär) Über .NET MAUI
Android (nativ) Ja (primär) Über .NET MAUI
Windows / Linux / macOS Keine Voll
Docker / Container Keine Voll
Azure-Funktionen Keine Voll
AWS Lambda Keine 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 Keine Vollständige .NET DI-Integration
PDF-Dokument-Eingabe Keine BarcodeReader.Read("doc.pdf")
Lizenzierung
Lizenzmodell Lizenzierung des Mobile SDK Dauerhafter, einmaliger Kauf
Preis (Eintritt) Kontakt zum Vertrieb Ab 749 $ (Lite)

.NET -Bereitstellungsmodell

Der grundlegendste Unterschied zwischen Barkoder SDKund IronBarcode ist nicht eine Funktion – es ist die Verfügbarkeit. Das Barkoder SDKexistiert nicht im .NET Ökosystem.

Barkoder SDK-Ansatz

Die Barkoder-Plattformliste ist eindeutig: iOS Native(Swift / Objective-C), Android Native(Kotlin / Java), React Native, Flutter, Cordova, Capacitor. .NET, C#, .NET MAUI, Xamarin, Windows, Linux und ASP.NET Core fehlen. 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.

Das Fehlen eines .NET SDK ist keine geringfügige Unannehmlichkeit – es ist ein absolutes Hindernis. Es gibt kein NuGet Paket zu installieren, keine asynchrone API-Oberfläche, keine Abhängigkeitsinjektionsintegration, keine Unterstützung für Azure oder AWS Lambdaund keine PDF-Verarbeitungsfunktion. Die Community-MAUI-Bindung stellt nur eine Teilmenge des SDK bereit und wird nicht für den Produktiveinsatz unterstützt.

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-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-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-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
$vbLabelText   $csharpLabel

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-Funktionenund 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.

// iOS Swift — not usable from C#
barkoderView.config = BarkoderConfig(licenseKey: "LICENSE_KEY") { config in
    config.decoder.deblurEnabled = true
    config.decoder.decoderType = .code128
}
barkoderView.startScanning { result in
    print(result.textualData ?? "No result")
}

IronBarcode Ansatz

IronBarcode begegnet dem gleichen Problem mit ReadingSpeed.ExtremeDetail, das eine mehrstufige Bildanalyse-Pipeline aktiviert – wobei ML-basierte Schadenswiederherstellung, Kontrastverbesserung, Schärfung und Rotationskorrektur angewendet werden – bevor versucht wird, das Bild zu dekodieren. Dies funktioniert mit beliebigen Datei-, Datenstrom- oder Byte-Array-Eingaben:

using IronBarCode;

IronBarCode.License.LicenseKey = "YOUR-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-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-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
$vbLabelText   $csharpLabel

ReadingSpeed.Balanced verarbeitet die meisten sauberen oder leicht beschädigten Barcodes und ist schneller. ExtremeDetail sollte für Fälle reserviert werden, in denen Balanced fehlschlägt – diese Methode ist gründlich, aber deutlich 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:

// Android Kotlin — not usable from C#
barkoderView.config.decoder.multicodingEnabled = true
barkoderView.startScanning { results ->
    results.forEach { result ->
        println("${result.barcodeType}: ${result.textualData}")
    }
}

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 handhabt dies mit ExpectMultipleBarcodes = true, und dieselbe Option funktioniert identisch bei Bildern und PDFs:

using IronBarCode;

IronBarCode.License.LicenseKey = "YOUR-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-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-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
$vbLabelText   $csharpLabel

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:

// iOS Swift — not usable from C#
barkoderView.config = BarkoderConfig(licenseKey: "LICENSE_KEY") { config in
    config.decoder.decoderType = .dataMatrix
}
barkoderView.startScanning { result in
    print(result.textualData ?? "No result")
}

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 bewältigt ReadingSpeed.ExtremeDetail den geringen Kontrast und die rauen Kanten, die typisch für lasergeätzte DPM-Markierungen sind. Auf der Generierungsseite erzeugt BarcodeWriter.CreateBarcode() eine DataMatrix für die Erstellung von Teileetiketten:

using IronBarCode;

IronBarCode.License.LicenseKey = "YOUR-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-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-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")
$vbLabelText   $csharpLabel

Eine vollständige Liste der unterstützten Formate und Generierungsoptionen finden Sie im IronBarcode Barcode-Generierungsleitfaden .

API-Mapping-Referenz

Da kein Barkoder C#-Code als Vorlage dient, verdeutlicht diese Tabelle die konzeptionellen Entsprechungen zwischen dem, was Barkoder auf Mobilgeräten leistet, und wie IronBarcode dasselbe Ergebnis in .NET erzielt:

Barkoder-Konzept IronBarcode Äquivalent
SDK-Initialisierung mit Lizenzschlüssel IronBarCode.License.LicenseKey = "YOUR-KEY"
DeblurEnabled = true Speed = ReadingSpeed.ExtremeDetail
MultipleScanningEnabled = true ExpectMultipleBarcodes = true
DecoderType = .dataMatrix BarcodeEncoding.DataMatrix (automatisch beim Lesen erkannt)
startScanning(callback) BarcodeReader.Read("image.png") — synchrones Ergebnis
result.textualData result.Value
result.symbology 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-Funktionenund Lambda.

Wenn Teams einen Wechsel vom Barkoder SDKzu IronBarcode erwägen

.NET -Projektanforderungen

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 die Erkennung mehrerer Barcodes, finden die Funktionen überzeugend und stellen dann fest, dass keines davon von C# aus zugänglich ist. Die Auswertung endet bei NuGet. 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 Preisgestaltung des mobilen SDKs von Barkoder orientiert sich am mobilen Anwendungs- und Vertriebsmodell. Für Teams, die Tools für eine .NET Umgebung evaluieren, ist dieses Preismodell irrelevant – das SDK läuft überhaupt nicht in .NET . Wenn Teams IronBarcode als das passende Tool für ihre Plattform identifizieren, ist das Preismodell unkompliziert: eine einmalige, unbefristete Lizenz ohne Gebühren pro Anfrage und ohne Volumenbeschränkungen, unabhängig davon, wie viele Barcodes verarbeitet werden.

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 dieselben Daten in verschiedenen Formen – als Dateipfadzeichenfolge, als Stream, als byte[] oder als 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)
$vbLabelText   $csharpLabel

Geschwindigkeit vs. Genauigkeit – ein Kompromiss

Der DeBlur-Modus von Barkoder ist nach der Konfiguration immer aktiv und läuft innerhalb der Kameraschleife des Mobilgeräts. IronBarcode macht den Kompromiss zwischen Genauigkeit und Geschwindigkeit explizit durch ReadingSpeed deutlich. Für die meisten Dateien ist ReadingSpeed.Balanced angemessen. Bei beschädigten oder fehlerhaften Eingaben, die Balanced nicht dekodieren kann, wendet ReadingSpeed.ExtremeDetail die vollständige, mehrstufige ML-Pipeline an. Für leistungskritische Arbeitsabläufe empfiehlt es sich, die Stapelverarbeitung so zu strukturieren, dass standardmäßig Balanced verwendet wird und nur im Fehlerfall auf ExtremeDetail zurückgegriffen wird.

Asynchrone Integration in ASP.NET Core

Die Methode BarcodeReader.Read() von IronBarcode ist synchron. In ASP.NET Core Endpunkten, die gleichzeitige Anfragen verarbeiten, muss der Aufruf in Task.Run() eingeschlossen werden, um ein Blockieren des Anfragethreads zu vermeiden:

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))
$vbLabelText   $csharpLabel

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.ExpectedBarcodeFormats, um die Suche einzuschränken, 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:

  • QR-Code-Logo-Einbettung : QRCodeWriter.CreateQrCode().AddBrandLogo() fügt ein Markenbild in die Mitte eines generierten QR-Codes ein – eine gängige Anforderung für Marketing- und Verpackungsprozesse.
  • 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.
  • Massenhaftes Einlesen von Bildern : BarcodeReader.ReadBulk() verarbeitet mehrere Bilder gleichzeitig für Stapelverarbeitungsvorgänge mit hohem Durchsatz.
  • 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 einschließlich .NET 9. Die aktive Weiterentwicklung gewährleistet die Kompatibilität mit .NET 10, das für 2026 erwartet wird. Die Bibliothek läuft unter Windows, Linux und macOS und wurde mit Docker, Azure-Funktionenund AWS Lambdagetestet. 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 operieren in grundlegend verschiedenen Bereichen. Barkoder ist ein mobiles Kamera-Scanning-SDK, das für iOS und Android entwickelt wurde und über einen C/C++-Verarbeitungskern sowie CocoaPods, Maven und hybride mobile Frameworks vertrieben wird. IronBarcode ist eine native .NET Bibliothek, die für Server-, Desktop- und Cloud-Bereitstellungen entwickelt wurde, über NuGet vertrieben wird und durch Standardmuster in das .NET Ökosystem integriert ist. Die beiden Bibliotheken konkurrieren nicht auf derselben Plattform – sie erfüllen dieselben Anforderungen an die Barcode-Verarbeitung in völlig unterschiedlichen Ausführungsumgebungen.

Barkoder ist die richtige Wahl für die Entwicklung mobiler Anwendungen für iOS oder Android, die eine Echtzeit-Kameraüberwachung benötigen. Die MatrixSight- und DeBlur-Funktionen sind besonders stark für Feldscan-Szenarien, bei 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 Ihr Team mit React Nativeoder Flutter eine Anwendung für mobile Mitarbeiter entwickelt, die physische Gegenstände mit der Gerätekamera scannen, sollte Barkoder in die Evaluierung einbezogen werden.

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 Vergleichsübersichten auf Barkoder aufmerksam geworden sind, bietet IronBarcode die gleichen Kernfunktionen – schadentolerantes Lesen, Erkennung mehrerer Barcodes, DataMatrix und Unterstützung für hochdichte Formate – nativ für die .NET Plattform implementiert.

Die praktische Schlussfolgerung ist eindeutig: Wer in C# programmiert, für den war Barkoder nie eine Option. Die für die Funktionsliste aufgewendete Zeit ist nützlich – sie verdeutlicht, welche Funktionen Sie benötigen – und IronBarcode deckt alle diese Funktionen in der Umgebung ab, in der Ihre Anwendung tatsächlich ausgeführt wird.

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 für .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.

Jordi Bardia
Software Ingenieur
Jordi ist am besten in Python, C# und C++ versiert. Wenn er nicht bei Iron Software seine Fähigkeiten einsetzt, programmiert er Spiele. Mit Verantwortung für Produkttests, Produktentwicklung und -forschung trägt Jordi mit immensem Wert zur kontinuierlichen Produktverbesserung bei. Die abwechslungsreiche Erfahrung hält ihn gefordert und engagiert, ...
Weiterlesen

Iron Support Team

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