Altbilgi içeriğine atla
VIDEOLAR

C#'da Barkod Yönelimi Nasıl Düzeltilir | IronBarcode

Telerik RadBarcode'dan IronBarcode'ye Geçiş

Bu kılavuz, Telerik RadBarcode'dan IronBarcode for .NET'e geçiş yolu sunar ve bu, RadBarcode ve RadBarcodeReader'un yapabileceklerinin sınırlarına ulaşmış geliştiriciler içindir. Paket değişimi, isim alanı güncellemeleri, lisans başlatma, kod düzeyinde geçiş örnekleri, bir API eşleme referansı ve geçişin tamamlandığını doğrulamak için bir kontrol listesi içerir. Örnekler, Telerik barkod geçişlerinde en yaygın karşılaşılan senaryolara odaklanmaktadır: XAML kontrol değişimi, okuma biçimi genişletmesi, sunucu tarafı dağıtımı ve PDF işleme.

Neden Telerik RadBarcode'dan Göç Edilmeli

Telerik RadBarcode geçişleri, mevcut bileşenlerin karşılayamayacağı somut teknik gereksinimler tarafından tetiklenir. Aşağıdaki nedenler, bu geçişi tamamlamış veya değerlendiren takımlar tarafından en sık bildirilen koşulları temsil eder.

2D Okuma Sınırı: WPF'deki RadBarcodeReader bileşeni ve WinForms'daki RadBarcodeReader bileşeni, DecodeType enumu ile sınırlanan aynı okuma motorunu paylaşır. Bu enum, 1D lineer formatlar için girişleri içerir: Code128, Code39, EAN13, EAN8, UPCA, UPCE, Codabar, ITF — ve başka hiçbir şey. QR Kod, DataMatrix, PDF417 veya Aztec için giriş yok. Gelen QR kodlarını işleme veya taranmış belgelerden DataMatrix etiketlerini okuma ihtiyacı ortaya çıktığında, DecodeType kısıtlaması, Telerik ürün ailesi içinde geçici bir çözümü olmayan bir engel haline gelir.

Platform Kod Parçalanması: Telerik ile okuma, UI çerçeve bağımlılıkları gerektirir: RadBarcodeReader, WPF türlerini (BitmapImage) kullanır ve RadBarcodeReader, WinForms türlerini (System.Drawing.Image) kullanır. Bu türler, paylaşılan bir .NET kütüphanesinde, bir konsol uygulamasında, bir ASP.NET Core projesinde veya bir Blazor sunucusunda referans alınamaz. Barkod okuma mantığını paylaşılan bir hizmet katmanında merkezileştirmek isteyen bir takım, Telerik türleri ile bunu yapamaz — okuyucu uygulamaları kalıcı olarak ilgili UI çerçevelerine bağlanmıştır.

PDF İşleme Açığı: Birçok barkod iş akışı, resim dosyaları yerine belgeler üzerinde çalışır. Telerik RadBarcodeReader yalnızca bitmap resimleri kabul eder. Bir PDF sayfasına gömülü bir barkodu okumak için sayfayı ayrı bir kütüphane kullanarak bir resme dönüştürmek ve ardından bu resmi Telerik okuyucusuna beslemek gerekir - bağımlılık ekler ve hala yalnızca 1D sonuçlar alır. PDF'leri ağırlıklı olarak kullanan takımlar için bu geçici çözüm iş akışının her aşamasında sürtünme ekler.

Abonelik Lisanslama: Telerik barkod işlevselliği bağımsız bir paket olarak satılmaz. RadBarcode ve RadBarcodeReader erişimi, platforma özgü UI suite abonelikleriyle birlikte paketlenmiştir — platform başına Telerik UI abonelikleri, geliştirici başına yılda 749 dolardan (Lite seviyesi) başlar ve tüm platformlar için birleştirildiğinde DevCraft UI, geliştirici başına yılda 1.149 dolardır, bu, Telerik'in yayımladığı 2026 fiyatlandırmasına göredir. Birincil gereksinimi barkod işlevselliği olan ve diğer Telerik UI kontrollerini kullanmayan takımlar, satın alınanların küçük bir yüzdesini temsil eden bir bileşen için tüm suite maliyetini üstlenir.

Temel Sorun

Telerik okuma sınırlamasının en net ifadesi, bir formatı üreten bileşenin okuyucuda geri döndüremediğidir:

// 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
// 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
' Telerik — generates a QR code, then cannot read it back
Dim qrBarcode As New RadBarcode()
qrBarcode.Value = "https://example.com/order/4821"
qrBarcode.Symbology = New QRCode With {.ErrorCorrectionLevel = ErrorCorrectionLevel.H}
' Save to file...

' Attempt to read the same QR code:
Dim reader As New RadBarcodeReader()
' DecodeType.QR does not exist — QR cannot be added to this list
reader.DecodeTypes = New DecodeType() {DecodeType.Code128, DecodeType.EAN13}
Dim bitmap As New BitmapImage(New Uri("qr-output.png", UriKind.Absolute))
Dim result = reader.Decode(bitmap)
' result == null — always, for any QR code image
$vbLabelText   $csharpLabel

IronBarcode bu açığı kapatır. Oluşturma ve okuma aynı paketi kullanır ve okuma motoru QR kodları, DataMatrix, PDF417 ve diğer tüm formatları otomatik olarak algılar:

// 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
// 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
Imports 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
Dim results = BarcodeReader.Read("qr-output.png")
Console.WriteLine(results.First().Value)
' Output: https://example.com/order/4821
$vbLabelText   $csharpLabel

IronBarcode ile Telerik RadBarcode: Özellik Karşılaştırması

Özellik Telerik RadBarcode IronBarcode
1D barkod oluşturma Evet (tüm platformlar) Evet
2D barkod oluşturma Evet (tüm platformlar) Evet
1D barkod okuma Yalnızca WPF + WinForms Evet (tüm platformlar)
QR kodu okuma Sadece WPF Evet (tüm platformlar)
DataMatrix okuma Sadece WPF Evet (tüm platformlar)
PDF417 okuma Sadece WPF Evet (tüm platformlar)
Aztec okuma Mevcut değil Evet
PDF dosyası okuma Mevcut değil Evet (yerel)
Otomatik format algılama Hayır — DecodeType gerekli Evet
ASP.NET Core okuma Mevcut değil Evet
Blazor okuma Mevcut değil Evet
Docker / Linux okuma Mevcut değil Evet
Paylaşılan servis kütüphanesi Mümkün değil (platform türleri) Evet
Statik okuma API'si Hayır (örnek gerektirir) Evet
Bağımsız NuGet paketi Hayır — UI paketi gereklidir Evet
Süresiz lisans Sürekli seviye, abonelikle birlikte mevcuttur Evet — $749'dan (Lite)

Hızlı Başlangıç

Adım 1: NuGet Paketini Değiştirin

Projenizdeki platform veya platformlar için Telerik UI paketini kaldırın:

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

Projeniz aynı paketten diğer Telerik kontrollerini de kullanıyorsa, paketi yerinde bırakın ve 2. adıma geçin. Paylaşılan paketi kaldırmadan barkoda özgü API çağrılarını kaldıracaksınız.

IronBarcode'u kurun:

dotnet add package IronBarcode
dotnet add package IronBarcode
SHELL

Bir paket, WPF, WinForms, ASP.NET Core, Blazor Sunucusu, konsol uygulamaları, Docker, Azure İşlevleri ve AWS Lambda'yı kapsar. tam platform uyumluluk detayları desteklenen tam .NET sürümleri ve işletim sistemi hedeflerini belgelemektedir.

Adım 2: Ad Alanlarını Güncelleyin

Telerik barkod isim alanı alımlarını kaldırın ve bunları IronBarcode isim alanı ile değiştirin:

// 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;
// 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;
Imports IronBarCode
$vbLabelText   $csharpLabel

Adım 3: Lisansa İzin Verin

Telerik lisans başlatmasını uygulama başlangıcında IronBarcode anahtar göreviyle değiştirin:

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

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

// Add at application startup (Program.cs, App.xaml.cs, or composition root):
IronBarCode.License.LicenseKey = "YOUR-LICENSE-KEY";
' Remove:
' Telerik.WinControls.TelerikLicenseManager.InstallLicense("key")

' Add at application startup (Program.vb, App.xaml.vb, or composition root):
IronBarCode.License.LicenseKey = "YOUR-LICENSE-KEY"
$vbLabelText   $csharpLabel

Anahtar görevi uygulama giriş noktasına bir kez gider. Dağıtılacak lisans dosyası yok, her platform için başlatma yolu yok ve WPF eyası ASP.NET Core için ayrı yapılandırma yok.

Kod Göç Örnekleri

Barkod Üretimi: XAML Kontrolünden Koda Dayalı API'ye

Telerik'in WPF'deki oluşturma yöntemi deklaratiftir — RadBarcode XAML elemanı doğrudan UI ağacına işler. IronBarcode, bar kodlarını kod yoluyla oluşturur ve WPF gösterimi için dosya olarak kaydedilebilen veya BitmapSource'ye dönüştürülebilen bir GeneratedBarcode nesnesi döndürür.

Telerik Yaklaşımı:


<Window xmlns:telerik="http://schemas.telerik.com/2008/xaml/presentation">
    <telerik:RadBarcode Value="PROD-2026-00184" Symbology="Code128" />
</Window>

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

IronBarcode Yaklaşımı:

// 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)}";
// 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)}";
Imports 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
Dim bitmapSource = BarcodeWriter.CreateBarcode("PROD-2026-00184", BarcodeEncoding.Code128) _
                                .ToBitmapSource()
barcodeImageControl.Source = bitmapSource

' Serve in Blazor or ASP.NET Core — return as base64 src attribute
Dim bytes As Byte() = BarcodeWriter.CreateBarcode("PROD-2026-00184", BarcodeEncoding.Code128) _
                                   .ResizeTo(400, 100) _
                                   .ToPngBinaryData()
Dim imgSrc As String = $"data:image/png;base64,{Convert.ToBase64String(bytes)}"
$vbLabelText   $csharpLabel

BarcodeEncoding enumu, Telerik'in Symbology enumu ile aynı sembolojileri kapsar. QR kod üretimine geçiş, yalnızca enum argümanı değiştirir. 2D barkod üretim seçeneklerinin tam yelpazesi için, QR hata düzeltme seviyeleri ve DataMatrix boyutları dahil, IronBarcode belgeleri kapsamlı örnekler sağlar.

Bilgisayar Uygulamalarından Barkod Okuma

Telerik, masaüstü platformları için iki ayrı okuyucu sınıfı sağlar — WPF için RadBarcodeReader ve WinForms için RadBarcodeReader — farklı sınıf isimleri, farklı özellik isimleri ve farklı giriş türleri ile. IronBarcode, her iki projede de aynı şekilde çalışan tek bir statik çağrı ile her ikisinin yerini alır.

Telerik WPF Yaklaşımı:

WPF okuması için bir RadBarcodeReader örneği, açık bir DecodeType yapılandırması, bir URI'den yüklenen bir BitmapImage nesnesi ve bir reader.Decode() çağrısı gereklidir. Sonuç özelliği .Text'dir.

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";
}
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";
}
Imports Telerik.Windows.Controls.Barcode
Imports System.Windows.Media.Imaging

Public Function ReadProductBarcode(imagePath As String) As String
    Dim reader = New RadBarcodeReader()
    reader.DecodeTypes = New DecodeType() {
        DecodeType.Code128,
        DecodeType.Code39,
        DecodeType.EAN13,
        DecodeType.EAN8,
        DecodeType.UPCA,
        DecodeType.UPCE,
        DecodeType.Codabar,
        DecodeType.ITF
    }

    Dim bitmap = New BitmapImage(New Uri(imagePath, UriKind.Absolute))
    Dim result = reader.Decode(bitmap)

    Return If(result?.Text, "No barcode found")
End Function
$vbLabelText   $csharpLabel

Telerik WinForms Yaklaşımı:

WinForms RadBarcodeReader sınıfı, farklı bir isim, farklı bir özellik ismi (DecodeType tekil yerine DecodeTypes çoğul) kullanır ve bir System.Drawing.Image alır, BitmapImage yerine.

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";
}
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";
}
Imports Telerik.WinControls.UI.Barcode
Imports System.Drawing

Public Function ReadShippingLabel(imagePath As String) As String
    Dim reader = New RadBarcodeReader()
    reader.DecodeType = New DecodeType() {
        DecodeType.Code128,
        DecodeType.ITF,
        DecodeType.EAN13
    }

    Using image = Image.FromFile(imagePath)
        Dim result = reader.Read(image)
        Return If(result?.Text, "No barcode found")
    End Using
End Function
$vbLabelText   $csharpLabel

IronBarcode Yaklaşımı:

// NuGet: dotnet add package IronBarcode
using IronBarCode;

public string ReadProductBarcode(string imagePath)
{
    var results = BarcodeReader.Read(imagePath);
    return results.FirstOrDefault()?.Value ?? "No barcode found";
}
// NuGet: dotnet add package IronBarcode
using IronBarCode;

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

Public Function ReadProductBarcode(imagePath As String) As String
    Dim results = BarcodeReader.Read(imagePath)
    Return If(results.FirstOrDefault()?.Value, "No barcode found")
End Function
$vbLabelText   $csharpLabel

BarcodeReader.Read(), statik bir metottur — bir okuyucu örneği gerekmez. Doğrudan dosya yolu dizelerini kabul eder, BitmapImage veya System.Drawing.Image yüklemesi gerektirmez. 50'den fazla desteklenen türde format tespiti otomatiktir. Sonuç özelliği .Value yerine .Text'dir. Aynı çağrı, WPF ve WinForms uygulamalarında değişiklik yapmadan çalışır — platforma özgü bir varyant yoktur. Ayrıca görüntüde mevcut olan QR kodlarını, DataMatrix ve diğer tüm formatları okur, Telerik okuyucularının yalnızca 1D formatlarla sınırlandığı gibi değil.

QR Kodlarını Okuma: Telerik ile Önceden İmkansızdı

Kod tabanınızda QR okumanın mevcut olmadığını belgeleyen bir yorum veya NotSupportedException varsa, bu onun yerini alır. Telerik'te QR okumasını etkinleştiren bir yapılandırma yolu yoktur — bu senaryo için bir Telerik eşdeğeri yoktur.

Telerik Yaklaşımı:

// 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.");
}
// 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.");
}
' RadBarcodeReader does not support QR codes.
' DecodeType.QR does not exist in the Telerik enum.
Public Function ReadQrCode(imagePath As String) As String
    Throw New NotSupportedException("Telerik RadBarcodeReader cannot read QR codes. " & _
                                    "DecodeType.QR is not a valid enum value.")
End Function
$vbLabelText   $csharpLabel

IronBarcode Yaklaşımı:

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

Public Function ReadQrCode(imagePath As String) As String
    ' QR codes, DataMatrix, PDF417, and Aztec are all detected automatically
    Dim results = BarcodeReader.Read(imagePath)
    Return If(results.FirstOrDefault()?.Value, "No QR code found")
End Function
$vbLabelText   $csharpLabel

EAN-13 bar kodlarını okuyan aynı BarcodeReader.Read() çağrısı QR kodlarını da okur. 2D formatlar için ayrı bir yapılandırma yoktur. Okuma ve üretim boyunca desteklenen barkod formatlarının tam listesi için, IronBarcode belgeleri format spesifik notlarla tüm 50+ girdiyi kapsar.

ASP.NET Core Uç Noktasında Barkod Okuma

Telerik, ASP.NET Core veya Blazor için bir barkod okuma bileşeni sağlamaz. Mevcut bir uygulama, web katmanında bir Telerik okuyucu olmadığı için okuma için yüklenen görüntüleri bir masaüstü hizmetine yönlendirirse, bu geçici çözüm, web katmanında doğrudan okuma ile değiştirilir.

Telerik Yaklaşımı:

// 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);
}
// 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);
}
Imports Microsoft.AspNetCore.Mvc

' 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 Function ReadBarcode(imageFile As IFormFile) As Task(Of IActionResult)
    ' Must proxy to desktop service — no Telerik reader available here
    Dim bytes = Await ReadAllBytesAsync(imageFile)
    Dim result = Await _desktopBridgeService.ReadAsync(bytes)
    Return Ok(result)
End Function
$vbLabelText   $csharpLabel

IronBarcode Yaklaşımı:

// 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");
    }
}
// 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");
    }
}
Imports IronBarCode
Imports Microsoft.AspNetCore.Mvc

<ApiController>
<Route("api/barcode")>
Public Class BarcodeController
    Inherits ControllerBase

    <HttpPost("read")>
    Public Function ReadBarcode(imageFile As IFormFile) As IActionResult
        Using stream = imageFile.OpenReadStream()
            Dim results = BarcodeReader.Read(stream)
            Return Ok(results.Select(Function(r) New With {
                .Format = r.BarcodeType.ToString(),
                .Value = r.Value
            }))
        End Using
    End Function

    <HttpGet("generate")>
    Public Function GenerateBarcode(<FromQuery> data As String) As IActionResult
        Dim bytes = BarcodeWriter.CreateBarcode(data, BarcodeEncoding.Code128) _
                                 .ResizeTo(400, 100) _
                                 .ToPngBinaryData()
        Return File(bytes, "image/png")
    End Function
End Class
$vbLabelText   $csharpLabel

BarcodeReader.Read(), bir Stream'yi doğrudan kabul eder, bu nedenle yüklenen dosya akışı diske yazılmadan iletilir. Bu denetleyici, Linux, Docker veya Azure App Service'e değişiklik yapmadan dağıtılır.

PDF Dosyalarından Barkod Okuma

Telerik'in PDF barkod okuma yeteneği yoktur. Mevcut bir Telerik tabanlı kod tabanına PDF okuma eklemek, sayfaları RadBarcodeReader'ye iletmeden önce görüntülere dönüştürmek için bir PDF oluşturma kütüphanesi gerektirir. IronBarcode PDF dosyalarını doğrudan okur.

Telerik Yaklaşımı:

// 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;
}
// 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;
}
Imports SomePdfLibrary ' third-party dependency
Imports Telerik.Windows.Controls.Barcode

Public Function ReadBarcodesFromPdf(pdfPath As String) As List(Of String)
    Dim results As New List(Of String)()
    Dim pages = PdfRenderer.ExtractPages(pdfPath) ' third-party call

    For Each pageImage In pages
        Dim reader As New RadBarcodeReader()
        reader.DecodeTypes = New DecodeType() {DecodeType.Code128, DecodeType.EAN13}
        Dim bitmap = ConvertToBitmapImage(pageImage) ' conversion required
        Dim result = reader.Decode(bitmap)
        If result IsNot Nothing Then
            results.Add(result.Text) ' 1D only — QR codes on PDF pages are missed
        End If
    Next

    Return results
End Function
$vbLabelText   $csharpLabel

IronBarcode Yaklaşımı:

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

Public Function ReadBarcodesFromPdf(pdfPath As String) As List(Of String)
    Dim results = BarcodeReader.Read(pdfPath)
    Return results.Select(Function(r) $"Page {r.PageNumber}: {r.BarcodeType} — {r.Value}").ToList()
End Function
$vbLabelText   $csharpLabel

Ayrı bir PDF kütüphanesi gerekli değildir. Sayfa çıkarma adımı yok. Görsel dönüşüm yok. PDF yolunu iletin ve IronBarcode tüm sayfaları işler, tüm barkodları sayfa numarası takibi ile döndürür. PDF sayfalarındaki 1D ve 2D barkodlar tespit edilir.

Telerik RadBarcode API ile IronBarcode Eşleme Referansı

Telerik RadBarcode IronBarcode
TelerikLicenseManager.InstallLicense("key") IronBarCode.License.LicenseKey = "key"
<telerik:RadBarcode Value="..." Symbology="Code128" /> BarcodeWriter.CreateBarcode(data, BarcodeEncoding.Code128)
<TelerikBarcode Type="@BarcodeType.Code128" /> Sunucu tarafı oluşturma ToPngBinaryData() döndürür
Symbology.Code128 BarcodeEncoding.Code128
Symbology.QRCode BarcodeEncoding.QRCode
new RadBarcodeReader() (WPF) Statik sınıf — örnek gerekmez
new RadBarcodeReader() (WinForms) Statik sınıf — örnek gerekmez
reader.DecodeTypes = new DecodeType[] { ... } (WPF) Otomatik algılama – spesifikasyon gerekmiyor
reader.DecodeType = new DecodeType[] { ... } (WinForms) Otomatik algılama – spesifikasyon gerekmiyor
reader.Decode(bitmapImage) (WPF) BarcodeReader.Read(imagePath)
reader.Read(drawingImage) (WinForms) BarcodeReader.Read(imagePath)
result.Text result.Value
result.Symbology result.BarcodeType
BitmapImage girdi olarak gereklidir (WPF) Dosya yolu, Stream veya bayt dizisi kabul edilir
System.Drawing.Image girdi olarak gereklidir (WinForms) Dosya yolu, Stream veya bayt dizisi kabul edilir
Sadece okuma için 1D formatlar Tüm 2D türler dahil olmak üzere 50+ format
Yalnızca WPF ve WinForms okuma Tüm .NET platformları
PDF okuma desteği yok BarcodeReader.Read("file.pdf") — yerel

Yaygın Göç Sorunları ve Çözümleri

Sorun 1: XAML Barkod Kontrol Değişimi

Telerik: <telerik:RadBarcode>, WPF UI eleman ağacında doğrudan işlerken görsel bir kontroldür. Kod arkası değişiklikleri olmadan, Image elemanıyla değiştirilemez.

Çözüm: <telerik:RadBarcode> elemanını bir <Image> denetimi ile değiştirin ve barkodu kod arkasında oluşturun. Image.Source'yi IronBarcode tarafından oluşturulan bir BitmapSource'ye bağlayın:

// In code-behind or ViewModel
using IronBarCode;

var generated = BarcodeWriter.CreateBarcode(barcodeValue, BarcodeEncoding.Code128)
                             .ResizeTo(400, 100);
BarcodeImage.Source = generated.ToBitmapSource();
// In code-behind or ViewModel
using IronBarCode;

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

' In code-behind or ViewModel
Dim generated = BarcodeWriter.CreateBarcode(barcodeValue, BarcodeEncoding.Code128) _
                             .ResizeTo(400, 100)
BarcodeImage.Source = generated.ToBitmapSource()
$vbLabelText   $csharpLabel

Blazor için, <TelerikBarcode> ile sunucu tarafında oluşturulan base64 şifreli PNG alan bir <img> elemanıyla değiştirin.

Sorun 2: DecodeType Kaldırma Yan Etkileri

Telerik: DecodeTypes (WPF) veya DecodeType (WinForms) özelliği, okuyucunun tespit etmeye çalıştığı formatları filtreler. Bu filtreyi bir IronBarcode geçişinde kaldırmak, IronBarcode'un artık görüntüde bulunan tüm formatlar için sonuç döndüreceği anlamına gelir, bu da filtre tarafından önceden dışlanan formatları içerir.

Çözüm: DecodeType atama bloğunu tamamen kaldırın. Ek tespit edilen formatlar, kodun yalnızca bir barkod formatının döndürüleceğini varsaydığı durumlarda, alt akış lojiklerinde beklenmeyen sonuçlara neden olabilir — BarcodeReaderOptions kullanarak isteğe bağlı filtreler ekleyin:

using IronBarCode;

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

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

Dim options As New BarcodeReaderOptions With {
    .ExpectedBarcodeTypes = BarcodeEncoding.Code128 Or BarcodeEncoding.EAN13
}
Dim results = BarcodeReader.Read(imagePath, options)
$vbLabelText   $csharpLabel

Bu isteğe bağlıdır. Varsayılan davranış (tüm formatları algıla) çoğu kullanım durumu için doğrudur ve önceki Telerik uygulamasının sağlayamadığı sonuçları üretir.

Sorun 3: TelerikLicenseManager Temizliği

Telerik: Telerik.WinControls.TelerikLicenseManager.InstallLicense(key) çağrıları, uygulama başlatıldığında, genellikle Program.cs (WinForms) veya App.xaml.cs (WPF) içinde görünür. Anahtar genellikle uygulama ayarlarında, bir yapılandırma dosyasında saklanır veya başlangıç yöntemine sert kodlanır.

Çözüm: TelerikLicenseManager.InstallLicense() çağrısını kaldırın. Aynı başlatma konumunda IronBarcode anahtar atamasıyla değiştirin:

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

// Add:
IronBarCode.License.LicenseKey = "YOUR-LICENSE-KEY";
// Remove:
// Telerik.WinControls.TelerikLicenseManager.InstallLicense("TELERIK-KEY");

// Add:
IronBarCode.License.LicenseKey = "YOUR-LICENSE-KEY";
' Remove:
' Telerik.WinControls.TelerikLicenseManager.InstallLicense("TELERIK-KEY")

' Add:
IronBarCode.License.LicenseKey = "YOUR-LICENSE-KEY"
$vbLabelText   $csharpLabel

Telerik paketi yüklü kalırsa (çünkü diğer barkod dışı Telerik kontrolleri hala kullanılıyor), bu kontroller için TelerikLicenseManager çağrısı korunmalıdır. Sadece çağrıyı kaldırın, eğer Telerik paketlerinin kendileri tamamen kaldırılıyorsa.

Telerik RadBarcode Geçiş Kontrol Listesi

Geçiş Öncesi Görevler

Kod değişiklikleri yapmadan önce kod tabanında tüm Telerik barkod kullanımlarının denetimini yapın:

# 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" .
# 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

Her eşleşmeyi belgeleyin. Hangi dosyaların XAML kontrolleri içerdiğini, hangilerinin okuma kodu içerdiğini ve her bir dosyanın hangi platforma ait olduğunu not alın.

Kod Güncelleme Görevleri

  1. Telerik barkod NuGet paketlerini kaldırın (veya diğer kontroller için gerekliyse saklayın)
  2. Bar kod işlevselliği gerektiren her projede IronBarcode NuGet paketini kurun
  3. Her uygulama başlangıç noktası girişine IronBarCode.License.LicenseKey = "YOUR-LICENSE-KEY" ekleyin
  4. Telerik ad alanı importlarını kaldırın ve using IronBarCode ekleyin
  5. <telerik:RadBarcode> XAML elemanlarını <Image> kontrolleri ile değiştirin
  6. BarcodeWriter.CreateBarcode(...).ToBitmapSource() kullanarak kod arkasında barkod görüntüleri oluşturun
  7. <TelerikBarcode> Razor bileşenlerini sunucu tarafında oluşturulan base64 <img> kaynakları ile değiştirin
  8. new RadBarcodeReader() örneklerini BarcodeReader.Read(path) statik çağrılar ile değiştirin
  9. new RadBarcodeReader() örneklerini BarcodeReader.Read(path) statik çağrılar ile değiştirin
  10. Tüm reader.DecodeTypes = new DecodeType[] { ... } ve reader.DecodeType = new DecodeType[] { ... } bloklarını silin
  11. reader.Decode(bitmapImage) çağrılarını BarcodeReader.Read(imagePath) ile değiştirin
  12. reader.Read(drawingImage) çağrılarını BarcodeReader.Read(imagePath) ile değiştirin
  13. Tüm okuma sonuç erişim noktalarında result.Text adını result.Value olarak değiştirin
  14. Tüm format kontrol noktalarında result.Symbology adını result.BarcodeType olarak değiştirin
  15. Symbology.Code128 ve benzer oluşturma enum değerlerini BarcodeEncoding.Code128 ile değiştirin
  16. Telerik paketlerinin tamamen kaldırıldığı yerlerde TelerikLicenseManager.InstallLicense() çağrılarını kaldırın

Geçiş Sonrası Testler

  • Önceden okunan 1D barkodlarının (Code128, EAN13, vb.) doğru değerler döndürmeye devam ettiğinden emin olun
  • Test görüntülerinde QR kodlarının artık null yerine başarıyla okunduğunu doğrulayın
  • Üretilen barkodların (PNG olarak kaydedilen veya bayt olarak sunulan) görünür şekilde render edildiğini ve doğru bir şekilde tarandığını test edin
  • Daha önce okuma yapamayan ASP.NET Core veya Blazor uç noktalarının artık doğru bir şekilde işlev gördüğünden emin olun
  • PDF okuma eklendiyse, her PDF sayfasında barkodların doğru sayfa numaralarıyla algılandığını onaylayın
  • Kalan herhangi bir Telerik barkod API referansı olmadığını doğrulamak için Ön-Göç bölümünden grep denetim komutlarını çalıştırın
  • İlk BarcodeReader.Read() veya BarcodeWriter.CreateBarcode() çağrısından önce IronBarCode.License.LicenseKey ayarlandığını doğrulayın

IronBarcode'a Geçmenin Temel Faydaları

Tam 2D Format Desteği: Geçişten sonra, QR Code, DataMatrix, PDF417 ve Aztec formatları, daha önce Code128 ve EAN13'ü okuyan aynı API çağrısıyla okunabilir. Ek yapılandırma gerekmez ve 2D formatlar için ayrı bir kütüphane gerekli değildir. Okuma motoru biçim tanımlaması otomatik olarak gerçekleşir.

Bütünleşik Çapraz Platform API: Aynı BarcodeReader.Read() ve BarcodeWriter.CreateBarcode() çağrıları WPF, WinForms, ASP.NET Core, Blazor, konsol uygulamaları ve Docker konteynerlerinde aynı şekilde derlenir ve çalıştırılır. Bir paylaşılan hizmet kütüphanesinde bir kere yazılan barkod mantığı, çözümdeki her proje türü üzerinde değişiklik yapmadan çalışır.

Yerel PDF Dosya İşleme: IronBarcode, PDF dosyalarından doğrudan barkodları okur, tüm sayfaları işleyip, sayfa numarası meta verileri ile sonuçları döndürür. Daha önce bir PDF render kütüphanesi artı bir Telerik okuma adımı gerektiren iş akışları, üçüncü taraf bağımlılığını ve ara görüntü dönüştürme adımını kaldırarak tek bir metot çağrısına birleştirilir.

Barkod Erişimi İçin Abonelik Bağımlılığı Kaldırıldı: Geçişten sonra, barkod işlevselliği, IronBarcode'un süresiz lisanslama modeli aracılığıyla elde edilebilir. Sürekli erişim yıllık yenileme gerektirmez. Birincil Telerik suite kullanımı barkod ile ilgili olan takımlar, tekrar eden lisanslama yüklerini tek seferlik bir maliyete indirir.

Basitleştirilmiş Kod Tabanı: DecodeType yapılandırma bloğu, BitmapImage yükleme adımı, platforma özgü okuyucu sınıf seçimi ve result.Text özellik zinciri, otomatik algılayan sonuç koleksiyonuna sahip tek bir statik yöntem çağrısı ile değiştirilir. Daha önce WPF ve WinForms okuması için farklı uygulamalar gerektiren kod, tek bir paylaşılan uygulamaya dönüşür.

Lütfen dikkate alınTelerik, ilgili sahibinin tescilli ticari markasıdır. Bu site, Progress Software ile ilişkili, onaylanmış veya desteklenmiş değildir. Tüm ürün adları, logolar ve markalar kendi sahiplerine aittir. Karşılaştırmalar, yalnızca bilgilendirme amaçlıdır ve yazı sırasında halka açık bilgilerle alakalı olarak yansıtılmaktadır.

Sıkça Sorulan Sorular

Neden Telerik Barcode'den IronBarcode'a göç etmeliyim?

Yaygın nedenler arasında lisanslamanın basitleştirilmesi (SDK + runtime anahtar karmaşıklığının kaldırılması), veri geçiş limitlerinin ortadan kaldırılması, yerel PDF desteği kazanılması, Docker/CI/CD dağıtımının iyileştirilmesi ve üretim kodunda API tekrarlama azalması yer alır.

Telerik API çağrılarını IronBarcode ile nasıl değiştirebilirim?

Örnek oluşturma ve lisanslama tekrarlamalarını IronBarCode.License.LicenseKey = "anahtar" ile değiştirin. Okuyucu çağrılarını BarcodeReader.Read(yol) ile ve yazıcı çağrılarını BarcodeWriter.CreateBarcode(veri, kodlama) ile değiştirin. Statik yöntemler örnek yönetimi gerektirmez.

Telerik Barcode'den IronBarcode'a geçerken kodda ne kadar değişiklik oluyor?

Çoğu geçiş daha az kod satırıyla sonuçlanır. Lisanslama tekrarlamaları, örnek oluşturucular ve açık format yapılandırması kaldırılır. Temel okuma/yazma işlemleri, daha temiz sonuç nesneleriyle daha kısa IronBarcode eşdeğerlerine dönüştürülür.

Geçiş sırasında Telerik Barcode ve IronBarcode'u bir arada tutmam gerekiyor mu?

Hayır. Çoğu geçiş doğrudan değişim yapılır, paralel bir işletim yerine geçer. Bir hizmet sınıfını bir seferde geçirin, NuGet referansını değiştirin ve sonraki sınıfa geçmeden önce başlatma ve API çağrı desenlerini güncelleyin.

IronBarcode için NuGet paketi adı nedir?

Paket 'IronBarCode' (büyük B ve C harfleriyle). 'Install-Package IronBarCode' veya 'dotnet add package IronBarCode' ile kurun. Kodda kullanılan yönerge 'using IronBarCode;' şeklindedir.

IronBarcode, Docker dağıtımını Telerik Barcode'ye kıyasla nasıl kolaylaştırır?

IronBarcode, harici SDK dosyaları veya montajlı lisans yapılandırması olmayan bir NuGet paketidir. Docker'da, IRONBARCODE_LICENSE_KEY ortam değişkenini ayarlayın ve paket lisans doğrulamasını başlangıçta kendi kendine yapar.

Telerik'den geçiş yaptıktan sonra IronBarcode tüm barkod formatlarını otomatik olarak algılar mı?

Evet. IronBarcode, desteklenen tüm formatlardaki sembolojiyi otomatik olarak algılar. Açık BarcodeTypes sayımı gerekli değildir. Format zaten biliniyorsa ve performans önemliyse, BarcodeReaderOptions arama alanını optimize etmek için sınırlamayı sağlar.

IronBarcode, ayrı bir kütüphane olmadan PDF'lerden barkod okuyabiliyor mu?

Evet. BarcodeReader.Read("document.pdf") PDF dosyalarını yerel olarak işlemler. Sonuçlar her barkod için SayfaNumarası, Format, Değer ve Güven içerir. Harici bir PDF render adımı gerekmez.

IronBarcode, paralel barkod işlemeyi nasıl yönetiyor?

IronBarcode'un statik yöntemleri durumsuz ve thread-safe'dir. Dağıtılmış dosya listeleri üzerinde per-thread örnek yönetimi olmadan doğrudan Parallel.ForEach kullanın. BarcodeReaderOptions.MaxParallelThreads, iç thread bütçesini kontrol eder.

Telerik Barcode'den IronBarcode'a geçerken hangi sonuç özellikleri değişir?

Yaygın yeniden adlandırmalar: BarcodeValue, Value olur; BarcodeType, Format olur. IronBarcode sonuçları ayrıca Güven ve SayfaNumarası ekler. Çözüm çapında arama-değiştirme, mevcut sonuç işleme kodundaki yeniden adlandırmaları ele alır.

Bir CI/CD hattında IronBarcode lisanslamasını nasıl ayarlayabilirim?

IRONBARCODE_LICENSE_KEY'i bir boru hattı sırrı olarak saklayın ve uygulama başlangıç kodunda IronBarCode.License.LicenseKey olarak atayın. Bir sır, geliştirme, test, aşama ve üretim dahil olmak üzere tüm ortamları kapsar.

IronBarcode, özel biçimlendirmeye sahip QR kodu üretimini destekliyor mu?

Evet. QRCodeWriter.CreateQrCode() özelleştirilmiş renkler için ChangeBarCodeColor(), logo yerleştirme için AddBrandLogo(), yapılandırılabilir hata düzeltme seviyeleri ve PNG, JPG, PDF ve akış dahil birden çok çıktı formatını destekler.

Curtis Chau
Teknik Yazar

Curtis Chau, Bilgisayar Bilimleri alanında Lisans Derecesine (Carleton Üniversitesi) sahip ve Node.js, TypeScript, JavaScript ve React konularında uzmanlaşmış ön uç geliştirmeyle ilgileniyor. Sezgisel ve estetik açıdan hoş kullanıcı arayüzleri oluşturma tutkunu, Curtis modern çerçevelerle çalışmayı ve iyi yapı...

Daha Fazla Oku

Iron Destek Ekibi

Haftada 5 gün, 24 saat çevrimiçiyiz.
Sohbet
E-posta
Beni Ara