IRONSOFTWAREHOME
VIDEOS

Migrating from Telerik RadBarcodeto IronBarcode

Curtis Chau
Curtis Chau
Updated: 1. August 2026

Dieser Leitfaden bietet einen vollständigen Migrationspfad von Telerik RadBarcodezu IronBarcode for .NET-Entwickler, die die Grenzen dessen erreicht haben, was RadBarcode und RadBarcodeReader leisten können. Es umfasst Paketaustausch, Namespace-Aktualisierungen, Lizenzinitialisierung, Beispiele für Migrationen auf Codeebene, eine API-Mapping-Referenz und eine Checkliste zur Überprüfung der Vollständigkeit der Migration. Die Beispiele konzentrieren sich auf die Szenarien, die bei Telerik-Barcode-Migrationen am häufigsten auftreten: Austausch von XAML-Steuerelementen, Erweiterung des Leseformats, serverseitige Bereitstellung und PDF-Verarbeitung.

Warum von Telerik RadBarcodemigrieren?

Telerik RadBarcode-Migrationen werden durch konkrete technische Anforderungen ausgelöst, die die bestehenden Komponenten nicht erfüllen können. Die folgenden Gründe stellen die am häufigsten von Teams gemeldeten Bedingungen dar, die diesen Übergang abgeschlossen haben oder derzeit evaluieren.

2D-Lesegrenze: Die RadBarcodeReader-Komponente in WPF und die RadBarcodeReader-Komponente in WinForms teilen denselben Lesemotor, der durch das DecodeType-Enum begrenzt ist. Diese Aufzählung enthält Einträge für 1D lineare Formate – Code128, Code39, EAN13, EAN8, UPCA, UPCE, Codabar, ITF – und sonst nichts. Für QR Code, DataMatrix, PDF417 oder Aztec existiert kein Eintrag. Wenn eine neue Anforderung eingeht, eingehende QR-Codes zu verarbeiten oder DataMatrix-Etiketten aus gescannten Dokumenten zu lesen, wird die DecodeType-Einschränkung zu einem harten Blocker ohne verfügbare Lösung innerhalb der Telerik-Produktfamilie.

Plattform-Code-Fragmentierung: Lesen mit Telerik erfordert UI-Framework-Abhängigkeiten: RadBarcodeReader verwendet WPF-Typen (BitmapImage) und RadBarcodeReader verwendet WinForms-Typen (System.Drawing.Image). Diese Typen können nicht in einer gemeinsam genutzten .NET Bibliothek, einer Konsolenanwendung, einem ASP.NET Core Projekt oder einem Blazor -Server referenziert werden. Ein Team, das die Barcode-Leselogik in einer gemeinsamen Serviceschicht zentralisieren möchte, kann dies mit Telerik-Typen nicht tun – die Reader-Implementierungen sind permanent an ihre jeweiligen UI-Frameworks gebunden.

PDF-Verarbeitungslücke: Viele Barcode-Workflows arbeiten mit Dokumenten anstatt mit Bilddateien. Telerik RadBarcodeReader akzeptiert nur Bitmap-Bilder. Das Lesen eines in eine PDF-Seite eingebetteten Barcodes erfordert die Konvertierung der Seite in ein Bild mithilfe einer separaten Bibliothek und die anschließende Zuführung dieses Bildes zum Telerik-Reader – wodurch eine zusätzliche Abhängigkeit entsteht und man dennoch nur 1D-Ergebnisse erhält. Für Teams, deren Dokumente hauptsächlich im PDF-Format vorliegen, führt diese Umgehungslösung zu zusätzlichen Reibungspunkten an jedem Punkt des Arbeitsablaufs.

Abonnementlizenzierung: Die Telerik-Barcode-Funktionalität wird nicht als eigenständiges Paket verkauft. Der Zugriff auf RadBarcode und RadBarcodeReader ist mit plattformspezifischen UI-Suite-Abonnements gebündelt – pro Plattform beginnen Telerik UI-Abonnements bei $749 pro Entwickler pro Jahr (Lite-Stufe) und DevCraft UI kostet $1.149 pro Entwickler pro Jahr für alle Plattformen zusammen, gemäß den von Telerik veröffentlichten Preisen 2026. Teams, deren Hauptanforderung die Barcode-Funktionalität ist und die keine anderen Telerik UI-Steuerelemente verwenden, tragen die vollen Kosten der Suite für eine Komponente, die nur einen kleinen Teil des gekauften Produkts ausmacht.

Das grundsätzliche Problem

Die deutlichste Ausprägung der Lesebeschränkung von Telerik besteht darin, dass die Komponente, die ein Format generiert, dieses nicht durch den Reader zurückführen kann:

// Telerik — generates a QR code, then cannot read it back
var qrBarcode = new RadBarcode();
qrBarcode.Value = "https://example.com/order/4821";
qrBarcode.Symbology = new QRCode { ErrorCorrectionLevel = ErrorCorrectionLevel.H };
// Save to file...

// Attempt to read the same QR code:
var reader = new RadBarcodeReader();
// DecodeType.QR does not exist — QR cannot be added to this list
reader.DecodeTypes = new[] { DecodeType.Code128, DecodeType.EAN13 };
var bitmap = new BitmapImage(new Uri("qr-output.png", UriKind.Absolute));
var result = reader.Decode(bitmap);
// result == null — always, for any QR code image

IronBarcode schließt diese Lücke. Generierung und Lesen verwenden dasselbe Paket, und die Lese-Engine erkennt QR-Codes, DataMatrix, PDF417 und alle anderen Formate automatisch:

// NuGet: dotnet add package IronBarcode
using IronBarCode;

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

// Generate a QR code
BarcodeWriter.CreateBarcode("https://example.com/order/4821", BarcodeEncoding.QRCode)
             .SaveAsPng("qr-output.png");

// Read that same QR code back — no format specification needed
var results = BarcodeReader.Read("qr-output.png");
Console.WriteLine(results.First().Value);
// Output: https://example.com/order/4821

IronBarcode vs. Telerik RadBarcode: Funktionsvergleich

FeatureTelerik RadBarcodeIronBarcode
1D-Barcode-GenerierungJa (alle Plattformen)Ja
2D-Barcode-GenerierungJa (alle Plattformen)Ja
1D-Barcode-LesenNur WPF + WinFormsJa (alle Plattformen)
QR-Code-LesenNur WPFJa (alle Plattformen)
DataMatrix-LesungNur WPFJa (alle Plattformen)
PDF417 lesenNur WPFJa (alle Plattformen)
AztekenlesungNicht verfügbarJa
PDF-Datei lesenNicht verfügbarJa (Muttersprachler)
Automatische FormaterkennungNein – DecodeType erforderlichJa
ASP.NET Core lesenNicht verfügbarJa
Blazor -LesungNicht verfügbarJa
Docker / Linux-LesenNicht verfügbarJa
Gemeinsame ServicebibliothekNicht möglich (Plattformtypen)Ja
Statische Lese-APINein (erfordert Instanz)Ja
Eigenständiges NuGet PaketNein – UI- Suite erforderlichJa
Unbefristete LizenzUnbefristete Stufe neben Abonnement verfügbarJa — ab 749 $ (Lite)

Schnellstart

Schritt 1: Ersetzen des NuGet-Pakets

Entfernen Sie das Telerik UI-Paket für die Plattform(en) in Ihrem Projekt:

# WPF
dotnet remove package Telerik.UI.for.Wpf.60.Xaml

# WinForms
dotnet remove package Telerik.UI.for.WinForms.Common
dotnet remove package Telerik.UI.for.WinForms.Barcode

# Blazor
dotnet remove package Telerik.UI.for.Blazor
SHELL

Wenn Ihr Projekt auch andere Telerik-Steuerelemente aus demselben Paket verwendet, lassen Sie das Paket an Ort und Stelle und fahren Sie mit Schritt 2 fort. Sie werden die barcodespezifischen API-Aufrufe entfernen, ohne das gemeinsam genutzte Paket zu entfernen.

IronBarcode installieren:

dotnet add package IronBarcode
SHELL

Ein Paket umfasst WPF, WinForms, ASP.NET Core, Blazor Server, Konsolenanwendungen, Docker, Azure Functions und AWS Lambda. Die vollständigen Details zur Plattformkompatibilität dokumentieren die genauen unterstützten .NET Versionen und Betriebssystemziele.

Schritt 2: Namespaces aktualisieren

Entfernen Sie die Telerik-Barcode-Namensraumimporte und ersetzen Sie sie durch den IronBarcode Namensraum:

// Remove these namespace imports:
// using Telerik.Windows.Controls.Barcode;      // WPF reader and generator
// using Telerik.Windows.Controls;              // WPF general
// using Telerik.WinControls.UI;               // WinForms
// using Telerik.WinControls.UI.Barcode;        // WinForms barcode reader

// Add this:
using IronBarCode;

Schritt 3: Lizenz initialisieren

Ersetzen Sie die Telerik-Lizenzinitialisierung durch die IronBarcode -Schlüsselzuweisung beim Anwendungsstart:

// Remove:
// Telerik.WinControls.TelerikLicenseManager.InstallLicense("key");

// Add at application startup (Program.cs, App.xaml.cs, or composition root):
IronBarCode.License.LicenseKey = "YOUR-LICENSE-KEY";

Die Schlüsselzuweisung erfolgt einmalig am Einstiegspunkt der Anwendung. Es gibt keine Lizenzdatei, die bereitgestellt werden muss, keinen plattformspezifischen Initialisierungspfad und keine separate Konfiguration für WPF im Vergleich zu ASP.NET Core.

Beispiele für die Code-Migration

Barcode-Generierung: XAML-Steuerung zu codebasierter API

Teleriks Generierung in WPF ist deklarativ – das RadBarcode-XAML-Element wird direkt im UI-Baum gerendert. IronBarcode generiert Barcodes im Code und gibt ein GeneratedBarcode-Objekt zurück, das als Datei gespeichert oder in ein BitmapSource für die WPF-Anzeige konvertiert werden kann.

Telerik-Ansatz:

<!-- WPF XAML — RadBarcode renders inline in the UI -->
<Window xmlns:telerik="http://schemas.telerik.com/2008/xaml/presentation">
    <telerik:RadBarcode Value="PROD-2026-00184" Symbology="Code128" />
</Window>
XML
@* Blazor — TelerikBarcode renders as a Razor component *@
<TelerikBarcode Value="PROD-2026-00184" Type="@BarcodeType.Code128" />
Text

IronBarcode -Ansatz:

// NuGet: dotnet add package IronBarcode
using IronBarCode;

// Save to file — replaces XAML generation + manual export
BarcodeWriter.CreateBarcode("PROD-2026-00184", BarcodeEncoding.Code128)
             .ResizeTo(400, 100)
             .SaveAsPng("barcode.png");

// Display in WPF — assign to an Image control's Source property
var bitmapSource = BarcodeWriter.CreateBarcode("PROD-2026-00184", BarcodeEncoding.Code128)
                                .ToBitmapSource();
barcodeImageControl.Source = bitmapSource;

// Serve in Blazor or ASP.NET Core — return as base64 src attribute
byte[] bytes = BarcodeWriter.CreateBarcode("PROD-2026-00184", BarcodeEncoding.Code128)
                            .ResizeTo(400, 100)
                            .ToPngBinaryData();
string imgSrc = $"data:image/png;base64,{Convert.ToBase64String(bytes)}";

Das BarcodeEncoding-Enum deckt dieselben Symbologien wie das Symbology-Enum von Telerik ab. Die Umstellung auf QR-Code-Generierung ändert lediglich das Enum-Argument. Die IronBarcode Dokumentation bietet vollständige Beispiele für alle Optionen zur Generierung von 2D-Barcodes , einschließlich QR-Fehlerkorrekturstufen und DataMatrix-Dimensionen.

Lesen von Barcodes aus Desktop-Anwendungen

Telerik bietet zwei separate Leser-Klassen für Desktop-Plattformen – RadBarcodeReader für WPF und RadBarcodeReader für WinForms – mit unterschiedlichen Klassennamen, unterschiedlichen Eigenschaftsnamen und unterschiedlichen Eingabetypen. IronBarcode ersetzt beide mit einem einzigen statischen Aufruf, der in jedem Projekttyp identisch funktioniert.

Telerik WPF-Ansatz:

Für das Lesen in WPF wird eine RadBarcodeReader-Instanz, eine explizite DecodeType-Konfiguration, ein BitmapImage-Objekt, das von einer URI geladen wird, und ein Aufruf von reader.Decode() benötigt. Die Ergebnisseigenschaft ist .Text.

using Telerik.Windows.Controls.Barcode;
using System.Windows.Media.Imaging;

public string ReadProductBarcode(string imagePath)
{
    var reader = new RadBarcodeReader();
    reader.DecodeTypes = new DecodeType[]
    {
        DecodeType.Code128,
        DecodeType.Code39,
        DecodeType.EAN13,
        DecodeType.EAN8,
        DecodeType.UPCA,
        DecodeType.UPCE,
        DecodeType.Codabar,
        DecodeType.ITF
    };

    var bitmap = new BitmapImage(new Uri(imagePath, UriKind.Absolute));
    var result = reader.Decode(bitmap);

    return result?.Text ?? "No barcode found";
}

Telerik WinForms-Ansatz:

Die WinForms RadBarcodeReader-Klasse verwendet einen anderen Namen, einen anderen Eigenschaftsnamen (DecodeType singular anstelle von DecodeTypes plural), und nimmt einen System.Drawing.Image anstelle eines BitmapImage an.

using Telerik.WinControls.UI.Barcode;
using System.Drawing;

public string ReadShippingLabel(string imagePath)
{
    var reader = new RadBarcodeReader();
    reader.DecodeType = new DecodeType[]
    {
        DecodeType.Code128,
        DecodeType.ITF,
        DecodeType.EAN13
    };

    using var image = Image.FromFile(imagePath);
    var result = reader.Read(image);

    return result?.Text ?? "No barcode found";
}

IronBarcode -Ansatz:

// NuGet: dotnet add package IronBarcode
using IronBarCode;

public string ReadProductBarcode(string imagePath)
{
    var results = BarcodeReader.Read(imagePath);
    return results.FirstOrDefault()?.Value ?? "No barcode found";
}

BarcodeReader.Read() ist eine statische Methode – kein Leser-Instanz wird benötigt. Es akzeptiert direkt einen Dateipfad-String, ohne dass ein BitmapImage- oder System.Drawing.Image-Laden erforderlich ist. Die Format-Erkennung ist automatisch bei allen über 50 unterstützten Typen. Die Ergebnisseigenschaft ist .Value anstelle von .Text. Dieser Aufruf funktioniert ohne Änderungen sowohl in WPF- als auch in WinForms-Anwendungen – es gibt keine plattformspezifische Variante. Es liest außerdem QR-Codes, DataMatrix und alle anderen im Bild vorhandenen Formate, im Gegensatz zu den Telerik-Lesegeräten, die auf 1D-Formate beschränkt sind.

QR-Codes lesen: Bisher unmöglich mit Telerik

Wenn Ihr Codekommentar oder eine NotSupportedException-Dokumentation enthält, dass QR-Lesen nicht verfügbar ist, ist dies der Ersatz. Es gibt in Telerik keinen Konfigurationspfad, der das Lesen von QR-Codes ermöglicht – dieses Szenario hat kein Telerik-Äquivalent.

Telerik-Ansatz:

// RadBarcodeReader does not support QR codes.
// DecodeType.QR does not exist in the Telerik enum.
public string ReadQrCode(string imagePath)
{
    throw new NotSupportedException(
        "Telerik RadBarcodeReader cannot read QR codes. " +
        "DecodeType.QR is not a valid enum value.");
}

IronBarcode -Ansatz:

// NuGet: dotnet add package IronBarcode
using IronBarCode;

public string ReadQrCode(string imagePath)
{
    // QR codes, DataMatrix, PDF417, and Aztec are all detected automatically
    var results = BarcodeReader.Read(imagePath);
    return results.FirstOrDefault()?.Value ?? "No QR code found";
}

Der gleiche BarcodeReader.Read()-Aufruf, der EAN-13-Barcodes liest, liest auch QR-Codes. Es gibt keine separate Konfiguration für 2D-Formate. Eine vollständige Liste der unterstützten Barcode-Formate für Lese- und Generierungsprozesse finden Sie in der IronBarcode Dokumentation. Diese umfasst alle über 50 Einträge mit formatspezifischen Hinweisen.

Lesen von Barcodes in einem ASP.NET Core -Endpunkt

Telerik bietet keine Barcode-Lesekomponente für ASP.NET Core oder Blazor an. Falls eine bestehende Anwendung hochgeladene Bilder zum Lesen an einen Desktop-Dienst weiterleitet, weil die Webschicht keinen Telerik-Reader besitzt, wird diese Umgehungslösung durch direktes Lesen in der Webschicht ersetzt.

Telerik-Ansatz:

// No Telerik reading API available in ASP.NET Core.
// Workaround: forward uploaded file to a WPF or WinForms service
// that can reference Telerik.Windows.Controls.Barcode.
[HttpPost("read")]
public async Task<IActionResult> ReadBarcode(IFormFile imageFile)
{
    // Must proxy to desktop service — no Telerik reader available here
    var bytes = await ReadAllBytesAsync(imageFile);
    var result = await _desktopBridgeService.ReadAsync(bytes);
    return Ok(result);
}

IronBarcode -Ansatz:

// NuGet: dotnet add package IronBarcode
using IronBarCode;
using Microsoft.AspNetCore.Mvc;

[ApiController]
[Route("api/barcode")]
public class BarcodeController : ControllerBase
{
    [HttpPost("read")]
    public IActionResult ReadBarcode(IFormFile imageFile)
    {
        using var stream = imageFile.OpenReadStream();
        var results = BarcodeReader.Read(stream);
        return Ok(results.Select(r => new
        {
            Format = r.BarcodeType.ToString(),
            Value = r.Value
        }));
    }

    [HttpGet("generate")]
    public IActionResult GenerateBarcode([FromQuery] string data)
    {
        var bytes = BarcodeWriter.CreateBarcode(data, BarcodeEncoding.Code128)
                                 .ResizeTo(400, 100)
                                 .ToPngBinaryData();
        return File(bytes, "image/png");
    }
}

BarcodeReader.Read() akzeptiert direkt einen Stream, sodass der hochgeladene Dateistrom ohne Schreiben auf die Festplatte übergeben wird. Dieser Controller kann ohne Änderungen unter Linux, Docker oder Azure App Service bereitgestellt werden.

Barcodes aus PDF-Dateien lesen

Telerik verfügt über keine PDF-Barcode-Lesefunktion. Das Hinzufügen des PDF-Lesens zu einer bestehenden auf Telerik basierenden Codebasis erfordert eine PDF-Rendering-Bibliothek, um die Seiten zu Bildern zu konvertieren, bevor sie an RadBarcodeReader übergeben werden. IronBarcode liest PDF-Dateien direkt.

Telerik-Ansatz:

// No direct PDF reading support in RadBarcodeReader.
// Workaround: use a separate PDF library to extract page images
using SomePdfLibrary; // third-party dependency
using Telerik.Windows.Controls.Barcode;

public List<string> ReadBarcodesFromPdf(string pdfPath)
{
    var results = new List<string>();
    var pages = PdfRenderer.ExtractPages(pdfPath); // third-party call

    foreach (var pageImage in pages)
    {
        var reader = new RadBarcodeReader();
        reader.DecodeTypes = new[] { DecodeType.Code128, DecodeType.EAN13 };
        var bitmap = ConvertToBitmapImage(pageImage); // conversion required
        var result = reader.Decode(bitmap);
        if (result != null)
            results.Add(result.Text); // 1D only — QR codes on PDF pages are missed
    }
    return results;
}

IronBarcode -Ansatz:

// NuGet: dotnet add package IronBarcode
using IronBarCode;

public List<string> ReadBarcodesFromPdf(string pdfPath)
{
    var results = BarcodeReader.Read(pdfPath);
    return results.Select(r =>
        $"Page {r.PageNumber}: {r.BarcodeType}{r.Value}").ToList();
}

Es wird keine separate PDF-Bibliothek benötigt. Kein Seitenextraktionsschritt. Keine Bildkonvertierung. Übergeben Sie den PDF-Pfad, und IronBarcode verarbeitet alle Seiten und gibt alle Barcodes mit Seitennummerverfolgung zurück. Es werden sowohl 1D- als auch 2D-Barcodes auf PDF-Seiten erkannt.

Telerik RadBarcodeAPI zu IronBarcode Mapping-Referenz

Telerik RadBarcodeIronBarcode
TelerikLicenseManager.InstallLicense("key")IronBarCode.License.LicenseKey = "key"
<telerik:RadBarcode Value="..." Symbology="Code128" />BarcodeWriter.CreateBarcode(data, BarcodeEncoding.Code128)
<TelerikBarcode Type="@BarcodeType.Code128" />Serverseitige Generierung, die ToPngBinaryData() zurückgibt
Symbology.Code128BarcodeEncoding.Code128
Symbology.QRCodeBarcodeEncoding.QRCode
new RadBarcodeReader() (WPF)Statische Klasse – keine Instanz erforderlich
new RadBarcodeReader() (WinForms)Statische Klasse – keine Instanz erforderlich
reader.DecodeTypes = new DecodeType[] { ... } (WPF)Automatische Erkennung – keine Spezifikation erforderlich
reader.DecodeType = new DecodeType[] { ... } (WinForms)Automatische Erkennung – keine Spezifikation erforderlich
reader.Decode(bitmapImage) (WPF)BarcodeReader.Read(imagePath)
reader.Read(drawingImage) (WinForms)BarcodeReader.Read(imagePath)
result.Textresult.Value
result.Symbologyresult.BarcodeType
BitmapImage erforderlich als Eingabe (WPF)Dateipfad, Stream oder Byte-Array akzeptiert
System.Drawing.Image erforderlich als Eingabe (WinForms)Dateipfad, Stream oder Byte-Array akzeptiert
Nur 1D-Formate beim LesenMehr als 50 Formate, einschließlich aller 2D-Typen
WPF- und WinForms-Nur-LesemodusAlle .NET -Plattformen
Keine Unterstützung für das Lesen von PDFsBarcodeReader.Read("file.pdf") — nativ

Gängige Migrationsprobleme und Lösungen

Ausgabe 1: Ersatz für XAML-Barcode-Steuerung

Telerik: <telerik:RadBarcode> ist ein visuelles Steuerelement, das direkt im WPF-UI-Elementbaum gerendert wird. Es kann nicht durch ein Image-Element ohne Code-Behind-Änderungen ersetzt werden.

Lösung: Ersetzen Sie das <telerik:RadBarcode>-Element durch ein <Image>-Steuerelement und generieren Sie den Barcode im Code-Behind. Binden Sie die Image.Source an ein BitmapSource, das von IronBarcode generiert wurde:

// In code-behind or ViewModel
using IronBarCode;

var generated = BarcodeWriter.CreateBarcode(barcodeValue, BarcodeEncoding.Code128)
                             .ResizeTo(400, 100);
BarcodeImage.Source = generated.ToBitmapSource();

Für Blazor ersetzen Sie <TelerikBarcode> durch ein <img>-Element, dessen src-Attribut einen serverseitig generierten base64-codierten PNG empfängt.

Problem 2: Nebenwirkungen der DecodeType-Entfernung

Telerik: Die DecodeTypes- (WPF) oder DecodeType- (WinForms) Eigenschaft filtert, welche Formate der Leser zu erkennen versucht. Durch das Entfernen dieses Filters im Rahmen einer IronBarcode -Migration gibt IronBarcode nun Ergebnisse für alle im Bild vorhandenen Formate zurück, einschließlich der Formate, die zuvor durch den Filter ausgeschlossen wurden.

Lösung: Entfernen Sie den DecodeType-Zuweisungsblock vollständig. Wenn die zusätzlich erkannten Formate unerwartete Ergebnisse in nachgelagerter Logik verursachen — zum Beispiel, wenn der Code davon ausgeht, dass immer nur ein Barcode-Format zurückgegeben wird — fügen Sie optionales Filtern mit BarcodeReaderOptions hinzu:

using IronBarCode;

var options = new BarcodeReaderOptions
{
    ExpectedBarcodeTypes = BarcodeEncoding.Code128 | BarcodeEncoding.EAN13
};
var results = BarcodeReader.Read(imagePath, options);

Dies ist optional. Das Standardverhalten (alle Formate erkennen) ist für die meisten Anwendungsfälle korrekt und liefert Ergebnisse, die mit der vorherigen Telerik-Implementierung nicht möglich waren.

Problem 3: Bereinigung des TelerikLicenseManager

Telerik: Telerik.WinControls.TelerikLicenseManager.InstallLicense(key)-Aufrufe erscheinen beim Anwendungsstart, typischerweise in Program.cs (WinForms) oder App.xaml.cs (WPF). Der Schlüssel wird oft in den App-Einstellungen, einer Konfigurationsdatei oder fest im Startverfahren codiert gespeichert.

Lösung: Entfernen Sie den TelerikLicenseManager.InstallLicense()-Aufruf. Ersetzen Sie es durch die IronBarcode -Schlüsselzuweisung am selben Startort:

// Remove:
// Telerik.WinControls.TelerikLicenseManager.InstallLicense("TELERIK-KEY");

// Add:
IronBarCode.License.LicenseKey = "YOUR-LICENSE-KEY";

Wenn das Telerik-Paket weiterhin installiert bleibt (weil andere Nicht-Barcode Telerik-Steuerelemente noch verwendet werden), sollte der TelerikLicenseManager-Aufruf für diese Steuerelemente beibehalten werden. Den Aufruf nur dann entfernen, wenn die Telerik-Pakete selbst vollständig entfernt werden.

Telerik RadBarcodeMigrations-Checkliste

Vor der Migration anfallende Aufgaben

Prüfen Sie den Quellcode auf jegliche Verwendung von Telerik-Barcodes, bevor Sie Codeänderungen vornehmen:

# License initialization
grep -r "TelerikLicenseManager.InstallLicense" --include="*.cs" .

# XAML generation controls
grep -r "RadBarcode" --include="*.xaml" .
grep -r "TelerikBarcode" --include="*.razor" .

# Code-behind generation references
grep -r "RadBarcode" --include="*.cs" .
grep -r "Symbology\." --include="*.cs" .

# Reading API — WPF
grep -r "RadBarcodeReader" --include="*.cs" .
grep -r "DecodeTypes\." --include="*.cs" .
grep -r "reader\.Decode(" --include="*.cs" .

# Reading API — WinForms
grep -r "BarCodeReader" --include="*.cs" .
grep -r "DecodeType\." --include="*.cs" .
grep -r "reader\.Read(" --include="*.cs" .

# Result property access
grep -r "result\.Text" --include="*.cs" .
grep -r "result\.Symbology" --include="*.cs" .
SHELL

Dokumentieren Sie jedes Spiel. Notieren Sie, welche Dateien XAML-Steuerelemente enthalten, welche Lesecode enthalten und zu welcher Plattform die jeweilige Datei gehört.

Aufgaben der Code-Aktualisierung

  1. Entfernen Sie die Telerik-Barcode- NuGet -Pakete (oder behalten Sie sie bei, falls sie für andere Steuerelemente benötigt werden).
  2. Installieren Sie das IronBarcode-NuGet-Paket in jedem Projekt, das Barcode-Funktionalität benötigt.
  3. Fügen Sie IronBarCode.License.LicenseKey = "YOUR-LICENSE-KEY" an jedem Anwendungsstart-Einstiegspunkt hinzu.
  4. Entfernen Sie Telerik-Namensraum-Importe und fügen Sie using IronBarCode hinzu.
  5. Ersetzen Sie <telerik:RadBarcode>-XAML-Elemente durch <Image>-Steuerelemente.
  6. Generieren Sie Barcode-Bilder im Code-Behind mit BarcodeWriter.CreateBarcode(...).ToBitmapSource().
  7. Ersetzen Sie <TelerikBarcode>-Razor-Komponenten durch Base64-<img>-Quellen, die serverseitig generiert wurden.
  8. Ersetzen Sie new RadBarcodeReader()-Instanzen durch BarcodeReader.Read(path)-statische Aufrufe.
  9. Ersetzen Sie new RadBarcodeReader()-Instanzen durch BarcodeReader.Read(path)-statische Aufrufe.
  10. Löschen Sie alle reader.DecodeTypes = new DecodeType[] { ... } and reader.DecodeType = new DecodeType[] { ... } Blöcke
  11. Ersetzen Sie reader.Decode(bitmapImage)-Aufrufe durch BarcodeReader.Read(imagePath).
  12. Ersetzen Sie reader.Read(drawingImage)-Aufrufe durch BarcodeReader.Read(imagePath).
  13. Benennen Sie result.Text in result.Value um an allen Leseergebnis-Zugriffspunkten.
  14. Benennen Sie result.Symbology in result.BarcodeType an allen Formatprüfpunkten um.
  15. Ersetzen Sie Symbology.Code128 und ähnliche Generierungs-Enum-Werte durch BarcodeEncoding.Code128.
  16. Entfernen Sie TelerikLicenseManager.InstallLicense()-Aufrufe, wo Telerik-Pakete vollständig entfernt wurden.

Post-Migrationstests

  • Überprüfen Sie, ob alle zuvor gelesenen 1D-Barcodes (Code128, EAN13 usw.) weiterhin korrekte Werte liefern.
  • Bestätigen Sie, dass QR-Codes in Testbildern nun erfolgreich gelesen werden, nachdem sie zuvor "null" zurückgegeben hatten.
  • Testen Sie, ob die generierten Barcodes (gespeichert als PNG oder als Bytes bereitgestellt) sichtbar dargestellt und korrekt gescannt werden.
  • Überprüfen Sie, ob ASP.NET Core oder Blazor Endpunkte, die zuvor keine Leseoperationen durchführen konnten, nun korrekt funktionieren.
  • Falls die PDF-Lesefunktion hinzugefügt wurde, überprüfen Sie, ob die Barcodes auf jeder PDF-Seite mit den korrekten Seitenzahlen erkannt werden.
  • Führen Sie die grep-Audit-Befehle aus dem Abschnitt "Vormigration" aus, um zu bestätigen, dass keine weiteren Telerik-Barcode-API-Referenzen mehr vorhanden sind.
  • Stellen Sie sicher, dass IronBarCode.License.LicenseKey vor dem ersten BarcodeReader.Read()- oder BarcodeWriter.CreateBarcode()-Aufruf eingestellt ist.

Wichtigste Vorteile der Migration zu IronBarcode

Vollständige Unterstützung für 2D-Formate: Nach der Migration können QR-Code-, DataMatrix-, PDF417- und Aztec-Formate mit demselben API-Aufruf gelesen werden, der bereits Code128 und EAN13 verarbeitet hat. Es ist keine zusätzliche Konfiguration erforderlich und es wird keine separate Bibliothek für 2D-Formate benötigt. Die Lese-Engine übernimmt die Formaterkennung automatisch.

Einheitliche plattformübergreifende API: Die gleichen BarcodeReader.Read()- und BarcodeWriter.CreateBarcode()-Aufrufe kompilieren und laufen identisch in WPF, WinForms, ASP.NET Core, Blazor, Konsolenanwendungen und Docker-Containern. Die einmal in einer gemeinsam genutzten Servicebibliothek geschriebene Barcode-Logik funktioniert ohne Änderungen für jeden Projekttyp in der Lösung.

Native PDF-Dateiverarbeitung: IronBarcode liest Barcodes direkt aus PDF-Dateien, verarbeitet alle Seiten und gibt Ergebnisse mit Seitenzahlen-Metadaten zurück. Arbeitsabläufe, die zuvor eine PDF-Rendering-Bibliothek Plus einen Telerik-Leseschritt erforderten, werden zu einem einzigen Methodenaufruf zusammengefasst, wodurch die Abhängigkeit von Drittanbietern und der Zwischenschritt der Bildkonvertierung entfallen.

Wegfall der Abonnementabhängigkeit für den Barcode-Zugriff: Nach der Migration ist die Barcode-Funktionalität über das unbefristete Lizenzmodell von IronBarcode verfügbar. Für den fortgesetzten Zugriff ist keine jährliche Erneuerung erforderlich. Teams, deren Hauptanwendung der Telerik- Suite im Barcode-Bereich liegt, reduzieren ihren wiederkehrenden Lizenzaufwand auf eine einmalige Kostenbelastung.

Vereinfachte Codebasis: Der DecodeType-Konfigurationsblock, der BitmapImage-Ladeschritt, die plattformspezifische Leserklassen-Auswahl und die result.Text-Eigenschaftskette werden alle durch einen einzigen statischen Methodenaufruf mit einer sich automatisch erkennenden Ergebnis-Sammlung ersetzt. Code, der zuvor unterschiedliche Implementierungen für das Lesen in WPF und WinForms erforderte, wird in einer einzigen gemeinsamen Implementierung zusammengefasst.

Hinweis:: Telerik ist ein eingetragenes Warenzeichen seines jeweiligen Eigentümers. Diese Website ist nicht mit Progress Software verbunden, wird nicht von dieser befürwortet 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.