IRONSOFTWAREHOME
MIT ANDEREN KOMPONENTEN VERGLEICHEN

Accusoft BarcodeXpressvs IronBarcode: Lizenzierung, Durchsatz und API-Kompromisse

Curtis Chau
Curtis Chau
Updated: 26. April 2026

Wenn Sie eine Barcode-Bibliothek anhand ihrer Testversion evaluieren, erwarten Sie, dass Sie sehen können, ob sie tatsächlich mit Ihren Bildern funktioniert, bevor Sie sich zum Kauf entscheiden. Accusoft BarcodeXpressbietet Ihnen diese Option nicht. Im Evaluierungsmodus werden dekodierte Barcode-Werte mit dem String " UNLICENSED accusoft.com " gestempelt und generierte 2D-Barcodes tragen denselben Stempel. Sie können überprüfen, ob die Bibliothek einen Barcode findet, aber nicht, ob sie den Barcode korrekt liest. Das ist eine Situation, in der man sich festlegt, bevor man die Transaktion überprüft, und das stellt einen erheblichen Reibungspunkt dar, noch bevor man sich mit der Preisgestaltung befasst hat.

Accusoft BarcodeXpressverstehen

Accusoft entwickelt seit Jahrzehnten Dokumentenverarbeitungssoftware für Enterprise . BarcodeXpress ist Teil einer größeren Produktfamilie, zu der auch PrizmDoc, ImageGear und Accusoft Imaging gehören. Teams, die diese Produkte bereits nutzen, stoßen auf eine vertraute API-Oberfläche und können auf eine bestehende Accusoft-Kontobeziehung zurückgreifen. Für die eigenständige Verwendung von Barcodes bietet dieser Kontext weniger Vorteile.

Das Kern-SDK ist als NuGet Paket for .NET Core verfügbar. Die API ist instanzbasiert — Sie erstellen ein BarcodeXpress-Objekt, konfigurieren die Licensing-Eigenschaft und verwenden dann untergeordnete reader- und writer-Objekte für die eigentlichen Operationen. Das Dual-Key-Lizenzsystem unterscheidet BarcodeXpress von den meisten Alternativen.

Wichtigste architektonische Merkmale von BarcodeXpress:

  • Instanzbasierte API: Jede Operation erfordert eine BarcodeXpress-Instanz; statische Komfortmethoden sind nicht Teil des Entwurfs
  • Zwei-Schicht-Lizenzierung: SDK-Lizenzierung (SetSolutionName + SetSolutionKey) und OEM/Runtime-Lizenzierung (SetOEMLicenseKey) sind separate Systeme, die separate Käufe erfordern
  • Evalutionsmodus-Stempel: Im Evaluierungsmodus werden dekodierte Werte mit " UNLICENSED accusoft.com " gestempelt (und generierte 2D-Barcodes werden mit demselben String gestempelt), was einen Test der Genauigkeit vor dem Kauf unmöglich macht
  • Manuelle Formatspezifikation: Der Leser erfordert eine explizite BarcodeTypes-Konfiguration, um zu bestimmen, welche Symbologien durchsucht werden sollen; nicht spezifizierte Formate werden nicht erkannt
  • Standard-Obergrenze von 40 Seiten pro Minute: Die Standard Edition drosselt die Verarbeitung auf 40 Seiten pro Minute, eine Grenze, die die meisten Teams eher nach der Bereitstellung als vorher erreichen.
  • Keine native PDF-Unterstützung: PDF-Dateien müssen mithilfe einer separaten Bibliothek in Bilder umgewandelt werden, bevor der Reader sie verarbeiten kann.
  • Mindestens fünf Laufzeitlizenzen: Selbst für eine Einzelserver-Bereitstellung sind mindestens fünf Laufzeitlizenzen erforderlich.

Das Zwei-Schlüssel-System erklärt

BarcodeXpress unterteilt die Lizenzierung in zwei konzeptionell getrennte Ebenen:

// BarcodeXpress: two separate license keys required
using Accusoft.BarcodeXpressSdk;

// Constructor takes the path to the runtime files (e.g. ".").
var barcodeXpress = new BarcodeXpress(".");

// Step 1: SDK license (for development).
// SetSolutionName and SetSolutionKey are methods, not properties.
// SetSolutionKey takes four 32-bit integers (not a parsed long).
barcodeXpress.Licensing.SetSolutionName("YourCompanyName");
barcodeXpress.Licensing.SetSolutionKey(1, 2, 3, 4);

// Step 2: OEM/runtime license (for production — minimum 5 purchased).
try
{
    barcodeXpress.Licensing.SetOEMLicenseKey("YourOEMLicenseString");
}
catch (Exception ex)
{
    // Without a valid OEM license, the SDK runs in stamped evaluation mode.
    Console.WriteLine($"OEM license activation failed: {ex.Message}");
}

Das SetSolutionKey-Paar aktiviert das SDK selbst. Der SetOEMLicenseKey-Aufruf aktiviert die Produktivbereitstellungsfunktionen. Beide müssen vorhanden und gültig sein, damit eine Produktivbereitstellung Barcode-Werte ohne den " UNLICENSED accusoft.com "-Stempel zurückgibt.

Bei der Code-Überprüfung erzeugt dieses Muster eine vorhersehbare Frage: "Warum haben wir zwei separate Lizenzaktivierungen?" Die Antwort — dass Accusoft SDK-Lizenzierung und Bereitstellungslizenzierung als separate Produkte mit getrennten Abrechnungen behandelt — ist nicht immer offensichtlich aus der API selbst. Teams, die diesen Code sechs Monate nach der Ersteinrichtung warten, müssen oft in der Dokumentation nachschlagen, um zu verstehen, welche Taste welche Funktion hat.

Ohne gültige OEM-Lizenz wirft SetOEMLicenseKey einen Fehler und das SDK fällt in den Evaluierungsmodus zurück. Teams ummanteln die Aktivierung typischerweise in try/catch, damit das Scheitern lautstark protokolliert wird, anstatt im Hintergrund gestempelte Barcode-Werte in der Produktion zu produzieren:

try
{
    barcodeXpress.Licensing.SetOEMLicenseKey(oemKey);
}
catch (Exception ex)
{
    // In evaluation mode, barcode values are stamped with
    // " UNLICENSED accusoft.com " in the output.
    throw new InvalidOperationException(
        "OEM license activation failed — barcode values will be stamped", ex);
}

Dieses Schutzmuster fügen Teams hinzu, wenn sie erkennen, dass die Ausgabe im Evaluierungsmodus Ergebnisse stillschweigend stempelt, anstatt während der Dekodierung zu werfen.

IronBarcode verstehen

IronBarcode ist eine eigenständige .NET -Barcode-Bibliothek, die außer ihrem NuGet Paket keine externen Abhängigkeiten aufweist. Es übernimmt sowohl die Generierung als auch das Lesen über statische Factory-Methoden, was bedeutet, dass kein Instanzlebenszyklus verwaltet werden muss und keine Konstruktoraufrufe im Anwendungscode verstreut sind.

Das Single-Key-Lizenzierungsmodell bedeutet, dass das, was Sie im Testmodus testen, auch in der Produktion zum Einsatz kommt – der einzige Unterschied besteht in einem Wasserzeichen auf den generierten Barcode-Bildern während der Testphase. Die dekodierten Werte sind immer vollständig, sodass Sie die Lesegenauigkeit anhand Ihrer tatsächlichen Dokumente überprüfen können, bevor Sie sich für den Kauf entscheiden.

Hauptmerkmale von IronBarcode:

  • Statische API-Design: BarcodeReader.Read() und BarcodeWriter.CreateBarcode() sind zustandslose statische Methoden — keine Instanzverwaltung erforderlich
  • Einzelner Lizenzschlüssel: Ein Schlüssel deckt sowohl die Entwicklungs- als auch die Produktionsumgebung ab; es gibt keine separate Laufzeitlizenzschicht
  • Vollständige Testwerte: Der Testmodus liefert die vollständig dekodierten Werte zurück; Das Wasserzeichen gilt nur für die generierten Ausgabebilder, nicht für die Leseergebnisse.
  • Automatische Formaterkennung: IronBarcode erkennt die Symbolik in allen unterstützten Formaten automatisch; keine BarcodeTypes-Enumeration erforderlich
  • Native PDF-Unterstützung: BarcodeReader.Read("document.pdf") verarbeitet PDF-Dateien direkt ohne einen separaten Rendering-Schritt
  • Keine Durchsatzbegrenzung: Die Verarbeitungsgeschwindigkeit wird nur durch die Hardware- und Netzwerkkapazität begrenzt, nicht durch eine softwareseitig festgelegte Obergrenze.
  • Thread-sicher von Grund auf: Zustandslose statische Methoden können gleichzeitig von beliebig vielen Threads ohne Instanzisolation aufgerufen werden.

Funktionsvergleich

FeatureAccusoft BarcodeXpressIronBarcode
LizenzmodellSDK-Lizenz + separate LaufzeitlizenzEin einziger ewiger Schlüssel
Verhalten im AuswertungsmodusBarcode-Werte gestempelt mit " UNLICENSED accusoft.com "Es werden vollständige Werte zurückgegeben, ein Wasserzeichen wird nur auf der generierten Ausgabe angezeigt.
Durchsatzgrenze (Standard)40 Seiten pro MinuteKeine Durchsatzbegrenzung
PDF-UnterstützungFür die Bildextraktion wird eine externe PDF-Bibliothek benötigt.Native — BarcodeReader.Read("doc.pdf")
API-StilInstanzbasierte, ausführliche KonfigurationStatische Factory-Methoden, flüssige API
Thread-SicherheitInstanz pro Thread erforderlichZustandslose statische Methoden – von Natur aus threadsicher
Einstiegspreis1.960 $ + SDK + 2.500 $ + Laufzeit (mind. 5)749 $ Dauerlizenz (Lite, 1 Entwickler)

Detaillierter Funktionsvergleich

FeatureAccusoft BarcodeXpressIronBarcode
Lizenzierung
LizenzmodellSDK-Schlüssel + LaufzeitschlüsselEin einziger ewiger Schlüssel
Mindestlaufzeitlizenzen5 (auch für 1 Server)Konzept ohne Laufzeitlizenz
AuswertungsmodusWerte gestempelt mit " UNLICENSED accusoft.com "Vollständige Werte, Wasserzeichen nur auf den Ausgabebildern
Unbefristete LizenzNicht Standard – bitte kontaktieren Sie den Vertrieb.Ja, alle Stufen.
Jährliche ErneuerungFür die Unterstützung erforderlichOptional
Lektüre
automatische FormaterkennungManuell – Barcode-Typen müssen angegeben werdenAutomatischer Ablauf über alle unterstützten Formate hinweg
PDF lesenErfordert eine externe PDF-BibliothekNative
Mehrere Barcodes pro BildJa, mit BarcodeTypes-KonfigurationJa, mit ExpectMultipleBarcodes-Option
ErgebniseigenschaftenBarcodeValue, BarcodeTypeValue, Format, Confidence, PageNumber
Durchsatzgrenze40 PPM (Standardausgabe)Keine Begrenzung auf keiner Stufe
Generation
Code 128-GenerierungJa, über writer.BarcodeTypeJa, über BarcodeWriter.CreateBarcode()
QR-Code-GenerierungJaJa, über QRCodeWriter.CreateQrCode()
QR-Code mit LogoManuelle Bildüberlagerung erforderlichAddBrandLogo("logo.png") eingebaut
AusgabeformateDatei speichernPNG, JPG, PDF, Binärdaten, Datenstrom
Plattform und Bereitstellung
.NET FrameworkSeparates Legacy-SDK.NET Framework4.6.2+
.NET Core / .NET 5+Ja (.NET Core SDK).NET Core 3.1+, .NET 5/6/7/8/9
Linux/DockerJaJa – Windows x64/x86, Linux x64, macOS x64/ARM
Docker-LizenzkonfigurationLizenzdatei oder LizenzserverUmgebungsvariable
CI/CD-IntegrationSowohl SDK- als auch Laufzeitschlüssel erforderlichEin Geheimnis
Batch-Verarbeitung
GewindesicherheitInstanz pro Thread erforderlichStaatenlos — Parallel.FürJeden sicher
Paralleler BatchErfordert eine Instanzverwaltung pro Thread.Direkte Parallele.ForEach-Unterstützung

Lizenzarchitektur

Der Unterschied in der Komplexität der Lizenzierung zwischen BarcodeXpress und IronBarcode wird am deutlichsten beim Schreiben von Initialisierungscode, der in der Produktion ausgeführt werden soll.

BarcodeXpress-Ansatz

using Accusoft.BarcodeXpressSdk;

public class BarcodeService
{
    private readonly BarcodeXpress _barcodeXpress;

    public BarcodeService()
    {
        _barcodeXpress = new BarcodeXpress(".");

        // Layer 1: SDK license
        _barcodeXpress.Licensing.SetSolutionName("AcmeCorp");
        _barcodeXpress.Licensing.SetSolutionKey(1, 2, 3, 4);

        // Layer 2: OEM/runtime license — separate purchase, minimum 5
        try
        {
            _barcodeXpress.Licensing.SetOEMLicenseKey("OEMLicenseString");
        }
        catch (Exception ex)
        {
            throw new InvalidOperationException(
                "OEM license activation failed — barcode values will be stamped", ex);
        }
    }
}

Dieser Konstruktor existiert ausschließlich, um zwei separate Lizenzaktivierungen zu verwalten, bevor eine Barcode-Operation stattfinden kann. Der try/catch-Block um SetOEMLicenseKey ist nicht optional — ohne ihn wird der Dienst stillschweigend gestempelte Werte in jeder Umgebung zurückgeben, in der der OEM-Schlüssel fehlt oder falsch konfiguriert ist.

IronBarcode Ansatz

using IronBarCode;

// In Program.cs or startup configuration
IronBarCode.License.LicenseKey = "YOUR-LICENSE-KEY";

Das ist die vollständige Einrichtung der Lizenzierung. Keine separate Freischaltung zur Laufzeit, kein Lösungsname, kein Zwei-Argumente-UnlockRuntime-Aufruf. In Docker wird dies zu einer Umgebungsvariablen, die beim Start ausgelesen wird. In einer CI/CD-Pipeline ist es ein Geheimnis. In einem Container-Orchestrator handelt es sich um eine Umgebungsvariable, die in den Pod injiziert wird.

Lesen von Barcodes

Das Lesen von Barcodes offenbart den Unterschied zwischen den Konfigurationsphilosophien der beiden Bibliotheken – BarcodeXpress erfordert eine explizite Formataufzählung und eine eigenschaftsbasierte Setup-API, während IronBarcode alles automatisch mit einem einzigen Methodenaufruf erkennt.

BarcodeXpress-Ansatz

Lesen mit BarcodeXpress erfordert das Laden des Bildes in einen System.Drawing.Bitmap, das Zuweisen der Symbologiesammlung an reader.BarcodeTypes als System.Array von BarcodeType-Werten und das Aufrufen von Analyze(bitmap), um Ergebnisse abzurufen. Das SDK liest PDFs nicht direkt — dokumentierte Eingabeformate sind TIFF, JPEG, PNG und BMP:

using Accusoft.BarcodeXpressSdk;
using System.Drawing;

public IEnumerable<string> ReadAllBarcodes(string imagePath)
{
    var barcodeXpress = new BarcodeXpress(".");
    barcodeXpress.Licensing.SetSolutionName("AcmeCorp");
    barcodeXpress.Licensing.SetSolutionKey(1, 2, 3, 4);
    barcodeXpress.Licensing.SetOEMLicenseKey("OEMLicenseString");

    using var bitmap = new Bitmap(imagePath);

    // BarcodeTypes is a System.Array of BarcodeType values (not a [Flags]
    // enum). Pass Enum.GetValues to scan for everything, or assign a
    // narrower array to restrict the search space.
    barcodeXpress.reader.BarcodeTypes = new[]
    {
        BarcodeType.Code128Barcode,
        BarcodeType.DataMatrixBarcode,
        BarcodeType.QRCodeBarcode
    };

    Result[] results = barcodeXpress.reader.Analyze(bitmap);
    return results.Select(r => r.BarcodeValue);
}

Analyze nimmt ein Bitmap und gibt ein Result[] zurück. Wenn ein Dokument ein Format enthält, das im BarcodeTypes-Array nicht vorhanden ist, wird es nicht gefunden. Dies führt zu einem erhöhten Wartungsaufwand, wenn sich die Dokumentquellen ändern. PDFs erfordern ein vorheriges Rendern zu Bildern mit einer separaten Bibliothek, bevor sie in Analyze eingespeist werden können.

IronBarcode Ansatz

using IronBarCode;

public IEnumerable<string> ReadAllBarcodes(string imagePath)
{
    var results = BarcodeReader.Read(imagePath);
    return results.Select(r => r.Value);
}

IronBarcode erkennt das Format automatisch für alle unterstützten Symbologien. Wenn das Bild einen Code 128, einen QR-Code und eine DataMatrix enthält, werden alle drei ohne Konfigurationsänderung in der Ergebnisliste angezeigt. Für eine bessere Kontrolle über das Leseverhalten bietet die Klasse BarcodeReaderOptions Einstellungen für Geschwindigkeit, Thread-Anzahl und Multi-Barcode-Unterstützung.

Das native Lesen von PDFs ist ebenfalls über dieselbe Methode möglich:

using IronBarCode;

// NativePDF support — no separate library needed
var results = BarcodeReader.Read("invoice-batch.pdf");

foreach (var result in results)
{
    Console.WriteLine($"Page {result.PageNumber}: [{result.Format}] {result.Value}");
}

BarcodeXpress kann PDFs nicht nativ lesen. Sie müssen jede Seite zunächst mithilfe einer separaten Bibliothek in ein Bild umwandeln und diese Bilder dann an den BarcodeXpress-Leser übergeben. Dadurch entsteht eine Abhängigkeit, ein zusätzlicher Konvertierungsschritt und je nach gewählter PDF-Bibliothek weitere Lizenzkosten.

Stapelverarbeitung und Gewindesicherheit

Die Verarbeitung großer Mengen von Barcodes offenbart den architektonischen Unterschied zwischen dem zustandsbehafteten Instanzmodell von BarcodeXpress und der zustandslosen statischen API von IronBarcode.

BarcodeXpress-Ansatz

BarcodeXpress ist instanzbasiert und sein reader-Objekt ist zustandsbehaftet. Die parallele Verarbeitung erfordert eine Instanz pro Thread, wobei die vollständige zweistufige Lizenzinitialisierung in jedem Thread-Kontext wiederholt wird:

using Accusoft.BarcodeXpressSdk;
using System.Collections.Generic;
using System.Drawing;

public Dictionary<string, string> ProcessBatch(IEnumerable<string> imagePaths)
{
    var results = new Dictionary<string, string>();

    foreach (var path in imagePaths)
    {
        using var bitmap = new Bitmap(path);

        _barcodeXpress.reader.BarcodeTypes = new[]
        {
            BarcodeType.Code128Barcode,
            BarcodeType.QRCodeBarcode
        };

        var barcodes = _barcodeXpress.reader.Analyze(bitmap);
        if (barcodes.Length > 0)
            results[path] = barcodes[0].BarcodeValue;
    }

    return results;
}

Die Standardausgabe sieht außerdem eine maximale Lesegeschwindigkeit von 40 Seiten pro Minute vor. Die Bearbeitung eines Stapels von 100.000 Dokumenten bei einer Geschwindigkeit von 40 Seiten pro Minute dauert etwa 41 Stunden. Die Professional Edition hebt diese Beschränkung auf, allerdings zu höheren Kosten pro Entwickler – zusätzlich zu den bereits erworbenen Laufzeitlizenzen.

IronBarcode Ansatz

using IronBarCode;
using System.Collections.Concurrent;
using System.Threading.Tasks;

// IronBarcode — parallel batch with thread-safe static API
var files = Directory.GetFiles("/incoming/scans", "*.png");
var allResults = new ConcurrentBag<string>();

Parallel.ForEach(files, file =>
{
    var r = BarcodeReader.Read(file);
    foreach (var barcode in r)
        allResults.Add($"{file}: {barcode.Value}");
});

Da die statischen Methoden von IronBarcode zustandslos sind, ist Parallel.ForEach über ihnen sicher, ohne dass eine Instanzisolierung erforderlich ist. IronBarcode setzt in keiner Preisstufe eine Durchsatzbegrenzung fest. Um die Leseleistung zu optimieren, bietet die BarcodeReaderOptions-Klasse ReadingSpeed- und MaxParallelThreads-Einstellungen:

using IronBarCode;

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

var results = BarcodeReader.Read("warehouse-scan.png", options);

ReadingSpeed.Balanced ist der Standard. Verwenden Sie ReadingSpeed.Faster für Hochdurchsatz-Pipelines, bei denen die Barcodes sauber sind, oder ReadingSpeed.Detailed für beschädigte oder kontrastarme Bilder.

API-Mapping-Referenz

Accusoft BarcodeXpressIronBarcode
new BarcodeXpress(".")Statische Methoden – keine Instanz erforderlich
Licensing.SetSolutionName("...")IronBarCode.License.LicenseKey = "YOUR-LICENSE-KEY"
Licensing.SetSolutionKey(int, int, int, int)(removed — not needed)
Licensing.SetOEMLicenseKey(string)(removed — no separate runtime license concept)
try/catch um die OEM-Aktivierung(removed — license is always either valid or not)
reader.Analyze(bitmap) (lädt zuerst System.Drawing.Bitmap)BarcodeReader.Read(path)
reader.BarcodeTypes = new[] { BarcodeType.Code128Barcode, ... }(removed — auto-detection handles all formats)
result.BarcodeValueresult.Value
result.BarcodeTyperesult.Format
writer.BarcodeType = BarcodeType.Code128BarcodeWriter.CreateBarcode("data", BarcodeEncoding.Code128)
writer.BarcodeValue = "data"(first argument to CreateBarcode)
writer.SaveToFile(path).SaveAsPng(path)
40 ppm StandardgrenzwertKeine Durchsatzbegrenzung auf keiner Ebene
Bewertung: Werte gestempelt mit " UNLICENSED accusoft.com "Testversion: volle Werte, Wasserzeichen nur auf den Ausgabebildern

Wenn Teams einen Wechsel von Accusoft BarcodeXpresszu IronBarcode erwägen

Skalierung jenseits der 40-ppm-Grenze

Die Begrenzung der Standardausgabe auf 40 Seiten pro Minute klingt großzügig, bis ein Geschäftsteam beschließt, am Ende des Tages eine Stapelverarbeitung für die archivierten Rechnungen eines ganzen Jahres durchzuführen. Bei diesem Tempo dauert die Bearbeitung eines Stapels von 100.000 Dokumenten etwa 41 Stunden. Der Wechsel zur Professional Edition beseitigt zwar die Beschränkung, führt aber zu höheren Kosten pro Entwicklerplatz – zusätzlich zu den bereits erworbenen Laufzeitlizenzen. Teams, die die Durchsatzgrenze erst nach Unterzeichnung eines Kaufvertrags entdecken, stellen oft fest, dass die Gesamtkosten für deren Beseitigung die ursprünglichen Schätzungen erheblich übersteigen.

Lizenzierungskomplexität der CI/CD-Pipeline

Ein typisches CI/CD-Setup führt Builds in kurzlebigen Containern aus. Bei BarcodeXpress benötigt jede Build-Umgebung sowohl das SDK-Schlüsselpaar als auch die Laufzeit-Entsperrschlüssel, die als separate Geheimnisse verwaltet werden. Wenn der Laufzeitschlüssel fehlt oder falsch konfiguriert ist, kann der Build zwar erfolgreich sein, aber Integrationstests liefern verschleierte Werte – ein stiller Fehler, der in einer Testpipeline leicht übersehen werden kann, wenn die Testzusicherungen nicht sorgfältig anhand des tatsächlichen Barcode-Inhalts geschrieben werden.

Anforderungen an eine abgeschottete und sichere Bereitstellung

In einigen Umgebungen – wie etwa Gesundheitssystemen, die Patientendaten verarbeiten, Dokumentenworkflows der Regierung oder Backoffice-Prozessen von Finanzinstituten – ist eine Lizenzvalidierung bei ausgehenden Netzwerkanrufen nicht möglich. Das Laufzeitlizenzsystem von BarcodeXpress nutzt die Lizenzinfrastruktur von Accusoft, was in Umgebungen mit strengen Beschränkungen des ausgehenden Netzwerkzugriffs zu Compliance-Problemen führen kann. Teams, die in solchen Umgebungen arbeiten, wählen oft Bibliotheken, deren Lizenzvalidierung vollständig lokal erfolgt.

Docker und Containerbereitstellung

BarcodeXpress in Docker erfordert typischerweise entweder das Einbinden einer Lizenzdatei in den Container unter einem bekannten Pfad oder die Konfiguration eines Lizenzservers und die Angabe des entsprechenden Pfads im Container. Beide Ansätze erhöhen die Komplexität der Bereitstellung – Lizenzdateien müssen verteilt und synchronisiert werden, und ein Lizenzserver stellt eine zusätzliche Infrastrukturkomponente dar, die gewartet werden muss. Teams, die auf Microservice-Architekturen oder serverlose Bereitstellungsmuster umsteigen, stellen fest, dass sich der Ansatz mit Konfigurationsdateien nicht sauber in unveränderliche Container-Images übersetzen lässt.

Anforderungen an die Genauigkeit der Bewertung

Teams, die die Lesegenauigkeit ihrer eigenen Dokumente überprüfen müssen, bevor sie sich zum Kauf entscheiden, empfinden den Evaluierungsmodus von BarcodeXpress als grundlegend einschränkend. Tests mit realen Dokumentenscans – bei denen geprüft wird, ob die Bibliothek mit kontrastarmen Barcodes, verzerrten Bildern oder Seiten mit mehreren Barcodes zurechtkommt – erfordern vollständig dekodierte Werte. Die teilweise verdeckte Ausgabe zeigt lediglich an, dass die Bibliothek einen Barcode gefunden hat, nicht aber, ob sie ihn korrekt gelesen hat.

Gemeinsame Überlegungen zur Migration

Instanzverwaltung für statische Aufrufe

BarcodeXpress erfordert, dass eine BarcodeXpress-Instanz erstellt und lizenziert wird, bevor eine Operation stattfindet. Die statischen Methoden von IronBarcode benötigen keine Instanz. Teams, die migrationsbedingt umstellen, haben in der Regel eine BarcodeService-Klasse, deren Konstruktor größtenteils Lizenzierungs-Standardtext ist — nach der Migration kann dieser Konstruktor vollständig entfernt oder auf eine einzelne Lizenzschlüsselzuweisung reduziert werden.

Entfernung der BarcodeTypes-Aufzählung

Jede BarcodeXpress-Leseoperation erfordert eine BarcodeTypes-Array-Zuweisung, um festzulegen, welche Symbologien durchsucht werden sollen. IronBarcode erkennt standardmäßig alle unterstützten Formate automatisch. Während der Migration können alle reader.BarcodeTypes = ...-Zuweisungen ohne Ersatz gelöscht werden. Wenn es einen Leistungsgrund gibt, den Suchbereich einzuschränken, unterstützt BarcodeReaderOptions die Formatfilterung als explizite Opt-in-Option und nicht als erforderlichen Standard.

Ergebnis: Änderungen des Eigenschaftsnamens

Zwei Umbenennungen von Eigenschaften betreffen den gesamten ergebnisverarbeitenden Code: result.BarcodeValue wird zu result.Value, und result.BarcodeType wird zu result.Format. Eine lösungsweite Such- und Ersetzungsfunktion erledigt beides. IronBarcode-Ergebnisse bieten auch result.Confidence und result.PageNumber, die kein BarcodeXpress-Äquivalent haben und für zusätzliche Filterung ohne Codeänderungen zur vorhandenen Ergebnisverarbeitung verwendet werden können.

Docker-Lizenzkonfiguration

BarcodeXpress Docker-Bereitstellungen verwenden typischerweise eine eingebundene Lizenzkonfigurationsdatei. IronBarcode verwendet eine Umgebungsvariable. Die Migration beinhaltet das Entfernen der COPY-Anweisung für die Konfigurationsdatei und das Hinzufügen einer einzigen Umgebung variablen Zuweisung. In Kubernetes wird der Lizenzschlüssel zu einer geheimen Referenz in der Pod-Spezifikation anstatt zu einem eingebundenen Volume.

Zusätzliche IronBarcode Funktionen

Über die in diesem Vergleich behandelten Kernfunktionen hinaus bietet IronBarcode Funktionen, die nicht zum Angebot von BarcodeXpress gehören:

  • QR-Code mit Logo: QRCodeWriter.CreateQrCode().AddBrandLogo("logo.png") bettet ein Markenimage nativ in einen QR-Code ein, mit konfigurierbarem Fehlerkorrekturlevel, um die Scan-Zuverlässigkeit zu erhalten
  • Barcode-Aufdruck auf PDFs : Barcodes direkt in bestehende PDF-Dokumente schreiben, ohne separate PDF-Bibliothek
  • Stapelverarbeitungsexport : Verarbeiten Sie ganze PDF-Dokumente in einem einzigen Aufruf und erhalten Sie Ergebnisse pro Seite mit Seitenzahl, Format, Wert und Konfidenzbewertung.

.NET-Kompatibilität und Zukunftsfähigkeit

IronBarcode unterstützt .NET Framework4.6.2 und höher, .NET Core 3.1 sowie .NET 5, 6, 7, 8 und 9. Zu den Zielplattformen gehören Windows x64 und x86, Linux x64 sowie macOS x64 und ARM. BarcodeXpress for .NET Core ist ein separates SDK von der älteren .NET FrameworkEdition – Teams, die das Zielframework ihrer Anwendung aktualisieren, müssen dies berücksichtigen. Das Einzelpaket von IronBarcode deckt alle unterstützten Laufzeitumgebungen ab. Regelmäßige Updates verfolgen neue .NET-Veröffentlichungen, sobald sie veröffentlicht werden.

Abschluss

BarcodeXpress und IronBarcode repräsentieren zwei unterschiedliche Designphilosophien für kommerzielle .NET -Barcodebibliotheken. BarcodeXpress behandelt den SDK-Zugriff und die Produktionsbereitstellung als separate lizenzierte Produkte mit separater Abrechnung, separaten Schlüsselsystemen und separaten Mindestabnahmemengen. IronBarcode behandelt die Bibliothek als ein einziges Produkt mit einem einzigen Schlüssel, der alle Umgebungen von der Entwicklung bis zur Produktion abdeckt.

BarcodeXpress ist eine sinnvolle Wahl für Teams, die bereits in das Accusoft-Produktökosystem eingebunden sind – Organisationen, die PrizmDoc oder ImageGear verwenden, werden die API von BarcodeXpress als vertraut empfinden und ihre Accusoft-Kontobeziehung für einen konsolidierten Support als nützlich empfinden. Für diese Teams stellt das Zwei-Schlüssel-Lizenzsystem ein etabliertes Betriebsmuster und keine neue Reibungsquelle dar. Das SDK eignet sich auch für Umgebungen, in denen die Dokumentenquellen gut kontrolliert sind und die Formatvorgaben stabil sind, was die manuelle BarcodeTypes-Spezifikation zu einer akzeptablen einmaligen Konfiguration macht, anstatt laufender Wartung.

IronBarcode eignet sich besser für Teams, die in Containern, CI/CD-Pipelines und Cloud-Umgebungen arbeiten, wo die Komplexität des Lizenzmanagements den operativen Aufwand direkt beeinflusst. Das automatische Erkennungsmodell, die statische API und die native PDF-Unterstützung reduzieren den Umfang des Integrationscodes, und das Einzelschlüssel-Lizenzmodell vereinfacht die Geheimnisverwaltung in Entwicklungs-, Test- und Produktionsumgebungen. Für Teams, die die Lesegenauigkeit vor dem Kauf bewerten müssen, ermöglicht die vollständige Testausgabe – Wasserzeichen auf den generierten Bildern, nicht auf den Leseergebnissen – ein echtes Benchmarking vor dem Kauf.

Die Preisunterschiede sind in jeder Preisstufe erheblich. Auf Ebene einzelner Entwickler ist die Kluft zwischen dem BarcodeXpress SDK Plus minimalen Laufzeitlizenzen und der Lite Version von IronBarcode beträchtlich. Für Teams, bei denen die Kostenunterschiede zugunsten der Integration in das Accusoft-Ökosystem zweitrangig sind, bleibt BarcodeXpress eine sinnvolle Wahl. Für Teams, die Barcode-Bibliotheken anhand ihrer eigenen Vorzüge evaluieren, ist IronBarcode aufgrund der Einschränkungen im Evaluierungsmodus, der Zwei-Schlüssel-Lizenzierung und der Durchsatzbegrenzungen die unkompliziertere Option.

Hinweis:: Accusoft ist ein eingetragenes Warenzeichen seines jeweiligen Eigentümers. Diese Seite ist weder mit Accusoft verbunden noch von ihnen genehmigt oder gesponsert. Alle Produktnamen, Logos und Marken sind Eigentum ihrer jeweiligen Eigentümer. Vergleiche dienen nur zu Informationszwecken und spiegeln öffentlich zugängliche Informationen zum Zeitpunkt des Schreibens wider.
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.