IRONSOFTWAREHOME
FILMY

Migracja z Telerik RadBarcode do IronBarcode

Curtis Chau
Curtis Chau
Updated: 1 sierpnia 2026

Ten przewodnik obejmuje pełną ścieżkę migracji zTelerik RadBarcodedo IronBarcode dla programistów .NET, którzy osiągnęli ograniczenia możliwości RadBarcode i RadBarcodeReader. Obejmuje to wymianę pakietów, aktualizacje przestrzeni nazw, inicjalizację licencji, przykłady migracji na poziomie kodu, Dokumentację API oraz listę kontrolną do weryfikacji zakończenia migracji. Przykłady skupiają się na scenariuszach najczęściej spotykanych podczas migracji kodów kreskowych Telerik: wymianie kontrolki XAML, rozszerzeniu formatów odczytu, wdrożeniu po stronie serwera oraz przetwarzaniu plików PDF.

Dlaczego warto przejść z Telerik RadBarcode

Migracje Telerik RadBarcode są wywoływane przez konkretne wymagania techniczne, których istniejące komponenty nie są w stanie spełnić. Poniższe powody odzwierciedlają warunki najczęściej zgłaszane przez zespoły, które zakończyły lub oceniają tę zmianę.

Granice odczytu 2D: Komponent RadBarcodeReader w WPF i komponent RadBarcodeReader w WinForms korzystają z tego samego silnika odczytu, który jest ograniczony przez enum DecodeType. Ta enum zawiera wpisy dla formatów liniowych 1D — Code128, Code39, EAN13, EAN8, UPCA, UPCE, Codabar, ITF — i nic więcej. Nie ma wpisów dotyczących QR Code, DataMatrix, PDF417 ani Aztec. Kiedy pojawia się nowe wymaganie przetwarzania przychodzących kodów QR lub odczytywania etykiet DataMatrix ze zeskanowanych dokumentów, ograniczenie DecodeType staje się nieprzekraczalną przeszkodą bez dostępnych obejść w rodzinie produktów Telerik.

Fragmentacja kodu platformy: Odczyt z Telerik wymaga zależności od frameworków UI: RadBarcodeReader korzysta z typów WPF (BitmapImage), a RadBarcodeReader korzysta z typów WinForms (System.Drawing.Image). Nie można odwoływać się do tych typów w współdzielonej bibliotece .NET, aplikacji konsolowej, projekcie ASP.NET Core ani serwerze Blazor. Zespół, który chce scentralizować logikę odczytu kodów kreskowych w warstwie usług współdzielonych, nie może tego zrobić przy użyciu typów Telerik — implementacje czytników są trwałe powiązane z odpowiednimi frameworkami UI.

Luka w przetwarzaniu plików PDF: Wiele procesów związanych z BarCode opiera się na dokumentach, a nie na plikach graficznych. Telerik RadBarcodeReader akceptuje wyłącznie obrazy bitmapowe. Odczytanie BarCoda osadzonego na stronie PDF wymaga konwersji strony na obraz przy użyciu oddzielnej biblioteki, a następnie przekazania tego obrazu do czytnika Telerik — co powoduje dodanie zależności, a mimo to uzyskuje się jedynie wyniki 1D. Dla zespołów, których dokumenty są głównie w formacie PDF, to obejście powoduje utrudnienia na każdym etapie przepływu pracy.

Licencjonowanie w ramach subskrypcji: Funkcja BARCODE Telerik nie jest sprzedawana jako samodzielny pakiet. Dostęp do RadBarcode i RadBarcodeReader jest zintegrowany z subskrypcjami zestawów UI specyficznych dla platformy — subskrypcje Telerik UI dla każdej platformy zaczynają się od 749 USD na dewelopera rocznie (Lite tier), a DevCraft UI kosztuje 1 149 USD na dewelopera rocznie dla wszystkich platform łącznie, zgodnie z opublikowanym cennikiem Telerik na 2026 rok. Zespoły, których głównym wymaganiem jest funkcjonalność BarCode i które nie korzystają z innych elementów sterujących Telerik UI, ponoszą pełny koszt Suite za komponent, który stanowi niewielką część zakupionego produktu.

Podstawowy problem

Najbardziej wyraźnym przejawem ograniczenia odczytu w Telerik jest to, że komponent generujący format nie może go przesłać w obie strony przez czytnik:

// 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 wypełnia tę lukę. Generowanie i odczyt odbywa się za pomocą tego samego pakietu, a silnik odczytu automatycznie wykrywa kody QR, DataMatrix, PDF417 i wszystkie inne formaty:

// 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 a Telerik RadBarcode: porównanie funkcji

FunkcjaTelerik RadBarcodeIronBarcode
Generowanie kodów kreskowych 1DTak (wszystkie platformy)Tak
Generowanie kodów kreskowych 2DTak (wszystkie platformy)Tak
Odczytywanie kodów kreskowych 1DTylko WPF + WinFormsTak (wszystkie platformy)
Odczytywanie kodów QRTylko WPFTak (wszystkie platformy)
Odczyt DataMatrixTylko WPFTak (wszystkie platformy)
Odczyt PDF417Tylko WPFTak (wszystkie platformy)
Czytanie azteckieNiedostępneTak
Odczytywanie plików PDFNiedostępneTak (język ojczysty)
Automatyczne wykrywanie formatowaniaNie — wymagany DecodeTypeTak
Lektura dotycząca ASP.NET CoreNiedostępneTak
Lektura dotycząca BlazorNiedostępneTak
Docker / Linux – lekturaNiedostępneTak
Biblioteka usług współdzielonychNiemożliwe (typy platform)Tak
Statyczne API odczytuNie (wymagana instancja)Tak
Samodzielny pakiet NuGetNie — Suite UI wymaganaTak
Licencja wieczystaDostępny jest wieczysty tier obok subskrypcjiTak — od $999 (Lite)

Szybki start

Krok 1: Zastąp pakiet NuGet

Usuń pakiet Telerik UI dla platformy lub platform w swoim projekcie:

# 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

Jeśli w projekcie wykorzystywane są również inne kontrolki Telerik z tego samego pakietu, należy pozostawić pakiet na miejscu i przejść do kroku 2. Wywołania API dotyczące kodów kreskowych zostaną usunięte bez usuwania wspólnego pakietu.

Zainstaluj IronBarcode:

dotnet add package IronBarcode
SHELL

Jeden pakiet obejmuje WPF, WinForms, ASP.NET Core, Blazor Server, aplikacje konsolowe, Docker, Azure Functions oraz AWS Lambda. Pełne informacje o kompatybilności platformy dokumentują dokładne wersje .NET i obsługiwane systemy operacyjne.

Krok 2: Aktualizacja przestrzeni nazw

Usuń importy przestrzeni nazw Telerik BarCode i zastąp je przestrzenią nazw IronBarcode:

// 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;

Krok 3: Inicjalizacja licencji

Zastąp inicjalizację licencji Telerik przypisaniem klucza IronBarcode podczas uruchamiania aplikacji:

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

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

Kluczowe zadanie jest wykonywane jednokrotnie w punkcie wejścia aplikacji. Nie ma pliku licencji do wdrożenia, ścieżki inicjalizacji dla poszczególnych platform ani oddzielnej konfiguracji dla WPF i .NET Core.

Przykłady migracji kodu

Generowanie kodu BarCode: kontrolka XAML do API opartego na kodzie

Generacja Telerik w WPF jest deklaratywna — element XAML RadBarcode renderuje się bezpośrednio w drzewie UI. IronBarcode generuje kody kreskowe w kodzie i zwraca obiekt GeneratedBarcode, który można zapisać jako plik lub przekonwertować na BitmapSource do wyświetlenia w WPF.

Podejście Telerik:

<!-- 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

Podejście IronBarcode:

// 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)}";

Enum BarcodeEncoding obejmuje te same symbologie co enum Symbology firmy Telerik. Przejście na generowanie kodów QR zmienia jedynie argument enum. Pełen zakres opcji generowania kodów kreskowych 2D, w tym poziomy korekcji błędów QR i wymiary DataMatrix, przedstawiono w dokumentacji IronBarcode wraz z kompletnymi przykładami.

Odczytywanie BarCodes z aplikacji desktopowych

Telerik dostarcza dwie oddzielne klasy czytników dla platform desktopowych — RadBarcodeReader dla WPF i RadBarcodeReader dla WinForms — z różnymi nazwami klas, różnymi nazwami właściwości i różnymi typami wejścia. IronBarcode zastępuje oba pojedynczym statycznym wywołaniem, które działa identycznie w każdym typie projektu.

Podejście Telerik WPF:

Odczyt WPF wymaga instancji RadBarcodeReader, jawnej konfiguracji DecodeType, obiektu BitmapImage załadowanego z URI i wywołania reader.Decode(). Właściwość wyniku to .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";
}

Podejście Telerik WinForms:

Klasa WinForms RadBarcodeReader używa innej nazwy, innej nazwy właściwości (DecodeType w liczbie pojedynczej zamiast DecodeTypes w liczbie mnogiej) i przyjmuje System.Drawing.Image zamiast BitmapImage.

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";
}

Podejście IronBarcode:

// 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() to metoda statyczna — nie jest potrzebna instancja czytnika. Akceptuje bezpośrednio ciąg ścieżki do pliku bez potrzeby ładowania BitmapImage lub System.Drawing.Image. Detekcja formatu jest automatyczna dla wszystkich obsługiwanych typów ponad 50. Właściwość wyniku to .Value zamiast .Text. To samo wywołanie działa bez modyfikacji zarówno w aplikacjach WPF, jak i WinForms — nie ma wersji specyficznej dla danej platformy. Odczytuje również kody QR, DataMatrix i wszelkie inne formaty obecne na obrazie, w przeciwieństwie do czytników Telerik, które są ograniczone do formatów 1D.

Odczytywanie kodów QR: wcześniej niemożliwe dzięki Telerik

Jeśli baza kodu zawiera komentarz lub NotSupportedException dokumentujący, że odczyt QR jest niedostępny, to jest jego zamiennik. W Telerik nie ma ścieżki konfiguracyjnej umożliwiającej odczyt kodów QR — ten scenariusz nie ma odpowiednika w Telerik.

Podejście Telerik:

// 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.");
}

Podejście IronBarcode:

// 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";
}

To samo wywołanie BarcodeReader.Read(), które czyta kody kreskowe EAN-13, czyta kody QR. Nie ma oddzielnej konfiguracji dla formatów 2D. Pełna lista obsługiwanych formatów BARCODE, zarówno do odczytu, jak i generowania, znajduje się w dokumentacji IronBarcode, która obejmuje ponad 50 pozycji wraz z uwagami dotyczącymi poszczególnych formatów.

Odczytywanie BarCodes w punkcie końcowym ASP.NET Core

Telerik nie udostępnia komponentu do odczytu kodów kreskowych dla ASP.NET Core ani Blazor. Jeśli istniejąca aplikacja przekierowuje przesłane obrazy do usługi desktopowej w celu odczytu, ponieważ warstwa internetowa nie posiadała czytnika Telerik, to rozwiązanie zastępuje się bezpośrednim odczytem w warstwie internetowej.

Podejście Telerik:

// 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);
}

Podejście IronBarcode:

// 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() akceptuje bezpośrednio Stream, więc przesłany strumień plików jest przekazywany bez zapisywania na dysk. Ten kontroler można wdrożyć na systemie Linux, w środowisku Docker lub w usłudze Azure App Service bez konieczności wprowadzania zmian.

Odczytywanie BarCodes z plików PDF

Telerik nie posiada funkcji odczytu BarCodes z plików PDF. Dodanie odczytu PDF do istniejącej bazy kodu opartej na Telerik wymaga biblioteki renderującej PDF do konwersji stron na obrazy przed ich przekazaniem do RadBarcodeReader. IronBarcode odczytuje pliki PDF bezpośrednio.

Podejście Telerik:

// 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;
}

Podejście IronBarcode:

// 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();
}

Nie jest potrzebna osobna biblioteka PDF. Bez etapu wyodrębniania stron. Bez konwersji obrazów. Przekaż ścieżkę do pliku PDF, a IronBarcode przetworzy wszystkie strony, zwracając wszystkie BarCodes wraz z numerami stron. Wykrywane są zarówno BarCodes 1D, jak i 2D na stronach PDF.

Mapowanie API Telerik RadBarcode do IronBarcode

Telerik RadBarcodeIronBarcode
TelerikLicenseManager.InstallLicense("key")IronBarCode.License.LicenseKey = "key"
<telerik:RadBarcode Value="..." Symbology="Code128" />BarcodeWriter.CreateBarcode(data, BarcodeEncoding.Code128)
<TelerikBarcode Type="@BarcodeType.Code128" />Generacja po stronie serwera zwracająca ToPngBinaryData()
Symbology.Code128BarcodeEncoding.Code128
Symbology.QRCodeBarcodeEncoding.QRCode
new RadBarcodeReader() (WPF)Klasa statyczna — nie wymaga instancji
new RadBarcodeReader() (WinForms)Klasa statyczna — nie wymaga instancji
reader.DecodeTypes = new DecodeType[] { ... } (WPF)Automatyczne wykrywanie — nie jest wymagana specyfikacja
reader.DecodeType = new DecodeType[] { ... } (WinForms)Automatyczne wykrywanie — nie jest wymagana specyfikacja
reader.Decode(bitmapImage) (WPF)BarcodeReader.Read(imagePath)
reader.Read(drawingImage) (WinForms)BarcodeReader.Read(imagePath)
result.Textresult.Value
result.Symbologyresult.BarcodeType
BitmapImage wymagany jako wejście (WPF)Akceptowany ciąg ścieżki do pliku, Stream lub tablica bajtów
System.Drawing.Image wymagany jako wejście (WinForms)Akceptowany ciąg ścieżki do pliku, Stream lub tablica bajtów
Formaty 1D tylko do odczytuPonad 50 formatów, w tym wszystkie typy 2D
Tylko do odczytu: WPF i WinFormsWszystkie platformy .NET
Brak obsługi plików PDFBarcodeReader.Read("file.pdf") — natywny

Typowe problemy związane z migracją i ich rozwiązania

Problem 1: Zastąpienie kontrolki BarCode XAML

Telerik: <telerik:RadBarcode> to kontrolka wizualna, która renderuje się bezpośrednio w drzewie elementów UI WPF. Nie można jej zastąpić elementem Image bez zmian w kodzie-behind.

Rozwiązanie: Zastąp element <telerik:RadBarcode> kontrolką <Image> i wygeneruj kod kreskowy w kodzie-behind. Powiąż Image.Source z BitmapSource generowanym przez IronBarcode:

// In code-behind or ViewModel
using IronBarCode;

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

Dla Blazor, zastąp <TelerikBarcode> elementem <img>, którego atrybut src otrzymuje zakodowany w base64 PNG wygenerowany po stronie serwera.

Problem 2: Skutki uboczne usunięcia DecodeType

Telerik: Właściwość DecodeTypes (WPF) lub DecodeType (WinForms) filtruje formaty, które czytnik próbuje wykryć. Usunięcie tego filtra podczas migracji IronBarcode oznacza, że IronBarcode będzie teraz zwracać wyniki dla wszystkich formatów obecnych na obrazie, w tym formatów, które wcześniej były wykluczane przez filtr.

Rozwiązanie: Usuń blok przypisania DecodeType całkowicie. Jeżeli dodatkowo wykryte formaty powodują nieoczekiwane wyniki w dalszej logice — na przykład, jeśli kod zakładał, że zawsze zostanie zwrócony tylko jeden format kodu kreskowego — dodaj opcjonalne filtrowanie za pomocą BarcodeReaderOptions:

using IronBarCode;

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

Jest to opcjonalne. Domyślne zachowanie (wykrywanie wszystkich formatów) jest prawidłowe w większości przypadków i daje wyniki, których nie była w stanie zapewnić poprzednia implementacja Telerik.

Problem 3: Porządkowanie TelerikLicenseManager

Telerik: Wywołania Telerik.WinControls.TelerikLicenseManager.InstallLicense(key) pojawiają się przy starcie aplikacji, zazwyczaj w Program.cs (WinForms) lub App.xaml.cs (WPF). Klucz jest często przechowywany w ustawieniach aplikacji, pliku konfiguracyjnym lub zakodowany na stałe w metodzie uruchamiania.

Rozwiązanie: Usuń wywołanie TelerikLicenseManager.InstallLicense(). Zastąp go przypisaniem klucza IronBarcode w tym samym miejscu uruchamiania:

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

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

Jeśli pakiet Telerik pozostaje zainstalowany (ponieważ inne kontrolki Telerik nie związane z kodami kreskowymi są nadal używane), należy zachować wywołanie TelerikLicenseManager dla tych kontrolek. Usuń to wezwanie tylko wtedy, gdy pakiety Telerik są całkowicie usuwane.

Lista kontrolna migracji Telerik RadBarcode

Zadania przed migracją

Przed wprowadzeniem zmian w kodzie należy sprawdzić kod źródłowy pod kątem wszystkich zastosowań BarCode'ów Telerik:

# 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

Proszę udokumentować każde dopasowanie. Zwróć uwagę, które pliki zawierają kontrolki XAML, które zawierają kod odczytu oraz do której platformy należy każdy plik.

Zadania związane z aktualizacją kodu

  1. Usuń pakiety NuGet Telerik BarCode (lub zachowaj je, jeśli są potrzebne do innych kontrolek)
  2. Zainstaluj pakiet NuGet IronBarcode w każdym projekcie, który wymaga funkcjonalności kodów kreskowych
  3. Dodaj IronBarCode.License.LicenseKey = "YOUR-LICENSE-KEY" przy każdym punkcie wejścia uruchomienia aplikacji
  4. Usuń importy przestrzeni nazw Telerik i dodaj using IronBarCode
  5. Zastąp elementy XAML <telerik:RadBarcode> kontrolkami <Image>
  6. Generuj obrazy kodów kreskowych w kodzie-behind przy użyciu BarcodeWriter.CreateBarcode(...).ToBitmapSource()
  7. Zastąp komponenty Razor <TelerikBarcode> źródłami base64 <img>, generowanymi po stronie serwera
  8. Zastąp instancje new RadBarcodeReader() statycznymi wywołaniami BarcodeReader.Read(path)
  9. Zastąp instancje new RadBarcodeReader() statycznymi wywołaniami BarcodeReader.Read(path)
  10. Usuń wszystkie reader.DecodeTypes = new DecodeType[] { ... } and reader.DecodeType = new DecodeType[] { ... } bloki
  11. Zastąp wywołania reader.Decode(bitmapImage) przez BarcodeReader.Read(imagePath)
  12. Zastąp wywołania reader.Read(drawingImage) przez BarcodeReader.Read(imagePath)
  13. Zmień nazwę result.Text na result.Value we wszystkich punktach dostępu do wyników odczytu
  14. Zmień nazwę result.Symbology na result.BarcodeType we wszystkich punktach sprawdzania formatu
  15. Zastąp wartości enum generacji Symbology.Code128 i podobne przez BarcodeEncoding.Code128
  16. Usuń wywołania TelerikLicenseManager.InstallLicense() tam, gdzie pakiety Telerik zostały całkowicie usunięte

Testy po migracji

  • Sprawdź, czy wszystkie wcześniej odczytane kody kreskowe 1D (Code128, EAN13 itp.) nadal zwracają prawidłowe wartości
  • Sprawdź, czy kody QR na obrazkach testowych są teraz odczytywane poprawnie, podczas gdy wcześniej zwracały wartość null
  • Sprawdź, czy wygenerowane kody kreskowe (zapisane jako pliki PNG lub dostarczone jako bajty) są widoczne i skanują się poprawnie
  • Sprawdź, czy punkty końcowe ASP.NET Core lub Blazor, które wcześniej nie mogły odczytywać danych, teraz działają poprawnie
  • Jeśli dodano funkcję odczytu plików PDF, upewnij się, że BarCODE-y na każdej stronie PDF są wykrywane z prawidłowymi numerami stron
  • Uruchom polecenia audytu grep z sekcji "Przed migracją", aby upewnić się, że nie pozostała żadna dokumentacja API dla interfejsu kodów kreskowych Telerik
  • Potwierdź, że IronBarCode.License.LicenseKey jest ustawione przed pierwszym wywołaniem BarcodeReader.Read() lub BarcodeWriter.CreateBarcode()

Kluczowe korzyści wynikające z migracji do IronBarcode

Pełna obsługa formatów 2D: Po migracji formaty QR, DataMatrix, PDF417 i Aztec są odczytywane przez to samo wywołanie API, które już odczytywało Code128 i EAN13. Nie jest wymagana żadna dodatkowa konfiguracja ani oddzielna biblioteka dla formatów 2D. Silnik odczytu automatycznie rozpoznaje format.

Ujednolicone API między platformami: Te same wywołania BarcodeReader.Read() i BarcodeWriter.CreateBarcode() kompilują się i działają identycznie w WPF, WinForms, ASP.NET Core, Blazor aplikacjach konsolowych oraz w kontenerach Docker. Logika BarCode napisana raz w bibliotece usług współdzielonych działa we wszystkich typach projektów w rozwiązaniu bez konieczności modyfikacji.

**Natywne przetwarzanie plików PDF:**IronBarcode odczytuje kody kreskowe bezpośrednio z plików PDF, przetwarzając wszystkie strony i zwracając wyniki wraz z metadanymi dotyczącymi numerów stron. Przepływy pracy, które wcześniej wymagały biblioteki do renderowania plików PDF oraz etapu odczytu Telerik, zostały skonsolidowane w jednym wywołaniu metody, eliminując zależność od oprogramowania innych firm oraz pośredni etap konwersji obrazu.

Wyeliminowano zależność od subskrypcji w przypadku dostępu do kodów kreskowych: Po migracji funkcja kodów kreskowych jest dostępna w ramach modelu licencji wieczystej IronBarcode. Dalszy dostęp nie wymaga corocznego odnawiania. Zespoły, które wykorzystywały Suite Telerik głównie do obsługi kodów kreskowych, zmniejszają swoje stałe koszty licencji do jednorazowego wydatku.

Uproszczona baza kodu: Blok konfiguracji DecodeType, krok ładowania BitmapImage, wybór klasy czytnika specyficznej dla platformy i łańcuch właściwości result.Text są zastąpione pojedynczym statycznym wywołaniem metody z automatycznym wykrywaniem wyników. Kod, który wcześniej wymagał różnych implementacji dla odczytu WPF i WinForms, zostaje zredukowany do jednej wspólnej implementacji.

Zwróć uwagę: Telerik to zarejestrowany znak towarowy jego właściciela. Ta strona nie jest powiązana z, popierana przez ani sponsorowana przez Progress Software. Wszystkie nazwy produktów, logo i marki są własnością ich odpowiednich właścicieli. Porównania mają charakter wyłącznie informacyjny i odzwierciedlają informacje dostępne publicznie w momencie pisania.
Curtis Chau
Autor tekstów technicznych

Curtis Chau posiada tytuł licencjata z informatyki (Uniwersytet Carleton) i specjalizuje się w front-endowym rozwoju, z ekspertką w Node.js, TypeScript, JavaScript i React. Pasjonuje się tworzeniem intuicyjnych i estetycznie przyjemnych interfejsów użytkownika, Curtis cieszy się pracą z nowoczesnymi frameworkami i tworzeniem dobrze zorganizowanych, atrakcyjnych wizualnie podręczników.

...
Czytaj więcej

Powiązane artykuły

Key in blue circle

Uzyskaj natychmiast swój darmowy 30-dniowy Klucz Testowy.

Your trial license will be sent to your email address

Brak ograniczeń. 100% dostępności. Bez karty kredytowej.

bullet_checkedNie wymaga karty kredytowej ani tworzenia kontaBrak ograniczeń. 100% dostępności. Bez karty kredytowej.
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
Zarezerwuj swoje darmowe Demo na żywo
Booking Badge

Zaufane przez miliony inżynierów na całym świecie

Logotypy klientów Iron Software
Otrzymaj swoje Konsultacja Bez Zobowiązań
Wypełnij poniższy formularz lub wyślij e-mail na sales@ironsoftware.com
Twoje dane zawsze będą utrzymywane w tajemnicy.
Zaufane przez miliony inżynierów na całym świecie
Logotypy klientów Iron Software
Otrzymaj swój darmowy Klucz Próbny na 30 dni natychmiast.
Nie wymaga karty kredytowej ani tworzenia konta