IRONSOFTWAREHOME
DIĞER BILEŞENLERLE KARŞILAŞTIRIN

Aspose BarCode for .NET vs IronBarcode: C# Barkod Kütüphanesi Karşılaştırması

Curtis Chau
Curtis Chau
Updated: 26 Nisan 2026

Aspose.BarCode kullanan her geliştirici, bu satırın bir sürümünü yazmıştır: new BarCodeReader(path, DecodeType.Code128). Formatın görüntüde ne olduğunu bildiğinizde bu gayet iyi çalışır. Bir belge harici bir sistemden geldiğinde, etiket formatını değiştiren bir tedarikçiden veya bir kullanıcı yüklemesi olduğunda, ya bir tahmin yapılır ya da DecodeType.AllSupportedTypes kullanılır ki bu genellikle Aspose'un kendi önerilerine göre daha yavaştır. Format-belirleme gereksinimi bir engel değildir ama kod tabanınızda her okuma işleminde biriken günlük bir sürtüşmedir.

PDF durumu bütçe hikayesidir. PDF belgelerinden barkod işliyorsanız, Aspose.BarCode bunu tek başına yapamaz. Sayfaları önce görüntülere dönüştürmek için Aspose.PDF for .NET gereklidir. Aspose.PDF, halihazırda Aspose.BarCode için ödediğiniz ücretin üstünde bir ayrı abonelik ürünüdür. Çoğu geliştiricinin tek bir görev olarak düşündüğü bir iş akışı için iki abonelik.

IronBarcode, barkod formatını otomatik olarak algılar, PDF'leri tek bir pakette yerel olarak okur ve 749 dolardan başlayan bir süresiz lisans sunar. Bu karşılaştırma, her iki kütüphaneyi de detaylı inceleyerek tam bir sonuç sunar.

Aspose.BarCode'u Anlamak

Aspose yıllardır .NET, Java ve diğer platformlar için belge işleme kütüphaneleri geliştiriyor. Aspose.BarCode, Aspose.Words, Aspose.Cells, Aspose.PDF, Aspose.Slides ve yaklaşık bir düzine diğerleriyle birlikte ailenin birçok ürününden biridir. Aspose.Total için zaten ödeme yapan ekipler için — Aspose ürünlerinin tümünü içeren paket — Aspose.BarCode ilave maliyetsiz gelir. Sadece bir barkod kütüphanesine ihtiyaç duyan ekipler için, abonelik modeli haklı çıkarmak daha zordur.

Aspose.BarCode, herhangi bir ticari .NET barkod kütüphanesindeki en eksiksiz format listelerinden biri olan 80'den fazla barkod sembolojiğini destekler. Bu genişlik kütüphanenin en güçlü satış noktasıdır. API yüzeyi de buna bağlı olarak büyük, ve özelliklerle birlikte API detaylılığı artar. Temel bir Code 128 barkodu oluşturmak, bir BarcodeGenerator örneği oluşturmayı, XDimension, BarHeight ve diğer parametreleri ayarlamayı ve ardından açık bir format argümanı ile Save çağrısını gerektirir. Okuma, arama yapılacak kod çözme türlerinin belirtilmesini ve ardından ReadBarCodes() tarafından döndürülen sonuçların yinelemeli bir şekilde kontrol edilmesini gerektirir. Her iki işlem de doğru bir şekilde çalışır — sadece olması gerekenden daha detaylıdırlar.

Aspose.BarCode'un kilit mimari özellikleri:

  • Format-First Okuma Modeli: Her okuma işlemi, DecodeType açıkça belirtilmesini gerektirir. Geri dönüş DecodeType.AllSupportedTypes genellikle hedefli bir listeye göre daha yavaştır çünkü kod çözücü, her bilinen semboloji üzerinden sıralı olarak çalışır.
  • Örnek Tabanlı API: Hem BarCodeReader hem de BarcodeGenerator, IDisposable'yi uygulayan örnek nesnelerdir. Bunlar, yerel kaynakları serbest bırakmak için using blokları içinde sarılmalıdır.
  • Yerel PDF Desteği Yoktur: Aspose.BarCode, PDF belgelerini doğrudan açamaz veya render edemez. PDF'lerden barkod okuması, ayrı bir abonelik ürünü olan Aspose.PDF gerektirir.
  • Derin Parametre Hiyerarşisi: Özelleştirme, hafızada kalması gereken çok seviyeli bir nesne hiyerarşisi olan generator.Parameters.Barcode.* özellik zincirleri üzerinden gerçekleştirilir.
  • Abonelik Lisanslaması: Aspose'un yayınladığı fiyatlara göre, geliştirici başına ve site basamakları yıllık aboneliklerdir; bağımsız bir süresiz seçenek listelenmemiştir.
  • Dosya Tabanlı Lisans Aktivasyonu: Üretim dağıtımları, bilinen bir yolda erişilebilen bir .lic dosyası gerektirir ve bu da Docker ve Kubernetes ortamları için bir dağıtım adımı ekler.

Format-Önce Okuma Modeli

Aspose.BarCode'un okuma API'sı, arayanın barkod formatını bildiği varsayımına dayanır:

using Aspose.BarCode.BarCodeRecognition;

var reader = new BarCodeReader("barcode.png", DecodeType.Code128);
foreach (var result in reader.ReadBarCodes())
    Console.WriteLine($"{result.CodeTypeName}: {result.CodeText}");

Formatı bildiğinizde, bu desen uygundur. Sorun 'formatı bildiğinizde.' Tedarikçi faturalarını işleyen bir satın alma sistemi, her tedarikçinin aynı barkod türünü kullandığını garanti edemez. Kullanıcı yüklemelerini kabul eden bir belge yönetim sistemi, bir tarayıcının hangi formatı kullandığını tahmin edemez. Bu durumlarda, DecodeType.AllSupportedTypes bir geri dönüş olur ve genellikle hedefli bir kod çözme türü listesine göre daha yavaştır.

Dekoderin ayrıca imha edilmesi gerekir:

using var reader = new BarCodeReader("barcode.png", DecodeType.Code128);

using kullanılmaması bir kaynak sızıntısıdır. BarcodeGenerator ayrıca IDisposable'yi de uygular, ancak bunun elden çıkarılmamasının sonuçları o kadar ağır değildir. Her iki durumda da, statik bir fabrika API'si otomatik olarak yürütülen nesne ömrü yönetiyorsunuz.

IronBarcode Anlama

IronBarcode hem okuma hem de yazma için statik fabrika yöntemlerini kullanır. Konstrükte edilecek, yapılandırılacak veya imha edilecek bir örnek yoktur. Okuma API'si varsayılan olarak format-agnostiktir ve kaynak dosyasının PNG, JPEG, TIFF veya PDF olup olmadığına bakılmaksızın aynı çağrı çalışır.

IronBarcode, .NET geliştirici araçlarına odaklanmış bir şirket olan Iron Software tarafından geliştirildi ve sürdürüldü. Kütüphane, barkod okumanın barkod formatı hakkında önceden bilgi gerektirmemesi ilkesine göre tasarlanmıştır - kütüphanenin algılama motoru, formatı görüntü içeriğinden belirler. Oluşturma için, akıcı bir yöntem zinciri diğer kütüphanelerde yaygın olan çok seviyeli parametre hiyerarşisinin yerini alır.

IronBarcode'un ana özellikleri:

  • Otomatik Format Algılama: BarcodeReader.Read(), arayanın bir DecodeType eşdeğeri belirtmesini gerektirmeden, görüntü içeriğinden barkod sembolojisini tanımlar.
  • Statik Durumsuz API: Tüm okuma ve yazma işlemleri statik metodlardır. Yönetilecek atılabilir örneklere ihtiyaç yok, ve API doğal olarak eşzamanlı kullanım için iş parçacığı güvenlidir.
  • Yerel PDF Destek: BarcodeReader.Read("doc.pdf"), ek bir paket veya render adımına ihtiyaç duymadan doğrudan PDF dosyalarından okur. Sonuçlar result.PageNumber içerir.
  • Akıcı Üretim API'si: BarcodeWriter.CreateBarcode(), zincirlenebilir bir nesne döndürür. Özelleştirme, bir özellik hiyerarşisinden ziyade metod zincirleme kullanır.
  • Süresiz Lisans Modeli: Tüm katmanlar, yıllık yenileme gereksinimi olmadan tek seferlik satın almalardır.
  • Dize Tabanlı Lisans Aktivasyonu: Lisans anahtarı, ortam değişkenleri ve CI/CD gizli yöneticiyle uyumlu IronBarCode.License.LicenseKey üzerinden ayarlanır.

Özellik Karşılaştırması

ÖzellikAspose.BarCodeIronBarcode
Format algılamaManuel — DecodeType belirtilmeli veya yavaş AllSupportedTypes kullanılmalıdırDesteklenen tüm formatlarda otomatik
Sembol sayısı80+50+
PDF desteğiYerel destek yok — ayrı Aspose.PDF lisansı gerektirirYerel — BarcodeReader.Read("doc.pdf") pakete entegre
Fiyatlandırma modeliYalnızca abonelik — yıllık katmanlar $999/yıl'danSüresiz $999'dan (tek seferlik)
Süresiz lisansMevcut değilEvet, tüm katmanlar
API stiliÖrnek-tabanlı, söylemli yapılandırmaStatik fabrika yöntemleri, akıcı API
IDisposable gereksinimiEvet — BarCodeReader ve BarcodeGeneratorHayır — durumsuz statik metodlar
Thread güvenliğiHer iş parçacığı için ayrı örnekler gerekliStatik API — threading kılavuzu için IronBarcode belgelerine bakın

Ayrıntılı Özellik Karşılaştırması

ÖzellikAspose.BarCodeIronBarcode
Üretim
API stilinew BarcodeGenerator(EncodeTypes.X, "data")BarcodeWriter.CreateBarcode("data", BarcodeEncoding.X)
Özelleştirme modeligenerator.Parameters.Barcode.* özellik hiyerarşisiAkıcı metot zinciri (.ResizeTo(), .ChangeBarCodeColor())
Logolu QR kodOluşturmadan sonra manuel GDI+ üstü kaplama.AddBrandLogo("logo.png") yerleşik
Baytlara çıktıgenerator.GenerateBarCodeImage().ToPngBinaryData()
Renkli barkodlargenerator.Parameters.Barcode.BarColor.ChangeBarCodeColor(Color.X)
Okuma
Biçim belirtimiGerekli (DecodeType)Gerekli değil — otomatik
Bilinmeyen-format geri dönüşDecodeType.AllSupportedTypes (yavaş)Aynı çağrı — geri dönüş moduna gerek yok
Performans ayarıQualitySettings parametre setiReadingSpeed enum — üç seviyeli
Atılabilir okuyucuEvet — using var reader = new BarCodeReader(...)Hayır — statik çağrı, atılacak nesne yok
Sonuç erişimiYinele reader.ReadBarCodes()Dönüş değeri BarcodeReader.Read()
Barkod değer özelliğiresult.CodeTextresult.Value
Biçim adı özelliğiresult.CodeTypeNameresult.Format.ToString()
PDF Desteği
Yerel PDF okumaHayırEvet
PDF için gerekliAspose.PDF (ayrı abonelik)Ek paket yok
Sonuçlarda sayfa numarasıYokresult.PageNumber
Lisanslama
Lisans modeliSadece abonelik, yıllık yenilemeSüresiz, tek seferlik satın alma
Tek geliştirici$999/yıl$999 tek seferlik
10 geliştirici$4,995/yıl (Site lisansı)$2,399 tek seferlik (Professional)
Sınırsız dağıtım (10 geliştirici)$13,986/yıl (Site OEM)$4,799 tek seferlik (Sınırsız)
PDF desteği dahilHayır — ayrı Aspose.PDF aboneliğiEvet
Platform ve Uygulama
Lisans aktivasyonu.lic dosya yoluDize anahtarı — ortam değişkeni
Docker dağıtımıGörüntüye .lic dosyasını kopyalamalı veya bağlanmalıdırOrtam değişkeni — dosya gerekli değil
.NET FrameworkEvetEvet (4.6.2+)
.NET Core / .NET 5+EvetEvet(.NET Core 3.1+, .NET 5/6/7/8)
WindowsEvetEvet (x64/x86)
LinuxEvetEvet (x64)
macOSEvetEvet (x64/ARM)
DockerEvetEvet
Azure / AWS LambdaEvetEvet

Oluşturma API'si

Oluşturma API'si, iki kütüphane arasındaki ifadelerinin farklılıklarının günlük kodda en belirgin olduğu yerdir.

Aspose.BarCode Yaklaşımı

Aspose.BarCode, yapılandırma için BarcodeGenerator sınıfı ve Parameters hiyerarşisi kullanır. Minimal bir oluşturma çağrısı üç adım gerektirir - örnekleme, kaydetme çağrısı ve biçim belirtimi. Gerçek kullanım, genellikle generator.Parameters.Barcode.*'a girmeyi gerektirir:

using Aspose.BarCode.Generation;
using System.Drawing;

var generator = new BarcodeGenerator(EncodeTypes.Code128, "ITEM-12345");

// Common customizations require navigating a deep parameter hierarchy
generator.Parameters.Barcode.XDimension.Pixels = 2;
generator.Parameters.Barcode.BarHeight.Pixels = 100;
generator.Parameters.Barcode.CodeTextParameters.Location = CodeLocation.Below;
generator.Parameters.Barcode.CodeTextParameters.Font.FamilyName = "Arial";
generator.Parameters.Barcode.Padding.Left.Pixels = 10;
generator.Parameters.Barcode.Padding.Right.Pixels = 10;
generator.Parameters.BackColor = Color.White;
generator.Parameters.Resolution = 300;

generator.Save("barcode.png", BarCodeImageFormat.Png);

Her özelleştirme generator.Parameters.Barcode.* içine girmeyi gerektirir, bu çok seviyeli bir nesne hiyerarşisidir. Ezberlediğinizde karmaşık değil — ama ezber gerektiriyor.

IronBarcode Yaklaşımı

IronBarcode, parametre hiyerarşisinin yerine akıcı bir yöntem zincirini getirir. Varsayılan ayarlar, çoğu kullanım durumu için doğru sonuçlar üretir ve özelleştirme satır içi ifade edilir.

using IronBarCode;

// Default settings work for most cases
BarcodeWriter.CreateBarcode("ITEM-12345", BarcodeEncoding.Code128)
    .SaveAsPng("barcode.png");

// Customization through a fluent chain
BarcodeWriter.CreateBarcode("ITEM-12345", BarcodeEncoding.Code128)
    .ResizeTo(400, 100)
    .SaveAsPng("barcode.png");

// Get as bytes instead of saving to disk
byte[] pngData = BarcodeWriter.CreateBarcode("ITEM-12345", BarcodeEncoding.Code128)
    .ToPngBinaryData();

QR kodlar için, IronBarcode'un QR oluşturma API'si, elle görüntü kompozisyonu olmadan marka logosu desteği içerir.

using IronBarCode;
using IronSoftware.Drawing;

// With brand logo — built in, no manual image overlay needed
QRCodeWriter.CreateQrCode("https://example.com", 500)
    .AddBrandLogo("logo.png")
    .SaveAsPng("qr-branded.png");

// With high error correction (recommended when using a logo)
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");

Aspose.BarCode, QR kodları için tek çağrılı bir markalı logo yardımcısı göndermez; Belgelendirilmiş yaklaşım, barkod görüntüsünü oluşturmak ve ardından logoyu bunun üzerine kompozit etmektir (örneğin System.Drawing.Graphics ile). IronBarcode'un AddBrandLogo, kompoziti bir çağrıda halleder ve hataları düzeltme düzeltmeyi otomatik olarak ayarlar.

PDF Barkod Okuma

Birçok ekip için, bu en önemli karşılaştırmadır. PDF belgelerinden barkod okuması, ortak bir iş akışıdır: gelen faturalar, PDF olarak kaydedilmiş gönderi etiketleri, taranmış belge arşivleri.

Aspose.BarCode Yaklaşımı

Aspose.BarCode'un yerel PDF desteği yok. Bir PDF ile bir barkod okumak için Aspose, PDF'yi yüklemek ve sayfaları görsellere dönüştürmek için Aspose.PDF'ye ve bu işlenmiş görselleri taramak için Aspose.BarCode'a ihtiyaç duyar. Her ikisi de abonelik ürünleridir. Her ikisi de lisans aktivasyonu gerektirir. Çoğu geliştiricinin tek bir yetenek olarak düşündüğü iki yıllık abonelik ödüyorsunuz.

// Requires both Aspose.PDF (separate license) and Aspose.BarCode
using Aspose.Pdf;
using Aspose.Pdf.Devices;
using Aspose.BarCode.BarCodeRecognition;
using System.IO;

public List<string> ReadBarcodesFromPdf(string pdfPath)
{
    var barcodeValues = new List<string>();

    // Step 1: Load and render the PDF using Aspose.PDF
    var pdfDocument = new Aspose.Pdf.Document(pdfPath);
    var resolution = new Resolution(300);
    var device = new PngDevice(resolution);

    for (int pageNum = 1; pageNum <= pdfDocument.Pages.Count; pageNum++)
    {
        using var pageStream = new MemoryStream();
        device.Process(pdfDocument.Pages[pageNum], pageStream);
        pageStream.Seek(0, SeekOrigin.Begin);

        // Step 2: Scan the rendered image for barcodes using Aspose.BarCode
        using var reader = new BarCodeReader(pageStream, DecodeType.AllSupportedTypes);
        foreach (var result in reader.ReadBarCodes())
        {
            barcodeValues.Add(result.CodeText);
        }
    }

    return barcodeValues;
}

Bu, iki lisans kurulumu, iki isim alanından iki using beyanı, bir render kanalı, bellek akışı yönetimi ve iç içe bir döngüdür. Ayrıca DecodeType.AllSupportedTypes kullanır çünkü görüntü alımı noktasında barkodun hangi formatı kullandığını genellikle bilmezsiniz.

IronBarcode Yaklaşımı

IronBarcode, PDF ayrıştırmasını, sayfa işlemesini ve barkod tespitini dahili olarak halleder. Read, sonu .pdf biten bir yolla çağırılır ve bu barkod sonuçlarını döndürür ve her birinin hangi sayfadan geldiğini gösteren result.PageNumber dahil eder. İkinci bir paket yok, ikinci bir lisans yok, işleme kodu yok.

using IronBarCode;

public List<string> ReadBarcodesFromPdf(string pdfPath)
{
    var results = BarcodeReader.Read(pdfPath);
    return results.Select(r => r.Value).ToList();
}
// With page number context
var results = BarcodeReader.Read("invoice-batch.pdf");
foreach (var barcode in results)
{
    Console.WriteLine($"Page {barcode.PageNumber}: [{barcode.Format}] {barcode.Value}");
}

IronBarcode PDF okuma dokümantasyonu, çok sayfalı toplu işleme ve sayfa aralık filtresi seçeneklerini kapsar.

Bilinmeyen Barkod Formatlarını Okuma

Bir görüntünün hangi barkod formatını içerdiğini bilmediğinizde, iki kütüphane durumu farklı şekilde ele alır.

Aspose.BarCode Yaklaşımı

DecodeType.AllSupportedTypes, format bilinmeyen senaryolar için Aspose'un çözümüdür. Aspose'un kendi belgeleri, hedeflenen bir listeyi belirtmek yerine daha yavaş olduğunu kabul eder, çünkü kod çözücü her bilinen sembolojiyi sıralı olarak çalıştırır. Yüksek hacimli işlem için — bir depo dakikada binlerce etiketi taradığında — bu performans farkı hafife alınamaz.

using Aspose.BarCode.BarCodeRecognition;

using var reader = new BarCodeReader("unknown-format.png");
reader.SetBarCodeReadType(DecodeType.AllSupportedTypes);
foreach (var result in reader.ReadBarCodes())
{
    Console.WriteLine($"{result.CodeTypeName}: {result.CodeText}");
}

IronBarcode Yaklaşımı

Format bilgisine dayalı bir "yavaş mod" ve "hızlı mod" yok. IronBarcode'un algılaması, görüntü bir Code 128 veya bir DataMatrix içerse de aynı algoritmayı çalıştırır. Performans ve doğruluk arasındaki dengeyi ayarlamak istiyorsanız, ReadingSpeed seçeneği format bilgisi gerektirmeksizin bunu yapar:

using IronBarCode;

// The same call regardless of format — always auto-detects
var results = BarcodeReader.Read("unknown-format.png");
foreach (var result in results)
{
    Console.WriteLine($"{result.Format}: {result.Value}");
}
using IronBarCode;

var options = new BarcodeReaderOptions
{
    Speed = ReadingSpeed.Balanced,
    ExpectMultipleBarcodes = true,
    MaxParallelThreads = 4
};

var results = BarcodeReader.Read("document.png", options);

ReadingSpeed.Faster, verimi önceliklendirir. ReadingSpeed.Detailed, hasarlı veya düşük kontrastlı görüntülerde doğruluğu önceliklendirir. Hiçbiri formatı önceden bilmenizi gerektirmez. Tam tuning parametre dizisi için IronBarcode okuma seçeneklerine bakın.

API Eşleme Başvurusu

Aspose.BarCodeIronBarcode
new BarcodeGenerator(EncodeTypes.Code128, "data")BarcodeWriter.CreateBarcode("data", BarcodeEncoding.Code128)
generator.Save("file.png", BarCodeImageFormat.Png).SaveAsPng("file.png")
new BarCodeReader(path, DecodeType.Code128)BarcodeReader.Read(path)
DecodeType.AllSupportedTypes (yavaş, kapsamlı tarama)Otomatik — her zaman hızlı, tüm formatlar için aynı çağrı
reader.ReadBarCodes()(part of BarcodeReader.Read — returns results directly)
Yineleme reader.ReadBarCodes()Dönüş değeri BarcodeReader.Read
result.CodeTextresult.Value
result.CodeTypeNameresult.Format.ToString()
result.Confidenceresult.Confidence
Aspose.BarCode + Aspose.PDF for PDF readingBarcodeReader.Read("doc.pdf") — tek paket
license.SetLicense("Aspose.BarCode.lic")IronBarCode.License.LicenseKey = "YOUR-LICENSE-KEY"
new Aspose.BarCode.Metered() + .SetMeteredKey()(not needed — single key covers all environments)
generator.GenerateBarCodeImage().ToPngBinaryData() veya .SaveAsPng()
QREncodeMode.Auto + QRErrorLevel.LevelH + manuel logo kaplamasıQRCodeWriter.CreateQrCode().AddBrandLogo()

Takımlar Aspose.BarCode'dan IronBarcode'a Geçişi Düşündüğünde

Geliştirme takımlarının IronBarcode'u Aspose.BarCode için bir alternatif olarak değerlendirmesine genellikle birkaç senaryo yol açar.

Abonelik Yenileme Geldiğinde

Yıllık abonelik yenileme, ekiplerin kütüphane kararlarını en sık gözden geçirdiği zamandır. Yığınla Aspose.BarCode'un yer aldığı tek Aspose ürünü ise, geliştirici başına yıllık $999 (veya Site seviyesinde yıllık $4,995) ödeme bar barkod fonksiyonelliği bir karşılaştırmayı teşvik eder. Sohbet genellikle şöyle devam eder: "Her yıl bunun için sonsuza kadar ödeme yapmaktayız. IronBarcode'un maliyeti ne kadar?" Professional katmanı için ($2,399, 10 geliştirici), IronBarcode, Site lisansına karşı ilk yıl içinde kendini amorti eder.

Aspose.Total kullanan ekipler için — Aspose.BarCode'un birçok diğer Aspose ürünleriyle paketlenmiş olduğu süreç — matematik farklıdır. Bu pakette Aspose.BarCode'un marjinal maliyeti sıfıra yaklaşır. Bu takımların geçiş yapması için daha az neden vardır.

PDF Desteği Gereklilik Olduğunda

Birçok projenin başlangıçta görsellerden barkod okuma ile başladığı ve daha sonra bir paydaşın içeriğindeki belgelerin görüntü dosyaları yerine PDF olduğunu fark ettiğinde PDF desteği eklediği görülür. Bu noktada, bir Aspose.BarCode takımı bir karar vermekle karşıya kalır: Aspose.PDF eklemek (başka bir abonelik), üçüncü taraf bir PDF çözümleyici bulmak veya barkod kütüphanesini yeniden değerlendirmek.

Aspose.PDF eklemek anında gereksinimi çözer ancak bu bir ikinci yıllık abonelik anlamına gelir. Üçüncü taraf bir işleyici bulmak bir bağımlılık ve entegrasyon çabası ekler. Barkod kütüphanesini yeniden değerlendirmek ve IronBarcode'un bir kerelik bir ücret karşılığında doğal olarak PDF okuduğunu keşfetmek genellikle sonuçtur.

Üretimde Formatı Bilinmeyen Senaryolar

Son kullanıcıya yönelik uygulamalarda belge yüklemeleri kabul edildiğinde, yüklenen belgenin hangi barkod formatını kullandığını kontrol edemezler. Uygulama Code 128 verilerine dayalı olarak oluşturulduysa ve bir müşteri bir DataMatrix etiketi yüklüyorsa, sabit bir DecodeType.Code128 sessizce hiçbir sonuç vermeden döner. DecodeType.AllSupportedTypes değiştirmek doğru çalışmayı sağlar ancak performans maliyeti getirir.

Bu sorunla karşılaşan ekipler — üretimde yeni formatlar ortaya çıktıkça okuyucu yapılandırmalarına sürekli daha fazla DecodeType değeri eklenir — genellikle yeni bir format kaynağı eklendiğinde güncellenmesi gereken bir listeyi sürdürür. IronBarcode'un otomatik algılaması bu listeyi gereksiz hale getirir.

Bulut ve Konteynerleştirilmiş Dağıtımlar

Aspose.BarCode'un dosya tabanlı lisanslaması bir dağıtım adımı ekler: lisans dosyası, zamanında erişilebilen bir yolda, uygulama tarafından okunabilir olmalıdır. Bir GitOps iş akışında, lisans dosyası ya kaynak kontrolünde (bir güvenlik riski) bulunur ya da monte edilmiş bir gizli hacim üzerinden enjekte edilmelidir. IronBarcode'un anahtar tabanlı yaklaşımı, Kubernetes güvenlikleri ve CI/CD gizli değişkenlerine temiz bir şekilde uyar ve konteyner görüntüsünde yönetilecek bir dosya yoktur.

Genel Geçiş Dikkat Edilmesi Gereken Hususlar

Aspose.BarCode'dan IronBarcode'a geçiş yapan takımlar, öngörülebilir küçük bir teknik ayarlama setiyle karşılaşır.

Özellik Adı Eşleme

Paket değiştirdikten sonra en yaygın derleme hatası, result.CodeText ile result.Value arasında yapılan ad değişikliğidir. Tüm kod tabanında arama yapıldığında, bu hızlıca kapsanır:

grep -r "\.CodeText" --include="*.cs" .
grep -r "\.CodeTypeName" --include="*.cs" .
SHELL

result.CodeText, result.Value olur. result.CodeTypeName, result.Format.ToString() olur. result.Format özelliği, aynı zamanda gerekli olduğunda yazılı karşılaştırmalara izin veren bir BarcodeEncoding enum değeridir.

DecodeType Kaldırma

Kod tabanındaki her DecodeType.* referansı kaldırılabilir:

grep -r "DecodeType\." --include="*.cs" .
SHELL

Bilinen bir formatta performansı artırmak için belirli bir DecodeType listelendiyse, ReadingSpeed.Faster içinde BarcodeReaderOptions format bilgisi gereksinimi olmadan benzer bir fayda sağlar.

Lisans Başlatma Değişikliği

Aspose.BarCode, .lic dosyasını license.SetLicense() üzerinden yükler. IronBarcode, bir dize anahtarı kullanır:

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

Depodan ve oluşturma eserlerinden .lic dosyasını kaldırın. Docker'da, COPY Aspose.BarCode.lic satırını kaldırın ve ENV IRONBARCODE_LICENSE girdisini ekleyin.

EncodeTypes'tan BarcodeEncoding'e Eşleme

EncodeTypes.QR, BarcodeEncoding.QRCode ile eşleşir — isim farkı, daha önce göç edilen oluşturma kodundan sonra ekiplerin genellikle ilk derleme hatasıyla karşılaştığı yerdir. Diğer birçok eşleme, dolaysız eşdeğerlerdir ve tutarlı isimlendirilmiştir.

Ek IronBarcode Yetenekleri

Ana karşılaştırma noktalarının ötesinde, IronBarcode, uygulama bağlamına bağlı olarak ilgili olabilecek yetenekler sağlar:

.NET Uyumluluğu ve Geleceğe Hazırlık

IronBarcode, .NET Framework 4.6.2+, .NET Core 3.1+, ve .NET 5, 6, 7, ve 8'i destekler. Kütüphane, Microsoft'un .NET sürüm döngüsüyle uyumlu olarak düzenli güncellemeler alır. Aspose.BarCode, karşılaştırılabilir bir .NET sürüm aralığını destekler, dolayısıyla hiçbiri mevcut sürümlerde uyumluluk avantajı sunmaz. Gelecek hazır olma açısından anlamlı fark, lisanslamadır: Bugün satın alınan bir IronBarcode süresiz lisansı, ek maliyet olmadan gelecekteki .NET sürümlerini kapsar; Aspose.BarCode abonelikleri ise güncellenmiş derlemelere erişim için sürekli yenileme gerektirir.

Sonuç

Aspose.BarCode ve IronBarcode, barkod kütüphanesi tasarımında iki farklı felsefeyi temsil eder. Aspose.BarCode, çağıranın formatı belirttiği, nesne ömür sürelerini yönettiği ve her işlemi bir özellik hiyerarşisi aracılığıyla yapılandırdığı açık, örnek tabanlı bir API üzerine kurulmuştur. IronBarcode, algılamayı, nesne ömür döngüsünü ve PDF işlemesini dahili olarak kütüphane tarafından ele alan statik, format-agnostik bir API üzerine kuruludur. Hiçbir yaklaşım doğası gereği doğru değildir — doğru seçim, uygulamanın ihtiyaçlarına bağlıdır.

Aspose.BarCode, zaten Aspose ekosisteminde çalışan ekipler için daha güçlü bir seçimdir. Aspose.Total zaten lisanslanmışsa, Aspose.BarCode marjinal bir maliyet eklemez ve 80+ semboloji listesi, herhangi bir ticari .NET barkod kütüphanesindeki mevcut en genişlerden biridir. Sıradışı formatlar — MaxiCode, DotCode veya IronBarcode'un 50+ listesinde olmayan belirli posta sembolojileri gerektiren uygulamalar için — Aspose.BarCode tek geçerli seçenek olabilir. Olgunluğu ve format genişliği, gerçek güçleridir.

Aspose.BarCode'u bağımsız bir satın alma olarak değerlendiren ekipler için değer hesaplaması daha zor yapılır. Format belirtimi gereksinimi her okuma işlemi için sürtüşme ekler. Yerel PDF desteğinin olmaması, IronBarcode'un temel paketine dahil ettiği bir yetenek için abonelik maliyetini iki katına çıkarır. Ve abonelik modeli, maliyetin yıllık olarak birikmesine neden olur — 10 geliştirici ekip için yılda $4,995 beş yılda $24,975'e ulaşırken,IronBarcode Professional için tek seferlik $2,399 satın alma ile kıyaslanır. IronBarcode'un otomatik algılaması, yerel PDF okuması ve süresiz lisansı, bu üç endişeyi tek bir pakette çözer.

Karar, nihayetinde ekosistem uyumu ve semboloji gereksinimlerine bağlıdır. Aspose ürünlerine derinlemesine entegre olmuş ekipler veya IronBarcode'un desteklediği liste dışındaki formatlara ihtiyaç duyan ekipler Aspose.BarCode'a aittir. Bağımsız bir sürekli lisans, yerel PDF okuma ve her okumada format bilgisi gerektirmeyen bir API isteyen ekipler, IronBarcode'u daha pratik bir seçenek olarak bulacaktı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