IRONSOFTWAREHOME
VIDEOLAR

Accusoft BarcodeXpress'ten IronBarcode'a Geçiş

Curtis Chau
Curtis Chau
Updated: 3 Mayıs 2026

Bu geçişteki işlerin çoğu silme ile ilgilidir. İki anahtar lisanslama sistemi — SetSolutionName, SetSolutionKey ve SetOEMLicenseKey çalışma zamanında — tamamen ortadan kalkar. Gerçek barkod operasyonları (bir görüntü okuma, bir barkodu dosyaya yazma), daha kısa IronBarcode eşdeğerlerine çevrilir. Kod tabanınızda BarcodeXpress'i saran bir BarcodeService sınıfı varsa, lisanslama kodu genellikle bunun büyük bir kısmını oluşturur. Göç ettikten sonra, bu sınıf küçülür.

Accusoft BarcodeXpress'ten Neden Göç Etmelisiniz

BarcodeXpress'ten göç eden ekipler bu tetikleyicileri bildiriyor:

Değerlendirme Modu Doğru Benchmarking'i Engeller: Geçerli bir OEM/çalışma zamanı anahtarı olmadan, BarcodeXpress çözülen sonuçları UNLICENSED accusoft.com literal dizesiyle damgalar ve oluşturulan 2D barkodlara da aynı damgayı uygular. Gerçek belgelerde ön satın alma doğruluğu testleri, bu filigranlı çıktıyı üretir, böylece satın alma taahhüt etmeden önce kitaplığın gerçek tarama türlerinizi doğru okuyup okumadığını doğrulayamazsınız.

İki Anahtar Lisanslama İşletim Maliyetini Artırır: BarcodeXpress, SDK lisansını (SetSolutionName + SetSolutionKey) OEM/çalışma zamanı lisansından (SetOEMLicenseKey) ayırır. CI/CD boru hatları, Docker konteynerleri ve konteyner orkestratörleri, her anahtar sistemi ayrı sırlar olarak yönetilmek zorundadır. Eksik veya geçersiz bir çalışma zamanı anahtarı bir hatadan ziyade filigranlı çıktıya geri döner, yalnızca geçersiz sonuçlar için kontrol eden iddialar varsa otomatik testlerden geçebilecek bir başarısızlık modu yaratır.

Herhangi Bir Üretim Dağıtımı İçin Asgari Beş Çalışma Süresi Lisansı: Tek bir sunucu dağıtımı bile en az beş çalışma süresi lisansı satın almayı gerektirir. Bir üretim sunucusu ve bir aşama sunucusu çalıştıran ekipler, gerçek kullanım ne olursa olsun en az on çalışma süresi lisansı için ödeme yapar.

40 PPM Standart Sürüm Tavanı: Standart Sürüm, işlemeyi dakikada 40 sayfa ile sınırlar. 100.000 belgelik bir grubu bu hızda yaklaşık 41 saat sürer. Tavanı kaldırmak, halihazırda satın alınmış olan çalışma zamanı lisanslarının yanı sıra, daha yüksek bir geliştirici koltuk maliyeti taşıyan Professional Edition'a yükseltmeyi gerektirir.

Doğrudan PDF Desteği: PDF dosyalarının BarcodeXpress tarafından okunmadan önce ayrı bir kütüphane kullanılarak görüntülere dönüştürülmesi gerekir. Bu harici bağımlılık, ikinci bir lisanslama maliyeti, bir dönüştürme adımı ve işlenmiş sayfa görüntülerini elde etmenin getirdiği ek bellek baskısı ekler.

İş Parçacığı Güvenliği Örnek İzolasyonu Gerektirir: BarcodeXpress'in reader nesnesi durumsaldır ve eş zamanlı erişim için güvenli değildir. Paralel toplu işlem, her iş parçacığına tam olarak başlatılmış bir BarcodeXpress örneği gerektirir; her iş parçacığı bağlamında iki katmanlı lisans başlatma tekrarlanır.

Temel Sorun

BarcodeXpress, herhangi bir barkod okunmadan önce çok adımlı bir başlatma, bir Bitmap yüklemesi ve bir BarcodeType[] yapılandırması gerektirir:

using var bitmap = new Bitmap(imagePath);
var barcodeXpress = new BarcodeXpress(".");
barcodeXpress.Licensing.SetSolutionName("AcmeCorp");
barcodeXpress.Licensing.SetSolutionKey(1, 2, 3, 4);
barcodeXpress.Licensing.SetOEMLicenseKey("2.0.OEMLicenseStringFromAccusoft...");

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

Result[] results = barcodeXpress.reader.Analyze(bitmap);
var value = results.FirstOrDefault()?.BarcodeValue;

IronBarcode bu tüm bloğu tek bir statik çağrı ile değiştirir:

var value = BarcodeReader.Read(imagePath).First().Value;

##IronBarcode ile Accusoft BarcodeXpress: Özellik Karşılaştırması

ÖzellikAccusoft BarcodeXpressIronBarcode
Lisans modeliSDK anahtarı + OEM/çalıştırma anahtarı (ayrı satın alımlar)Tek süreli anahtar
Asgari çalışma zamanı lisansları5 (hatta 1 sunucu için)Çalışma zamanı lisans konsepti yok
Değerlendirme moduÇözülmüş değerler ve oluşturulan 2D barkodlar UNLICENSED accusoft.com ile damgalanmıştırTam değerler döner; yalnızca oluşturulan çıktıda filigran
Geçirgenlik sınırı40 S/DK (Standart Sürüm)Herhangi bir katmanda sınırlama yok
Format otomatik algılamaManuel — BarcodeType[] dizisini BarcodeTypes'e atamak zorundaDesteklenen tüm formatlarda otomatik
PDF desteğiSayfaları Bitmaps'e işlemek için harici kütüphane gerektirirYerel — BarcodeReader.Read("doc.pdf")
API stiliÖrnek tabanlı; Bitmap girişi; özellik/metod yapılandırmasıStatik fabrika yöntemleri, akıcı API
Thread güvenliğiHer iplik için ayrı örnek gerekDurumsuz statik yöntemler — iş parçası güvenli
Docker lisans yapılandırmaLisans dosyasını bağla veya lisans sunucusuTek bir ortam değişkeni
CI/CD sırları gereklidirSDK anahtarı çifti + OEM/çalıştırma anahtarıTek bir sır
.NET Framework / .NET CoreAyrı paketler: Accusoft.BarcodeXpress.Net ve Accusoft.BarcodeXpress.NetCoreSingle IronBarcode package (.NET Framework 4.6.2+, .NET Core 3.1+, .NET 5–8)
Linux/macOSEvet (.NetCore paketi aracılığıyla)Evet — Windows x64/x86, Linux x64, macOS x64/ARM
Logolu QR koduManuel GDI+ bindirme gerekliAddBrandLogo("logo.png") yerleşik
Fiyat başlangıç noktası$1,960+ SDK + minimum 5 çalışma zaman lisansı749 USD süresiz (Lite, 1 geliştirici)
Süresiz lisansStandart değil — satış ekibiyle iletişime geçinEvet, tüm katmanlar

Hızlı Başlangıç: Accusoft BarcodeXpress'ten IronBarcode Göç

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

dotnet remove package Accusoft.BarcodeXpress.NetCore
dotnet add package IronBarcode
SHELL

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

// Remove
using Accusoft.BarcodeXpressSdk;

// Add
using IronBarCode;

Adım 3: Lisansa İzin Verin

Lisans başlatmasını uygulama başlatıldıktan sonra bir kez Program.cs, Startup.cs veya bağımlılık enjeksiyon konfigürasyonunuza ekleyin:

// Add once at application startup
IronBarCode.License.LicenseKey = "YOUR-LICENSE-KEY";

Üretimde anahtarı ortam değişkeninden veya sır yöneticinizden okuyun:

IronBarCode.License.LicenseKey =
    Environment.GetEnvironmentVariable("IRONBARCODE_LICENSE")
    ?? throw new InvalidOperationException("IronBarcode license key not configured");

Hayır SetSolutionKey, hayır SetOEMLicenseKey, sunucu başına çalışma zamanı etkinleştirmesi yok. Bu, tam lisans kurulumudur.

Kod Göç Örnekleri

Lisans Başlatma

BarcodeXpress Yaklaşımı:

using Accusoft.BarcodeXpressSdk;

public class BarcodeService
{
    private readonly BarcodeXpress _barcodeXpress;

    public BarcodeService()
    {
        // Constructor takes the path containing the Barcode Xpress runtime files.
        _barcodeXpress = new BarcodeXpress(".");

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

        // OEM/runtime license — separate purchase, minimum 5 licenses required.
        // Without this call, decoded values and generated 2D barcodes are
        // stamped with " UNLICENSED accusoft.com ".
        _barcodeXpress.Licensing.SetOEMLicenseKey(
            "2.0.OEMLicenseStringFromAccusoft...");
    }
}

IronBarcode Yaklaşımı:

using IronBarCode;

// In Program.cs
IronBarCode.License.LicenseKey = Environment.GetEnvironmentVariable("IRONBARCODE_LICENSE");

// BarcodeService no longer needs a constructor or any license management
public class BarcodeService
{
    // Ready to use — no initialization needed
}

BarcodeXpress oluşturucusu yalnızca iki lisans anahtarı sistemini ve çalışma zamanı yolunu yönetmek için var.IronBarcode uygulama başlangıcında bir satır ile bunu değiştirir. BarcodeService sınıfı hiçbir yapıcıya ihtiyaç duymaz.

Barkod Okuma

BarcodeXpress Yaklaşımı:

using System.Drawing;
using Accusoft.BarcodeXpressSdk;

public string ReadFirstBarcode(string imagePath)
{
    // Analyze takes a System.Drawing.Bitmap; the SDK does not read PDFs directly.
    using var bitmap = new Bitmap(imagePath);

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

    Result[] results = _barcodeXpress.reader.Analyze(bitmap);

    return results.FirstOrDefault()?.BarcodeValue;
}

IronBarcode Yaklaşımı:

using IronBarCode;

public string ReadFirstBarcode(string imagePath)
{
    var results = BarcodeReader.Read(imagePath);
    return results.First().Value;
}

BarcodeTypes dizi filtresi ve new Bitmap(...) yükleme adımı her ikisi de kaybolur. IronBarcode, desteklenen tüm sembolojilerdeki formatı otomatik olarak algılar ve doğrudan bir dosya yolu kabul eder. Bir tedarikçi Code 128'den DataMatrix'e geçiş yaparsa,IronBarcode herhangi bir kod değişikliğine ihtiyaç duymaz. Sonuç mülk adları da değişir: BarcodeValue Value olur ve BarcodeType Format olur. Çözüm genelinde bir arama-ve-değiştirme her iki yeniden adlandırmayı da yönetir.

Tek Bir Görüntüden Birden Fazla Barkod Okuma

BarcodeXpress Yaklaşımı:

using System.Drawing;
using Accusoft.BarcodeXpressSdk;

public IReadOnlyList<string> ReadAllBarcodes(string imagePath)
{
    using var bitmap = new Bitmap(imagePath);
    _barcodeXpress.reader.BarcodeTypes = new[]
    {
        BarcodeType.Code128Barcode,
        BarcodeType.QRCodeBarcode
    };

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

IronBarcode Yaklaşımı:

using IronBarCode;

public IReadOnlyList<string> ReadAllBarcodes(string imagePath)
{
    var options = new BarcodeReaderOptions { ExpectMultipleBarcodes = true };
    var results = BarcodeReader.Read(imagePath, options);
    return results.Select(r => r.Value).ToList();
}

ExpectMultipleBarcodes IronBarcode'a ilk eşleşmeden sonra taramaya devam etmesini söyler, bu da farklı bölgelerde birkaç kod bulunan belgeler için faydalıdır. Daha fazla okuma seçenekleri detayı için IronBarcode okuma belgelerine bakın.

Toplu İşleme

BarcodeXpress örnek tabanlıdır ve reader nesnesi durumsaldır, bu nedenle paralel toplu işleme her iş parçacığı başına tek bir örnek gerektirir, her iş parçacığı başına iki katmanlı lisans başlatma tekrarlanır. IronBarcode'un statik yöntemleri durumsuzdur, bu nedenle Parallel.ForEach örnek yönetimine ihtiyaç duymaz.

BarcodeXpress Yaklaşımı:

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

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

    foreach (var path in imagePaths)
    {
        using var bitmap = new Bitmap(path);
        _barcodeXpress.reader.BarcodeTypes = new[]
        {
            BarcodeType.Code128Barcode,
            BarcodeType.QRCodeBarcode
        };

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

    return results;
}

IronBarcode Yaklaşımı:

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

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

    Parallel.ForEach(imagePaths, file =>
    {
        var r = BarcodeReader.Read(file);
        var first = r.FirstOrDefault();
        if (first != null)
            results[file] = first.Value;
    });

    return new Dictionary<string, string>(results);
}

BarcodeXpress Standart Sürümü'nün dakikada 40 sayfa sınırlaması, 40'lık gruplar arasında uyuma, dakikada sayaç izleme veya gecikme ekleme gibi hız limiti işleme kodunun eklenmesine neden olduysa — bu kodu tamamen kaldırın. IronBarcode'da geçirme tavanı yoktur.

PDF Desteği Ekleme

BarcodeXpress, PDF dosyalarından doğrudan barkod okumaz. Tipik bir çözüm, ayrı bir PDF oluşturma kütüphanesi eklemeyi, her sayfayı bellekte bir görüntüye oluşturmayı ve ardından bu görüntüleri birer birer barkod okuyucusuna göndermeyi içerir.

BarcodeXpress Yaklaşımı:

// Requires a separate PDF library (not shown — varies by team choice)
// Pattern: render each PDF page to a Bitmap, then pass it to Analyze.
foreach (Bitmap pageBitmap in pdfRenderer.RenderPages("document.pdf"))
{
    using (pageBitmap)
    {
        _barcodeXpress.reader.BarcodeTypes = Enum.GetValues(typeof(BarcodeType));
        Result[] barcodes = _barcodeXpress.reader.Analyze(pageBitmap);
        // ... collect results
    }
}

IronBarcode Yaklaşımı:

using IronBarCode;

// One call — no rendering step, no external dependency
var results = BarcodeReader.Read("document.pdf");

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

Eğer BarcodeXpress okuma iş akışını desteklemek için sadece Aspose.PDF, PdfiumViewer, itext7 veya başka bir PDF kütüphanesi eklendiyse, geçişten sonra kaldırılabilir. Ek seçenekler için IronBarcode PDF okuma kılavuzuna bakın, sayfa aralığı seçimi dahil.

Barkod Oluşturucu

BarcodeXpress Yaklaşımı:

using System.Drawing;
using Accusoft.BarcodeXpressSdk;

public void GenerateBarcode(string data, string outputPath)
{
    _barcodeXpress.writer.BarcodeType = BarcodeType.Code128Barcode;
    _barcodeXpress.writer.BarcodeValue = data;

    // CreateBitmap returns a System.Drawing.Bitmap; persist via Bitmap.Save.
    using Bitmap bitmap = _barcodeXpress.writer.CreateBitmap();
    bitmap.Save(outputPath);
}

IronBarcode Yaklaşımı:

using IronBarCode;

public void GenerateBarcode(string data, string outputPath)
{
    BarcodeWriter.CreateBarcode(data, BarcodeEncoding.Code128)
        .ResizeTo(400, 100)
        .SaveAsPng(outputPath);
}

Akıcı zincir mülk atamalarını, CreateBitmap çağrısını ve Bitmap.Save adımını değiştirir. Veritabanında saklama veya bir API'den döndürecek şekilde barkodu ikili veri olarak almak için:

byte[] pngBytes = BarcodeWriter.CreateBarcode(data, BarcodeEncoding.Code128)
    .ToPngBinaryData();

QR Kod Oluşturma

BarcodeXpress Yaklaşımı:

_barcodeXpress.writer.BarcodeType = BarcodeType.QRCodeBarcode;
_barcodeXpress.writer.BarcodeValue = data;

using Bitmap bitmap = _barcodeXpress.writer.CreateBitmap();
bitmap.Save("qr.png");
// Logo overlay required manual GDI+ drawing on the returned Bitmap

IronBarcode Yaklaşımı:

using IronBarCode;
using IronSoftware.Drawing;

// Simple QR
QRCodeWriter.CreateQrCode("https://example.com", 500)
    .SaveAsPng("qr.png");

// With branded logo
QRCodeWriter.CreateQrCode("https://example.com", 500)
    .AddBrandLogo("logo.png")
    .SaveAsPng("qr-branded.png");

// With high error correction (for logo overlays)
QRCodeWriter.CreateQrCode(
    "https://example.com",
    500,
    QRCodeWriter.QrErrorCorrectionLevel.Highest)
    .AddBrandLogo("logo.png")
    .SaveAsPng("qr-branded-high-ecc.png");

// Colored QR code
QRCodeWriter.CreateQrCode("https://example.com", 300)
    .ChangeBarCodeColor(Color.DarkBlue)
    .SaveAsPng("qr-colored.png");

Logo gömme, hata düzeltme seviyesi ve renk özelleştirmesi akıcı API'ye yerleşiktir. BarcodeXpress, bu özelliklerin herhangi biri için başlangıç dosyasını yazdıktan sonra manuel GDI+ çizimi gerektirir. Daha fazla QR kod seçeneği için, QR kod oluşturma kılavuzuna bakın.

Accusoft BarcodeXpress API'den IronBarcode Haritalama Referansı

Accusoft BarcodeXpressIronBarcode
new BarcodeXpress(".")Statik yöntemler — örnek gerektirmez
Licensing.SetSolutionName("...")IronBarCode.License.LicenseKey = "key"
Licensing.SetSolutionKey(a, b, c, d)(removed — not needed)
Licensing.SetOEMLicenseKey(string)(removed — no OEM/runtime key concept)
new Bitmap(path) + reader.Analyze(bitmap)BarcodeReader.Read(path)
reader.BarcodeTypes = new[] { BarcodeType.Code128Barcode, ... }(removed — auto-detection handles all formats)
result.BarcodeValueresult.Value
result.BarcodeTyperesult.Format
writer.BarcodeType = BarcodeType.Code128BarcodeBarcodeWriter.CreateBarcode("data", BarcodeEncoding.Code128)
writer.BarcodeValue = "data"(first argument to CreateBarcode)
writer.CreateBitmap() + bitmap.Save(path).SaveAsPng(path)
writer.BarcodeType = BarcodeType.QRCodeBarcodeQRCodeWriter.CreateQrCode(data, size)
40 S/DK Standart sınırHerhangi bir katmanda veri işleme sınırı yok

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

Sorun 1: Mülk Adı Derleme Hataları

BarcodeXpress: Sonuç nesneleri IronBarcode'da bulunmayan BarcodeValue ve BarcodeType'i gösterir.

Çözüm: Derleme öncesi çözüm genelinde arama-ve-değiştirme çalıştırın:

grep -r "\.BarcodeValue" --include="*.cs" .
grep -r "\.BarcodeType" --include="*.cs" .
SHELL

Tüm dosyalarda bulunan result.BarcodeValue'i result.Value ile ve result.BarcodeType'i result.Format ile değiştirin.

Sorun 2: Bağımsız Lisans Yapılandırma Çağrıları

BarcodeXpress: SetSolutionName, SetSolutionKey ve SetOEMLicenseKey çağrıları — ve kodlanmış çıktıda " UNLICENSED accusoft.com " filigranını tespit eden özel iddialar dahil — birçok kod tabanında filigranlı çıktı arıza moduna karşı savunma olarak bulunur.

Çözüm: Tüm bu çağrı noktalarını bulun ve silin — IronBarcode'un eşdeğer bir durumu yoktur. Lisans anahtarı ya geçerlidir ya da değildir ve eğer geçerli değilse, deneme limitleri bireysel çözülen değerleri bozmadan eşit olarak uygulanır:

grep -r "SetOEMLicenseKey" --include="*.cs" .
grep -r "SetSolutionName" --include="*.cs" .
grep -r "SetSolutionKey" --include="*.cs" .
grep -r "UNLICENSED accusoft" --include="*.cs" .
SHELL

Tüm bu çağrı siteleri silinebilir.

Sorun 3: Docker Lisans Dosyası Montajını Çevre Değişkenine Kaydırma

BarcodeXpress: Docker dağıtımları genellikle bir BarcodeXpress lisans yapılandırma dosyasını bilinen bir yolda konteynere bir COPY veya birim montaj talimatı kullanarak monte eder.

Çözüm: Yapılandırma dosyası kopyasını kaldırın ve bir ortam değişkeniyle değiştirin:

# Remove this
COPY accusoft-license.lic /app/license/

# Add this
ENV IRONBARCODE_LICENSE=YOUR-LICENSE-KEY
Text

Uygulama başlamasında:

IronBarCode.License.LicenseKey =
    Environment.GetEnvironmentVariable("IRONBARCODE_LICENSE");

Kubernetes'te, lisans anahtarı kıl kabuğu yapılandırmasında gizli bir referans olur:

env:
  - name: IRONBARCODE_LICENSE
    valueFrom:
      secretKeyRef:
        name: ironbarcode-secrets
        key: license-key
Text

Sorun 4: Hız Sınırı İşleme Kodu

BarcodeXpress: Standart Sürüm'ün dakikada 40 PPM tavanı altında büyük grupları işleyen ekipler genellikle belgeler arasında uyuma, dakikada sayaç izleme veya limit içinde kalmak için gecikme ekleme gibi kodlar ekledi.

Çözüm: Tüm hız sınırlama kodlarını kaldırın. Bunu şununla bulun:

grep -r "40\|PPM\|pagesPerMinute\|minuteStart" --include="*.cs" .
SHELL

IronBarcode, hız tavanı yoktur. — Altyapınızın desteklediği hızda işleyin.

Konu 5: İleti Güvenliği — Örnek Havuzu Kaldırılması

BarcodeXpress: Eşzamanlı işlemeyi destekleyen kod tabanları genellikle bir BarcodeXpress örnekleri havuzu tutar veya iş parçacığı başına durumsal okuyucuyu izole etmek için bir ThreadLocal<BarcodeXpress> deseni kullanır.

Çözüm: Havuzlama mantığını tamamen kaldırın. IronBarcode'un BarcodeReader.Read ve BarcodeWriter.CreateBarcode durumsuz statik yöntemlerdir. Herhangi bir sayıda ileti tarafından yapılan eşzamanlı çağrılar birbirlerine engel olmaz.

Accusoft BarcodeXpress Geçiş Kontrol Listesi

Geçiş Öncesi Görevler

Herhangi bir kod değişikliği yapmadan önce tüm BarcodeXpress kullanımını belirlemek için kod tabanını denetleyin:

grep -r "BarcodeXpress" --include="*.cs" .
grep -r "Accusoft" --include="*.cs" .
grep -r "SetSolutionName" --include="*.cs" .
grep -r "SetSolutionKey" --include="*.cs" .
grep -r "SetOEMLicenseKey" --include="*.cs" .
grep -r "reader\.Analyze" --include="*.cs" .
grep -r "writer\.CreateBitmap" --include="*.cs" .
grep -r "\.BarcodeValue" --include="*.cs" .
grep -r "\.BarcodeType" --include="*.cs" .
grep -r "BarcodeType\." --include="*.cs" .
SHELL
  • BarcodeTypes atamalarında açıkça listelenen barkod formatlarını not edin - bunların hepsi IronBarcode'da otomatik olarak algılanır
  • Kaldırılabilecek herhangi bir hız-sınır yönetim kodunu belirleyin
  • Yalnızca BarcodeXpress okumasını desteklemek için eklenen PDF işleme kitaplıklarını belirleyin — bunlar da kaldırılabilir -IronBarcode lisans anahtarınızı edinin ve gizli bilgiler yöneticinize ekleyin

Kod Güncelleme Görevleri

  1. Tüm .csproj dosyalarından Accusoft.BarcodeXpress.NetCore'i kaldırın
  2. Barkod işlevselliği gerektiren tüm .csproj dosyalarına IronBarcode ekleyin
  3. Tüm dosyalarda using Accusoft.BarcodeXpressSdk;'i using IronBarCode; ile değiştirin
  4. Uygulama başlangıcına IronBarCode.License.LicenseKey = ... ekleyin
  5. Tüm BarcodeXpress yapıcı çağrıları ve örnek alanları silin
  6. Tüm SetSolutionName, SetSolutionKey ve SetOEMLicenseKey çağrılarını silin
  7. Çözülen çıktıları UNLICENSED accusoft.com filigranını tarayan özel iddiaları silin
  8. new Bitmap(path) + reader.Analyze(bitmap)'i BarcodeReader.Read(path) ile değiştirin
  9. Tüm reader.BarcodeTypes = ... atamalarını kaldırın
  10. result.BarcodeValue'i result.Value ile değiştirin
  11. result.BarcodeType'i result.Format ile değiştirin
  12. writer.CreateBitmap() + bitmap.Save(path)'i BarcodeWriter.CreateBarcode(data, encoding).SaveAsPng(path) ile değiştirin
  13. Hız-sınırlama kısıtlama kodunu kaldırın
  14. PDF işleme ara kodunu var ise kaldırın
  15. BarcodeXpress örnekleri için örnek havuzlamayı veya ThreadLocal desenlerini kaldırın
  16. Dockerfile ve docker-compose dosyalarından lisans dosyası bağlantılarını kaldırın
  17. Docker ve konteyner yapılandırmalarına IRONBARCODE_LICENSE çevre değişkeni ekleyin
  18. Kubernetes gizli bilgilerini ve pod özelliklerini güncelleyin
  19. CI/CD hattı gizliliklerini güncelleyin — ACCUSOFT_SOLUTION_KEY ve ACCUSOFT_RUNTIME_KEY'i kaldırın; IRONBARCODE_LICENSE ekleyin

Geçiş Sonrası Testler

  • Çözümü oluşturun — yeniden adlandırılmış özelliklerden kalan derleme hatalarını düzeltin
  • Tüm barkod okuma işlemlerine karşı birim testleri çalıştırın
  • Tüm barkod oluşturma işlemlerine karşı birim testleri çalıştırın
  • Uygun durumda PDF girdileri ile test yapın
  • Herhangi bir aktarım kısıtlama davranışını doğrulamak için bir toplu işleme testi çalıştırın
  • Bir aşama ortamına dağıtın ve lisans anahtarının ortam değişkeninden doğru bir şekilde çözüldüğünü doğrulayın

IronBarcode'a Geçmenin Temel Faydaları

İki Anahtar Lisans Karmaşıklığının Ortadan Kalkması: SetSolutionName, SetSolutionKey ve SetOEMLicenseKey kurulumu tamamen ortadan kalkar. Bir anahtar, geliştirme aşamasından üretime kadar tüm ortamları kapsar ve deneme modu, önceden satın alma benchmark testi için gerçek belgeler üzerinde mümkün olduğu için her birini UNLICENSED accusoft.com ile damgalamak yerine tam çözülen değerler döndürür.

Çalışma Zamanı Lisansı asgari Alışveriş Yok: BarcodeXpress herhangi bir üretim dağıtımı için en az beş çalışma zamanı lisansı gerektirir. IronBarcode'un çalışma zamanı lisansı kavramı yoktur — tek süresiz anahtar, içinde bulunduğu seviye dahilinde herhangi bir sayıda üretim dağıtımını kapsar.

Tavan Olmayan Aktarım: Standart Sürüm 40-PPM üst sınırı ve sınırda kalmak için yazılmış olan herhangi bir hız sınırı kodu kaldırılabilir. IronBarcode, temel donanım ve ağın desteklediği herhangi bir hızda işlem yapar, yazılım dayatılan herhangi bir tavan fiyatlandırma basamaklarında yoktur.

Yerel PDF Okuma: BarcodeReader.Read("document.pdf") PDF dosyalarını doğrudan işler, sayfa numarası, format, değer ve güven puanı ile sayfa başına sonuçları döndürür. Yalnızca BarcodeXpress'i desteklemek için eklenen herhangi bir PDF işleme kitaplığı kaldırılabilir, bu da bağımlılıkları ve lisanslama maliyetlerini azaltır.

Durumsuz İş Parçacığı Güvenliği: BarcodeReader.Read ve BarcodeWriter.CreateBarcode durumsuz statik yöntemlerdir. Örnek havuzları, ThreadLocal desenleri ve iş parçacığı başına başlatma blokları tamamen kaldırılabilir. Parallel.ForEach ile eşzamanlı işlem, iş parçacığı çözümlerinin kaldırılmasının ötesinde yapısal değişiklik gerektirmez.

Basitleştirilmiş Konteyner Dağıtımı: Docker ve Kubernetes dağıtımları, lisans yapılandırması için tek bir ortam değişkeni kullanır. Lisans dosyası dağıtımı, lisans sunucusu altyapısı ve yapılandırma dosyası bağlantı noktaları tamamen kaldırılır.

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ılandırılmış, görsel olarak çekici kılavuzlar oluşturmayı seviyor.

...
Daha Fazla Oku

İlgili Makaleler

Key in blue circle

Ücretsiz 30 günlük Deneme Anahtarınızı anında edinin.

Your trial license will be sent to your email address

Herhangi bir sınırlama yoktur. %100 erişim. Kredi kartı gerekmez.

bullet_checkedKredi kartı veya hesap oluşturma gerektirmezHerhangi bir sınırlama yoktur. %100 erişim. Kredi kartı gerekmez.
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
Ücretsiz Canlı Demo rezervasyonu yapın
Booking Badge

Dünya Çapında Milyonlarca Mühendisin Güvendiği

Iron Software müşteri logoları
Bağımsız Danışmanlık Alın
Aşağıdaki formu doldurun veya sales@ironsoftware.com adresine e-posta gönderin
Bilgileriniz daima gizli kalacaktır.
Dünya Çapında Milyonlarca Mühendisin Güvendiği
Iron Software müşteri logoları
Ücretsiz 30 Günlük Deneme Anahtarınızı anında alın.
Kredi kartı veya hesap oluşturma gerektirmez