IRONSOFTWAREHOME
VIDEOS

Migrating from Neodynamic Barcode to IronBarcode

Curtis Chau
Curtis Chau
Updated: 1. August 2026

Dieser Leitfaden bietet einen vollständigen Migrationspfad von Neodynamic.SDK.Barcode und Neodynamic.SDK.BarcodeReader zu IronBarcode. Es umfasst die Entfernung beider Neodynamic-Pakete, den Ersatz der Dual-Lizenz-Konfiguration durch einen einzigen Schlüssel, die Übersetzung der API-Aufrufe für Generierung und Lesen sowie den Prozess der Erlangung der 2D-Barcode-Lesefähigkeit, die mit dem Neodynamic-Produktset nicht möglich war. Der Leitfaden richtet sich an Entwickler, die bereits Neodynamic-Code besitzen und eine systematische, dateiweise Vorgehensweise für die Migration benötigen.

Warum von Neodynamic Barcode migrieren?

2D-Leselücke: Das Neodynamischer BarCode ProfessionalSDK generiert QR-Code-, DataMatrix-, PDF417- und Aztec-Barcodes. Keines dieser Formate kann vom zugehörigen Barcode Reader SDK gelesen werden. Ein Projekt, das QR-Codes für Produktetiketten, Versandbehälter oder die Dokumentenverfolgung erzeugt, kann diese Codes nicht mit dem Lesegerät, das es zusammen mit dem Generator gekauft hat, wieder auslesen. IronBarcode liest und generiert QR-Codes, DataMatrix, PDF417, Aztec und alle anderen unterstützten 2D-Formate mit derselben Bibliothek und derselben Lizenz.

Doppelter Produktaufwand: Jedes Projekt, das sowohl Neodynamic SDKs verwendet, trägt zwei PackageReference Einträge, zwei using Direktiven, zwei Lizenzblöcke und zwei separate Update-Zyklen. Der Overhead wiederholt sich auf jedem Entwicklerrechner, in jeder CI-Pipeline und in jeder Produktionsumgebung. Die Zusammenführung zweier Pakete mit separaten Wartungsanforderungen zu einer einzigen Abhängigkeit mit einer einzigen Lizenz ist das mechanische Ergebnis dieser Migration.

Das Problem der dritten Bibliothek: Teams, die auf die Lücke beim Lesen von 2D-Codes stießen und sich für einen Workaround anstelle einer Migration entschieden, fügten typischerweise eine dritte Bibliothek hinzu – ZXing .NET war dabei die häufigste Wahl –, um speziell das Lesen von QR-Codes abzudecken. Diese Entscheidung tauscht eine Einschränkung gegen eine andere Komplexität: drei barcodebezogene Abhängigkeiten, jede mit ihren eigenen Versionsbeschränkungen, ihren eigenen Versionshinweisen und ihrem eigenen Konfliktpotenzial bei Aktualisierungen der .NET Laufzeitumgebung oder des abhängigen Frameworks. IronBarcode ersetzt alle drei.

Preisstrukturkomplexität: Neodynamischer BarCode ProfessionalSDK wird pro Entwickler berechnet (Basic ab ca. $352, Ultimate ab ca. $705 über ComponentSource). Das Barcode Reader SDK hat eine separate Kostenstruktur. Ein Projekt, das sowohl Generierung als auch 1D-Scannen benötigt, muss beide kaufen, und die kombinierten Kosten steigen mit der Teamgröße zusätzlich zur Reader-Gebühr. Ein Projekt, das 2D-Scannen benötigt, kann dieses Erfordernis innerhalb der Neodynamic-Produktfamilie zu keinem Preis erfüllen. IronBarcode Lite deckt Generierung und Scannen — 1D und 2D — mit einer einzigen Lizenz ab. Die aktuellen Preise finden Sie auf der IronBarcode-Lizenzierungsseite.

Das grundsätzliche Problem

Das Kernproblem in jeder Codebasis, die beide Neodynamic SDKs für einen vollständigen Barcode-Workflow nutzte, bestand darin, dass das Lesen von QR-Codes nie möglich war:

// Before: Neodynamic Barcode-Lesegerät does not support QR codes
using Neodynamic.SDK.BarcodeReader;
using System.Drawing;

public string ReadQrCode(string imagePath)
{
    using var bitmap = new Bitmap(imagePath);
    var reader = new BarcodeReader();
    var results = reader.Read(bitmap);

    // Results are always null or empty for 2D barcodes
    if (results == null || !results.Any())
    {
        throw new NotSupportedException(
            "Neodynamic Barcode Reader does not support QR codes");
    }

    return results.First().Value;
}
C#

Nach der Migration zu IronBarcode wird derselbe Vorgang zu einem Standard-Leseaufruf ohne formatspezifische Behandlung:

// After: IronBarcode reads QR codes with the same call used for all formats
using IronBarCode;

public string ReadQrCode(string imagePath)
{
    var result = BarcodeReader.Read(imagePath).FirstOrDefault();
    return result?.Value;
}

Jeder throw new NotSupportedException(...) Platzhalter in einem Codebestand, der 2D-Barcodelesen referenziert, wird während dieser Migration entfernt und durch einen funktionierenden Leseaufruf ersetzt.

IronBarcode vs. Neodynamic Barcode: Funktionsvergleich

FeatureNeodynamischer BarCode ProfessionalNeodynamic Barcode-LesegerätIronBarcode
Code 128, EAN-13, UPC-A GenerationJaNicht anwendbarJa
QR-Code, DataMatrix, PDF417-GenerierungJaNicht anwendbarJa
1D-Barcode-LesenNicht anwendbarJaJa
QR-Code-LesenNicht anwendbarNEINJa
DataMatrix-LesungNicht anwendbarNEINJa
PDF417 lesenNicht anwendbarNEINJa
Native PDF-Barcode-LeseNeinNeinJa
Automatische FormaterkennungNicht anwendbarNeinJa
Erforderliche NuGet Pakete111 (umfasst beides)
Lizenzschlüssel erforderlich11 (separat)1 (umfasst alles)
System.Drawing-AbhängigkeitJaJaNein
Linux-/Docker-UnterstützungBeschränktBeschränktJa
.NET 8 / .NET 9 UnterstützungJaBeschränktJa
Asynchrones BatchlesenNeinNeinJa

Schnellstart: Migration von Neodynamic Barcode zu IronBarcode

Schritt 1: Beide Neodynamic-Pakete entfernen

Beide Pakete müssen entfernt werden. Sie haben keine gemeinsamen Abhängigkeiten, die die Entfernungsreihenfolge beeinflussen:

dotnet remove package Neodynamic.SDK.Barcode
dotnet remove package Neodynamic.SDK.BarcodeReader
SHELL

Vergewissern Sie sich, dass beide Einträge aus der .csproj Datei verschwunden sind, bevor Sie fortfahren.

Schritt 2: IronBarcode hinzufügen

dotnet add package IronBarcode
SHELL

Schritt 3: Dual-Lizenzkonfiguration ersetzen

Entfernen Sie beide Neodynamic-Lizenzblöcke und ersetzen Sie sie durch eine einzelne IronBarcode Schlüsselzuweisung. Dieses Assignment wird einmal beim Anwendungsstart gemacht — in Program.cs, Startup.cs oder dem Kompositionsstamm der Anwendung:

// Before: two license blocks, two products
using Neodynamic.SDK.Barcode;
using Neodynamic.SDK.BarcodeReader;

BarcodeProfessional.LicenseOwner = "Your Company";
BarcodeProfessional.LicenseKey = "GEN-LICENSE-KEY";

Neodynamic.SDK.BarcodeReader.BarcodeReader.LicenseOwner = "Your Company";
Neodynamic.SDK.BarcodeReader.BarcodeReader.LicenseKey = "READ-LICENSE-KEY";
// After: one key covers generation and reading across all formats
using IronBarCode;

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

Sämtliche Konfigurationsdateien, Umgebungsvariablen oder Geheimnisspeicher, die Neodynamic-Lizenzschlüssel enthalten, können nach der Überprüfung der Migration außer Betrieb genommen werden.

Beispiele für die Code-Migration

Generieren eines Code-128-Barcodes

Neodynamischer Ansatz:

using Neodynamic.SDK.Barcode;
using System.Drawing.Imaging;

public void GenerateCode128(string data, string outputPath)
{
    var barcode = new BarcodeProfessional();
    barcode.Code = data;
    barcode.Symbology = Symbology.Code128;
    barcode.BarcodeUnit = BarcodeUnit.Pixel;

    System.Drawing.Image image = barcode.GetBarcodeImage();
    image.Save(outputPath, ImageFormat.Png);
}

IronBarcode -Ansatz:

using IronBarCode;

public void GenerateCode128(string data, string outputPath)
{
    BarcodeWriter.CreateBarcode(data, BarcodeEncoding.Code128)
        .SaveAsPng(outputPath);
}

Der System.Drawing.Imaging Import ist nicht mehr erforderlich. Die BarcodeInfo Instanz und ihre Eigenschaftenzuweisungen werden in einen einzelnen Methodenaufruf zusammengefasst. Informationen zu Größenbestimmung, Beschriftung und Ausgabeformatoptionen finden Sie im Leitfaden zum Erstellen von 1D-Barcodes .

Einen QR-Code generieren

Neodynamischer Ansatz:

using Neodynamic.SDK.Barcode;

public void GenerateQrCode(string data, string outputPath)
{
    var barcode = new BarcodeProfessional();
    barcode.Code = data;
    barcode.Symbology = Symbology.QRCode;
    barcode.QRCodeECL = QRCodeErrorCorrectionLevel.H;

    barcode.GetBarcodeImage().Save(outputPath, System.Drawing.Imaging.ImageFormat.Png);
}

IronBarcode -Ansatz:

using IronBarCode;

public void GenerateQrCode(string data, string outputPath)
{
    QRCodeWriter.CreateQrCode(data, 500, QRCodeWriter.QrErrorCorrectionLevel.Highest)
        .SaveAsPng(outputPath);
}

Die Generationsübersetzung ändert nur die API-Oberfläche. Der entscheidende Unterschied, der durch diese Migration entsteht, ist, dass dieselbe Anwendung nun auch die von ihr generierten QR-Codes lesen kann, und zwar mit derselben IronBarcode -Bibliothek und derselben Lizenz. Eine ausführliche Beschreibung der Erstellung von 2D-Barcodes finden Sie im Leitfaden zur Erstellung von 2D-Barcodes .

Lesen von 1D-Barcodes

Neodynamischer Ansatz:

using Neodynamic.SDK.BarcodeReader;
using System.Drawing;

public string[] Read1DBarcodes(string imagePath)
{
    using var bitmap = new Bitmap(imagePath);
    var reader = new BarcodeReader();
    var results = reader.Read(bitmap);
    return results?.Select(r => r.Value).ToArray() ?? Array.Empty<string>();
}

IronBarcode -Ansatz:

using IronBarCode;

public string[] Read1DBarcodes(string imagePath)
{
    var results = BarcodeReader.Read(imagePath);
    return results.Select(r => r.Value).ToArray();
}

Der Bitmap Konstruktion und System.Drawing Import werden entfernt. IronBarcode akzeptiert den Dateipfad direkt. Der result.Value Eigenschaftenname ist in beiden APIs gleich, sodass nachfolgender Code, der die zurückgegebenen Werte verarbeitet, sich nicht ändert. Informationen zu Optionen für das Einlesen und die Vorverarbeitung von Bildern mit mehreren Barcodes finden Sie im Leitfaden zum Einlesen von Barcodes aus Bildern .

Lesen von QR-Codes (bisher unmöglich)

Neodynamischer Ansatz:

// This method could not be implemented with Neodynamic Barcode Reader
public string ReadQrCode(string imagePath)
{
    throw new NotSupportedException(
        "Neodynamic Barcode Reader does not support QR codes");
}

IronBarcode -Ansatz:

using IronBarCode;

public string ReadQrCode(string imagePath)
{
    var result = BarcodeReader.Read(imagePath).FirstOrDefault();
    return result?.Value;
}

Jeder throw new NotSupportedException(...) Platzhalter, der 2D-Barcodelesen referenziert, wird zu einem Standardleseaufruf. Der Methodenrumpf ändert sich von einer ausgelösten Ausnahme zu einer funktionierenden Implementierung. Für QR-Codes ist keine besondere Behandlung erforderlich; IronBarcode erkennt das Format automatisch.

Barcodes aus PDF-Dokumenten lesen (Neue Funktion)

Neodynamischer Ansatz:

// Neodynamic Reader cannot read barcodes from PDF files directly
// An image extraction step using a separate library was required before reading
//Neindirect equivalent exists
C#

IronBarcode -Ansatz:

using IronBarCode;

public void ReadBarcodesFromPdf(string pdfPath)
{
    var results = BarcodeReader.Read(pdfPath);

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

IronBarcode liest Barcodes direkt aus PDF-Dokumenten über alle Seiten hinweg. Im Ergebnis wird die Seitenzahl angezeigt, auf der der jeweilige Barcode gefunden wurde. Diese Funktion erfordert keine zusätzliche Bibliothek und keinen Zwischenschritt zur Bildextraktion.

Neodynamic Barcode API zu IronBarcode Mapping-Referenz

Neodynamische APIIronBarcode ÄquivalentNotizen
BarcodeInfo.LicenseOwner = "..."IronBarCode.License.LicenseKey = "key"Zusammengeführt zu einem einzigen Schlüssel
BarcodeInfo.LicenseKey = "..."(part of single key above)Kein separates Eigentümerfeld
Neodynamic.SDK.BarcodeReader.BarcodeReader.LicenseOwner(removed)Nicht erforderlich
Neodynamic.SDK.BarcodeReader.BarcodeReader.LicenseKey(removed)Nicht erforderlich
new BarcodeInfo()BarcodeWriter.CreateBarcode(data, encoding)Statisch, keine Instanz
barcode.Value = dataErster Parameter von CreateBarcodeBei der Konstruktion bestanden
barcode.Symbology = Symbology.Code128BarcodeEncoding.Code128Zweiter Parameter
barcode.Symbology = Symbology.QRCodeBarcodeEncoding.QRCodeVollständige Hin- und Rückreise wird jetzt unterstützt
barcode.QRCodeECL = QRCodeErrorCorrectionLevel.HQRCodeWriter.QrErrorCorrectionLevel.HighestUnterschiedlicher Klasseneintritt
barcode.GetImage().Save(path, ImageFormat.Png).SaveAsPng(path)Fluent, kein ImageFormat-Enum
BarcodeReader.Read(bitmap)BarcodeReader.Read(imagePath)Der Dateipfad ersetzt die Bitmap.
result.Valueresult.ValueGleicher Eigenschaftsname
Symbology.DataMatrixBarcodeEncoding.DataMatrixNur Generation → Generation und Lesen
throw new NotSupportedException(...) für 2D-LesenBarcodeReader.Read(imagePath)Durch eine funktionierende Implementierung ersetzen.

Gängige Migrationsprobleme und Lösungen

Ausgabe 1: Abholanordnung für zwei Pakete

Problem: Wenn Entwickler nur ein Neodynamic-Paket entfernen und das andere beibehalten, kommt es zu Kompilierungsfehlern, da die beiden SDKs keine gemeinsamen Typen haben, aber einige Quelldateien beide Namespaces in derselben Datei importieren können.

Lösung: Entfernen Sie beide Pakete, bevor Sie Änderungen am Quellcode vornehmen. Nachdem beide entfernt wurden, suchen Sie nach allen using Neodynamic.SDK.Barcode und using Neodynamic.SDK.BarcodeReader Direktiven und entfernen Sie diese gemeinsam:

dotnet remove package Neodynamic.SDK.Barcode
dotnet remove package Neodynamic.SDK.BarcodeReader
SHELL

Anschließend prüfen mit:

grep -r "Neodynamic.SDK" --include="*.cs" .
SHELL

Problem 2: Bereinigung der Dual-Lizenz-Konfiguration

Problem: Die beiden Neodynamic-Lizenzblöcke erscheinen oft an unterschiedlichen Stellen — einer in der Anwendungsstartklasse und einer in einem Dienstinitialisierer. Wird nur ein Block entfernt, verweist der verbleibende Code auf einen Namespace, der nicht mehr existiert, und lässt sich nicht kompilieren.

Lösung: Suchen Sie nach allen vier Neodynamic-Lizenzeigenschaften und entfernen Sie diese gemeinsam, bevor Sie den IronBarcode -Schlüssel hinzufügen:

grep -r "LicenseOwner\|LicenseKey" --include="*.cs" .
SHELL

Ersetzen Sie alle vier Zeilen durch eine einzige Zuweisung:

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

Problem 3: Entfernung der Ausnahme "NotSupportedException" aus Catch-Blöcken

Problem: Einige Codebasen, die den Neodynamic Reader verwendeten, fügten catch (NotSupportedException) Blöcke hinzu, um das stille Versagen beim Lesen von 2D-Barcodes zu handhaben. Diese Catch-Blöcke müssen zusammen mit dem Code, der die Ausnahme auslöst, entfernt werden; andernfalls verweist die Catch-Klausel auf einen Codepfad, der sich nicht mehr ergeben kann.

Lösung: Suchen Sie nach NotSupportedException in barcodenbezogenen Dateien und überprüfen Sie jeden Vorkommnis. Wurde die Ausnahme als Reaktion auf einen Leseversuch im 2D-Format ausgelöst, entfernen Sie sowohl den throw- als auch den catch-Block:

grep -r "NotSupportedException" --include="*.cs" .
SHELL

Ersetzen Sie den ausführenden Methodenrumpf durch BarcodeReader.Read(imagePath) und entfernen Sie die entsprechende Catch-Klausel von jedem Anrufer.

Checkliste zur Migration von Neodynamic-Barcodes

Vor der Migration

  • Suchen Sie nach allen Neodynamic Paketreferenzen: grep -r "Neodynamic.SDK" --include="*.csproj" .
  • Suchen Sie nach allen Neodynamic Using-Direktiven: grep -r "using Neodynamic" --include="*.cs" .
  • Suche nach Speicherorten der Lizenzkonfiguration: grep -r &quot;LicenseOwner\|LicenseKey&quot; --include=&quot;*.cs&quot; .
  • Suchen Sie nach allen BarcodeInfo Instantiierungsstellen: grep -r "new BarcodeInfo\(\)" --include="*.cs" .
  • Suchen Sie nach allen Neodynamic Leseaufrufen: grep -r "BarcodeReader.Read" --include="*.cs" .
  • Suchen Sie nach allen NotSupportedException Verwendungen in Barcode-Pfaden: grep -r "NotSupportedException" --include="*.cs" .
  • Identifizieren Sie alle Drittanbieterbibliotheken (ZXing .NET oder ähnliche), die speziell zur Schließung der 2D-Leselücke hinzugefügt wurden – diese können nach der Migration entfernt werden.
  • Alle Neodynamic-Lizenzschlüssel protokollieren, damit sie nach der Überprüfung aus den geheimen Speichern entfernt werden können.

Aufgaben der Code-Aktualisierung

  1. Führen Sie dotnet remove package Neodynamic.SDK.Barcode aus
  2. Führen Sie dotnet remove package Neodynamic.SDK.BarcodeReader aus
  3. Führen Sie dotnet add package IronBarcode aus
  4. Entfernen Sie alle using Neodynamic.SDK.Barcode und using Neodynamic.SDK.BarcodeReader Direktiven
  5. Fügen Sie using IronBarCode in allen Dateien hinzu, die Barcode-Operationen ausführen
  6. Entfernen Sie beide Neodynamic-Lizenzkonfigurationsblöcke.
  7. Fügen Sie IronBarCode.License.LicenseKey = "YOUR-LICENSE-KEY" einmal beim Anwendungsstart hinzu
  8. Ersetzen Sie new BarcodeInfo() + Eigenschaften-Zuweisungen + barcode.GetImage().Save(...) durch BarcodeWriter.CreateBarcode(data, encoding).SaveAsPng(path)
  9. Ersetzen Sie QRCodeWriter Muster entsprechend mit QRCodeWriter.CreateQrCode()
  10. Ersetzen Sie BarcodeReader.Read(bitmap) Aufrufe, indem Sie die new Bitmap(imagePath) Konstruktion entfernen und den Dateipfad direkt an BarcodeReader.Read(imagePath) übergeben
  11. Entfernen Sie alle throw new NotSupportedException(...) Platzhalter für 2D-Lesen und ersetzen Sie diese mit BarcodeReader.Read(imagePath)
  12. Entfernen Sie die entsprechenden catch (NotSupportedException) Blöcke von Anrufern
  13. Entfernen Sie alle Drittanbieterbibliotheken, die ausschließlich hinzugefügt wurden, um die Leselücke von Neodynamic 2D zu schließen.

Post-Migrationstests

  • Überprüfen Sie, ob die Generierung von Code-128-Barcodes Ausgaben erzeugt, die den vorherigen Abmessungen und DPI-Einstellungen entsprechen.
  • Überprüfen Sie, ob die QR-Code-Generierung einen scannbaren Code erzeugt.
  • Überprüfen, ob das Einlesen von 1D-Barcodes dieselben Werte liefert wie die vorherige Implementierung des Neodynamic Readers.
  • Verifizieren Sie, dass das QR-Code-Lesen bei Bildern erfolgreich ist, die zuvor NotSupportedException ausgelöst haben
  • Überprüfen Sie, ob das Lesen von DataMatrix und PDF417 erfolgreich ist, wenn diese Formate in der Eingabe der Anwendung vorhanden sind.
  • Testen Sie das Lesen von PDF-Barcodes, wenn die Anwendung PDF-Dokumente verarbeitet.
  • Stellen Sie sicher, dass alle Verweise auf Neodynamic-Lizenzschlüssel aus Konfigurationsdateien und Umgebungsvariablen entfernt wurden.
  • Stellen Sie sicher, dass die Drittanbieter-2D-Bibliothek (falls vorhanden) vollständig entfernt wurde und keine verbleibenden Importe darauf verweisen.

Wichtigste Vorteile der Migration zu IronBarcode

Einheitliche Lese- und Schreibfähigkeit: Nach der Migration kann jede Symbolik, die IronBarcode generieren kann, auch über dieselbe Bibliothek wieder eingelesen werden. Die Asymmetrie zwischen Generator und Leser von Neodynamic – bei der QR-Codes, DataMatrix, PDF417 und Aztec zwar erzeugt, aber nicht konsumiert werden konnten – wird beseitigt. Anwendungen, die bisher einen Workaround oder eine dritte Bibliothek zum Lesen von 2D-Daten benötigten, erhalten diese Funktionalität nun ohne zusätzlichen Integrationsaufwand.

Einzellizenzverwaltung: Ein NuGet Paket, ein Lizenzschlüssel und ein Konfigurationsblock ersetzen zwei separate Produktabonnements. Erneuerung, Schlüsselrotation und Management von Umgebungsvariablen werden halb so komplex. Die Reduzierung des Verwaltungsaufwands ist ein fortlaufender Prozess und kein einmaliger Gewinn.

Native PDF-Barcode-Lesung: IronBarcode liest Barcodes direkt aus PDF-Dokumenten und gibt Metadaten zur Seitenzahl zusammen mit den Barcode-Werten zurück. Anwendungen, die Versandmanifeste, Rechnungsdokumente oder medizinische Aufzeichnungen mit eingebetteten Barcodes verarbeiten, benötigen keinen Zwischenschritt der Bildextraktion oder eine zusätzliche PDF-Bibliothek mehr, um das Lesen von Barcodes zu unterstützen. Die vollständige Liste der unterstützten Barcode-Formate sowie alle abgedeckten Symbologien und Eingabetypen finden Sie hier.

Elimination der Abhängigkeit von System.Drawing: Die SDKs von Neodynamic hängen von System.Drawing ab, was eine zusätzliche Konfiguration der nativen Bibliothek unter Linux und in Docker-Containern erfordert. IronBarcode erfordert keine System.Drawing Abhängigkeit, was bedeutet, dass derselbe Codebestand auf Windows, Linux und in containerisierten Cloud-Umgebungen ohne plattformspezifische Konfigurationsänderungen läuft.

Vereinfachte Lizenzkosten für volle Funktionalität: Ein Projekt, das sowohl Neodynamic SDKs als auch eine dritte Bibliothek zum Lesen von 2D-Code benötigte, musste für drei Abhängigkeiten bezahlen, um das zu erreichen, was IronBarcode unter einer einzigen Lizenz bietet. Bei Projekten, die sowohl die Generierung als auch das Lesen von 2D-Daten erfordern, konsolidiert die Migration sowohl den technischen Aufwand als auch die Lizenzkosten in einem einzigen kommerziellen Produkt. Aktuelle Preisinformationen finden Sie auf derIronBarcode Lizenzseite .

Hinweis:: Neodynamic und ZXing.NET sind eingetragene Marken ihrer jeweiligen Eigentümer. Diese Website ist nicht mit, unterstützt oder gesponsert von Neodynamic oder ZXing.NET. 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.