Altbilgi içeriğine atla
DIğER BILEşENLERLE KARşıLAşTıRıN

Syncfusion Barkod vs IronBarcode: C# Barkod Kütüphanesi Karşılaştırması

Syncfusion'un barkod ekosistemi, barkodları UI denetimleriyle üretir ve okumak için Barcode Reader OPX adlı ayrı bir ürün satar. Bu okuma ürünü, herhangi bir geliştiricinin ücretsiz olarak doğrudan yükleyebileceği, Apache 2.0 lisansı altında yayımlanan bir kütüphane olan ZXing.Net'i dahili olarak kullanır. Hem üretim hem de okuma ihtiyaç duyan ekipler, ücretli bir sarıcı aracılığıyla ücretsiz bir kütüphaneyi kullanmak için bir abonelik öder ve bu düzenleme Syncfusion barkod hikayesini takip eden her mimari ve maliyet kararını şekillendirir.

Syncfusion Barkodunu Anlamak

Syncfusion barkodu bağımsız bir kütüphane değildir; Syncfusion Essential Studio suiti içinde bir bileşendir. Oluşturma tarafı, bir UI kontrolü olarak sevk edilir: WinForms ve WPF için SfBarcode, Blazor ve MAUI için SfBarcodeGenerator. Bu denetimler, çalıştırma sırasında bir formda bir barkodu render eder ve Syncfusion'un daha geniş UI bileşeni ekosisteminde kullanılmak üzere tasarlanmıştır.

Okuma tarafı tamamen ayrı bir ticari üründür. Barcode Reader OPX, kendi lisansı, kendi NuGet paketi ve kendi API'si ile farklı bir Syncfusion sunumudur. Hem üretim hem de okuma ihtiyaç duyan ekipler, birden fazla ürünü satın almak, bakımını yapmak ve yapılandırmak zorundadır.

Syncfusion Community License, uygun kuruluşlar için ücretsiz bir katman sağlar, ancak uygunluk, aşağıdaki dört şartın aynı anda ve sürekli olarak doğru olmasını gerektirir:

  • Gelir eşiği: Şirketin yıllık toplam geliri $1,000,000 USD altında (sadece yazılım değil, tüm gelir kaynakları)
  • Geliştirici eşiği: Ekipte beş veya daha az geliştirici
  • Çalışan eşiği: Toplam on veya daha az çalışan
  • Sermaye eşiği: Tüm fon yatırımı turları boyunca $3,000,000 USD altında dış toplam sermaye

Hükümet kuruluşları, boyutu ne olursa olsun kategorik olarak uygun değildir. Şartlar kendi kendine belgelendirilmeli ve sürekli olarak karşılanmalıdır — tek bir eşiği aşmak, ticari lisanslama zorunluluğunu tetikler.

Syncfusion barkod ekosisteminin ek özellikleri şunları içerir:

  • Sadece oluşturma kontrol mimarisi: SfBarcode ve SfBarcodeGenerator bir okuma API'sine sahip değildir. Kontrol yüzeyinde hiçbir yerde .Read() veya .Scan() yöntemi yoktur.
  • Versiyon-spesifik lisans anahtarları: Syncfusion lisans anahtarları, belirli Essential Studio sürüm aralıklarına bağlıdır. 24.x sürümünden 25.x sürümüne yükseltmek, yeni bir anahtar, her ortamda sır güncellemesi ve üretimde deneme filigranlarının görünmemesini sağlamak için yeniden dağıtım gerektirir.
  • Çok aşamalı platform kaydı: Her platform hedefi (Blazor, MAUI) temel lisans çağrısına ek olarak platforma özgü hizmet kaydı çağrıları gerektirir.
  • Blazor için başsız oluşturma yolu yok: SfBarcodeGenerator, tarayıcıda görüntülenen bir Razor bileşenidir. Sunucu tarafı dosya çıktı API'si yoktur.
  • PDF çıkışı yok: Ne Windows Forms kontrolü ne de Blazor kontrolü doğrudan bir PDF dosyasına barkod yazabilir.
  • Sadece set lisanslaması: Syncfusion barkodu, Essential Studio içerisinde paketlenmiştir. Bağımsız bir barkod paketi satın alma yoktur.
  • OPX okuyucusu ücretsiz yazılımı sarar: Barcode Reader OPX, dahili olarak ZXing.Net (Apache 2.0) kullanır. ZXing.Net, doğrudan ücretsiz olarak NuGet üzerinden temin edilebilir.

Sadece Üretim Kontrol Mimarisi

SfBarcode, özellik bazlı bir API'ye sahip bir WinForms kontrolüdür: Text, Symbology, BarHeight, NarrowBarWidth, ShowText. Bir forma bir barkod render etmek, WinForms tasarımcısı içinde beklenildiği gibi çalışır. Bir barkod dosyasını programatik olarak oluşturmak, doğru boyutlarda bir Bitmap'yi önceden ayırmayı içeren DrawToBitmap modelini gerektirir:

using Syncfusion.Windows.Forms.Barcode;
using System.Drawing;
using System.Drawing.Imaging;

// Version-specific key required — changes with every major Essential Studio release
Syncfusion.Licensing.SyncfusionLicenseProvider.RegisterLicense("YOUR-VERSION-SPECIFIC-KEY");

var barcode = new SfBarcode();
barcode.Text = "12345678";
barcode.Symbology = BarcodeSymbolType.Code128A;
barcode.BarHeight = 100;
barcode.NarrowBarWidth = 1;
barcode.ShowText = true;

barcode.Width = 400;
barcode.Height = 150;
using var bitmap = new Bitmap(barcode.Width, barcode.Height);
barcode.DrawToBitmap(bitmap, barcode.ClientRectangle);
bitmap.Save("barcode.png", ImageFormat.Png);
using Syncfusion.Windows.Forms.Barcode;
using System.Drawing;
using System.Drawing.Imaging;

// Version-specific key required — changes with every major Essential Studio release
Syncfusion.Licensing.SyncfusionLicenseProvider.RegisterLicense("YOUR-VERSION-SPECIFIC-KEY");

var barcode = new SfBarcode();
barcode.Text = "12345678";
barcode.Symbology = BarcodeSymbolType.Code128A;
barcode.BarHeight = 100;
barcode.NarrowBarWidth = 1;
barcode.ShowText = true;

barcode.Width = 400;
barcode.Height = 150;
using var bitmap = new Bitmap(barcode.Width, barcode.Height);
barcode.DrawToBitmap(bitmap, barcode.ClientRectangle);
bitmap.Save("barcode.png", ImageFormat.Png);
Imports Syncfusion.Windows.Forms.Barcode
Imports System.Drawing
Imports System.Drawing.Imaging

' Version-specific key required — changes with every major Essential Studio release
Syncfusion.Licensing.SyncfusionLicenseProvider.RegisterLicense("YOUR-VERSION-SPECIFIC-KEY")

Dim barcode As New SfBarcode()
barcode.Text = "12345678"
barcode.Symbology = BarcodeSymbolType.Code128A
barcode.BarHeight = 100
barcode.NarrowBarWidth = 1
barcode.ShowText = True

barcode.Width = 400
barcode.Height = 150
Using bitmap As New Bitmap(barcode.Width, barcode.Height)
    barcode.DrawToBitmap(bitmap, barcode.ClientRectangle)
    bitmap.Save("barcode.png", ImageFormat.Png)
End Using
$vbLabelText   $csharpLabel

Bu desen, Windows Forms çalışma zamanını çağıran her projede, konsol uygulamaları, ASP.NET Core hizmetleri ve Azure İşlevleri dahil olmak üzere yüklemeyi ima eder. Blazor varyantı, SfBarcodeGenerator, bir Razor bileşenidir ve sunucu tarafında dosya çıkış yolu yoktur.

IronBarcode'u Anlamak

IronBarcode, tüm .NET uygulama modellerinde programlı üretim ve okuma için oluşturulmuş bir .NET barkod kütüphanesidir. Tek bir NuGet paketi olarak gönderilir ve ikincil bir ürün gerektirmeden aynı API yüzeyinde hem üretim hem de okuma kapsar.

Kütüphane, statik bir API modeli etrafında tasarlanmıştır: çağırıcılar statik yöntemleri (BarcodeWriter.CreateBarcode, BarcodeReader.Read, QRCodeWriter.CreateQrCode) çağırır ve sonuç üzerinde doğrudan çıktı yöntemlerini zincirler. Bu desen, WinForms masaüstü uygulamalarında, ASP.NET Core web hizmetlerinde, Azure İşlevlerinde, konsol uygulamalarında ve Linux Docker konteynerlerinde aynı şekilde çalışır.

Anahtar özellikler şunları içerir:

  • Birleşik üretim ve okuma: Her iki yetenek de aynı NuGet paketinde, aynı lisans altında, aynı API yüzeyini kullanarak.
  • Statik API: Kontrol örneği oluşturulmaz, UI çalışma zamanı bağımlılığı yoktur, DrawToBitmap dolaylılığı yoktur.
  • Platform-bağımsız: Aynı kod ve aynı lisans anahtarı, WinForms, Blazor, MAUI, ASP.NET Core, konsol, Azure İşlevlerinde ve Docker üzerinde Linux'ta çalışır.
  • Doğrudan dosya çıktısı: Barkodlar, aradaki Bitmap tahsisi olmadan doğrudan PNG, JPEG, SVG, HTML, PDF ve diğer formatlara kaydedilebilir.
  • Yerleşik PDF desteği: SaveAsPdf() birinci sınıf bir çıktı yöntemidir; kütüphane ayrıca, PDF belgelerinden barkodları yerel olarak okuyabilir.
  • Okuma sırasında otomatik format algılama: BarcodeReader.Read, çağırıcının bir tür belirtmesine gerek kalmadan barkod formatını otomatik olarak tanımlar.
  • Tek sürüm kararlı anahtar: Lisans anahtarı, büyük bir sürüm içinde küçük veya yama NuGet güncellemeleri arasında değişmez.
  • QR kod özellikleri: Gömmeli marka logolarını ve renk özelleştirmelerini doğrudan oluşturma API'sinde destekler.

Özellik Karşılaştırması

Aşağıdaki tablo, Syncfusion BarkoduveIronBarcodearasındaki üst düzey farkları özetler:

Özellik Syncfusion Barkodu IronBarcode
Barkod üretimi Evet — UI kontrolü (WinForms, WPF, Blazor, MAUI) Evet — statik programlı API, tüm ortamlar
Barkod okuma Hayır — ayrı bir Barcode Reader OPX ürünü gerektirir Evet — üretim ile aynı paket
PDF barkod çıkışı Hayır — ayrı olarak Syncfusion.Pdf gerektirir Evet — SaveAsPdf() yerleşik
PDF barkod okuma Hayır Evet — yerel
Başsız / sunucu tarafı üretim Garip — UI kontrolü, WinForms çalışma zamanı gerektirir Yerel — statik API, UI bağımlılığı yok
Ücretsiz katman Topluluk Lisansı (dört eşzamanlı koşul) 30 günlük deneme (sadece filigran)
Lisans modeli Yıllık abonelik (Essential Studio suite) Süresiz, $749'dan

Detayli Özellik Karsilastirmasi

Özellik Syncfusion Barkodu IronBarcode
Uretim
WinForms üretimi Evet (SfBarcode) Evet
WPF üretimi Evet (SfBarcode) Evet
Blazor nesil Evet (SfBarcodeGenerator, tarayıcıda görüntülenen) Evet (sunucu-tarafı API)
MAUI nesil Evet (SfBarcodeGenerator) Evet
Konsol / Azure Fonksiyonları WinForms çalışma zamanı gerektirir Yerel
Docker / Linux Sınırlı Tam destek
Doğrudan dosya çıktısı DrawToBitmap + Bitmap.Save aracılığıyla .SaveAsPng(), .SaveAsPdf(), .SaveAsSvg(), vb.
Gömülü logolu QR Hayır Evet — .AddBrandLogo()
Okuma
Barkod paketinde okuma API'si Hayır Evet — BarcodeReader.Read()
Ayrı okuma ürünü Evet — Barkod Okuyucu OPX (ücretli) Gerekli değil
OPX, ZXing.Net'i (Apache 2.0) sarar Evet — ZXing.Net ücretsizdir N/A
PDF barkod okuma Hayır Evet
Otomatik format algılama N/A Evet
Çoklu barkod algılama N/A Evet
Platform
ASP.NET Core minimal API Temiz bir şekilde desteklenmez Tam destek
Çok platformlu (Linux) Sınırlı Tam destek
Lisanslama
Ücretsiz katman Topluluk Lisansı (dört eşzamanlı koşul) 30 günlük deneme
Ticari lisans modeli Yıllık abonelik (Essential Studio) Sürekli
Giriş seviyesi ticari fiyat Yaklaşık $995/geliştirici/yıl (Standard) $749 ile süresiz
Lisans anahtarı kapsamı Sürüme özel (ana sürümlerle değişir) Ana sürüm içinde sabit sürüm
Platform kaydı yükü Çok aşamalı (RegisterLicense + AddSyncfusionBlazor + ConfigureSyncfusionCore) Tek satır
PDF Desteği
PDF çıktısı Hayır — ek olarak Syncfusion.Pdf gerektirir Evet — yerleşik
PDF okuma Hayır Evet — yerleşik
Formatlar
1D formatlar Code 128, Code 39, EAN-8/13, UPC-A/E, Codabar ve diğerleri Tüm Syncfusion formatları artı PDF417, Aztec, MaxiCode, GS1, USPS IMb ve 50+
2D formatlar QR Kod, DataMatrix QR Kod, DataMatrix, PDF417, Micro PDF417, Aztec, MaxiCode

Üretim Mimarisi

Syncfusion Barcode veIronBarcodearasındaki temel mimari fark, UI işleme kontrolü ile programatik dosya üretimi kütüphanesi arasındaki ayrımdır.

Syncfusion Yaklaşımı

SfBarcode, bir WinForms kontrolüdür. Rolü, bir formun görsel düzeninin bir parçası olarak bir barkod oluşturmaktır. Ondanit bir dosya üretmek için, geliştiricinin istenen çıkış boyutuna uygun bir Bitmap önceden ayırması, DrawToBitmap çağırması ve ardından Bitmap.Save çağırması gerekir. Her adım Windows Forms çalışma zamanını gerektirir.

Blazor için SfBarcodeGenerator, Syncfusion Blazor JavaScript katmanı aracılığıyla tarayıcıda görüntülenen bir Razor bileşenidir. SfBarcodeGenerator üzerinde sunucu tarafı API yoktur. Blazor uygulamasından indirilebilir bir barkod üretmek, bir sunucu API çağrısı yerine JavaScript interop ve tarayıcı indirme tetikleyicileri gerektirir.

MAUI uygulamaları için, SfBarcodeGenerator, barkodları MAUI düzen sistemi içinde görüntüler. Bir dosya olarak iletim veya yazdırma için barkod oluşturmak, kontrolün kendisi tarafından sağlanmayan ek yerleştirme adımları gerektirir.

IronBarcode Yaklaşımı

IronBarcode, doğrudan dosya çıktısı üreten statik, zincirlenebilir bir API kullanır. Aynı çağrı deseni, herhangi bir .NET uygulama modelinde değişiklik yapmadan çalışır:

// NuGet: dotnet add package IronBarcode
using IronBarCode;

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

BarcodeWriter.CreateBarcode("12345678", BarcodeEncoding.Code128)
    .ResizeTo(400, 150)
    .SaveAsPng("barcode.png");
// NuGet: dotnet add package IronBarcode
using IronBarCode;

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

BarcodeWriter.CreateBarcode("12345678", BarcodeEncoding.Code128)
    .ResizeTo(400, 150)
    .SaveAsPng("barcode.png");
Imports IronBarCode

IronBarCode.License.LicenseKey = "YOUR-KEY"

BarcodeWriter.CreateBarcode("12345678", BarcodeEncoding.Code128) _
    .ResizeTo(400, 150) _
    .SaveAsPng("barcode.png")
$vbLabelText   $csharpLabel

1D barkod üretim belgeleri tüm desteklenen sembolojileri ve çıkış seçeneklerini kapsar. Kontrol örneği oluşturulmaz, önceden tahsis edilmiş Bitmap yoktur ve Windows Forms çalışma zamanı bağımlılığı yoktur.

Barkod Okuma

Syncfusion Yaklaşımı

SfBarcode ve SfBarcodeGenerator, tasarım gereği okuma yeteneğine sahip değildir. Syncfusion ekosistemi, bu boşluğu kendi lisansı ve satın alma yolu olan ayrı bir ticari ürün Barkod Okuyucu OPX ile kapatır.

Barkod Okuyucu OPX içsel olarak ZXing.Net kullanır. ZXing.Net, Apache 2.0 lisansı altında yayımlanan, açık kaynaklı bir barkod okuma kütüphanesidir. Apache 2.0, sınırsız ticari kullanım izni veren esnek bir lisanstır. Herhangi bir geliştirici ZXing.Net'i doğrudan yükleyebilir:

dotnet add package ZXing.Net
dotnet add package ZXing.Net
SHELL

Barkod Okuyucu OPX'i satın almak, ücretsiz olarak bulunan bir kütüphaneye bir sarıcı için bir Syncfusion aboneliği ödemek anlamına gelir. Hem üretim hem de okuma işlemini kapsayan komple bir Syncfusion barkod akışı, iki ayrı Syncfusion ürünü, iki lisans sözleşmesi ve iki farklı API yüzeyi gerektirir.

IronBarcode Yaklaşımı

Barkod okuma, üretimle aynı NuGet paketine dahildir. İkinci bir ürün veya lisans gerekli değildir:

using IronBarCode;

var results = BarcodeReader.Read("barcode.png");
foreach (var result in results)
{
    Console.WriteLine($"Format: {result.Format}");
    Console.WriteLine($"Value: {result.Value}");
}
using IronBarCode;

var results = BarcodeReader.Read("barcode.png");
foreach (var result in results)
{
    Console.WriteLine($"Format: {result.Format}");
    Console.WriteLine($"Value: {result.Value}");
}
Imports IronBarCode

Dim results = BarcodeReader.Read("barcode.png")
For Each result In results
    Console.WriteLine($"Format: {result.Format}")
    Console.WriteLine($"Value: {result.Value}")
Next
$vbLabelText   $csharpLabel

barkod okuma belgeleri, çoklu barkod algılama, güven puanlama, bayt dizileri üzerinden okuma ve hız ile doğruluk ayarlaması konularını kapsar. PDF belgelerinden okuma da ayrı bir PDF kitaplığı gerektirmeyen yereldir.

Lisans Mimarisi

Syncfusion Yaklaşımı

Syncfusion Community License ücretsiz erişim sağlar ancak dört eş zamanlı uygunluk koşulu koyar: yıllık brüt gelir $1.000.000'dan az, beş veya daha az geliştirici, on veya daha az çalışan ve toplam dış sermaye $3.000.000 altında. Tümü sürekli sağlanmalıdır. Devlet kuruluşları uygun değildir. Koşullardan herhangi birini aşmak, anında ticari lisanslama yükümlülüğü yaratır ve Community License'dan ticari lisansa geçiş, $0'dan Standart seviyede yıllık yaklaşık $995 geliştiriciye geçiş anlamına gelir.

Uygunluğun ötesinde, Syncfusion lisans anahtarları sürüme özeldir. Essential Studio 24.x için verilen bir anahtar, 25.x'e yükseltmeden sonra doğrulanmaz. Her büyük NuGet sürüm güncellemesi, ağ geçidi portalından yeni bir anahtar almak, ortam sırlarını güncellemek ve üretim çıktılarında deneme filigranlarının ortaya çıkmasını önlemek için yeniden dağıtım gerektirir.

Platform kaydı ek adımlar ekler. Bir Blazor uygulaması üç ayrı yapılandırma girdisi gerektirir:

// Step 1: License registration
Syncfusion.Licensing.SyncfusionLicenseProvider.RegisterLicense("YOUR-VERSION-SPECIFIC-KEY");

// Step 2: Service registration in Program.cs
builder.Services.AddSyncfusionBlazor();

// Step 3: Namespace imports in _Imports.razor
// @using Syncfusion.Blazor
// @using Syncfusion.Blazor.BarcodeGenerator
// Step 1: License registration
Syncfusion.Licensing.SyncfusionLicenseProvider.RegisterLicense("YOUR-VERSION-SPECIFIC-KEY");

// Step 2: Service registration in Program.cs
builder.Services.AddSyncfusionBlazor();

// Step 3: Namespace imports in _Imports.razor
// @using Syncfusion.Blazor
// @using Syncfusion.Blazor.BarcodeGenerator
' Step 1: License registration
Syncfusion.Licensing.SyncfusionLicenseProvider.RegisterLicense("YOUR-VERSION-SPECIFIC-KEY")

' Step 2: Service registration in Program.vb
builder.Services.AddSyncfusionBlazor()

' Step 3: Namespace imports in _Imports.razor
' @Imports Syncfusion.Blazor
' @Imports Syncfusion.Blazor.BarcodeGenerator
$vbLabelText   $csharpLabel

MAUI uygulamaları bir dördüncü adım gerektirir: builder.ConfigureSyncfusionCore().

IronBarcode Yaklaşımı

IronBarcode lisans aktivasyonu, tüm platformlar ve uygulama modellerinde aynı olan tek bir atamadır:

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

IronBarCode.License.LicenseKey = "YOUR-KEY"
$vbLabelText   $csharpLabel

IronBarcode lisanslama sayfası, sürekli lisans modelini açıklar. lisans anahtarı kurulum kılavuzu, CI/CD ve Docker dağıtımları için ortam değişkeni modellerini kapsar. Anahtar, bir ana sürüm içindeki küçük ve yama sürümleri arasında değişmez ve platforma özgü bir hizmet kaydı gerekli değildir.

PDF Çıktısı

Syncfusion Yaklaşımı

Syncfusion barkod kontrolleri PDF çıktısı üretemez. Syncfusion araçları kullanarak bir PDF dokümanına barkod eklemek, barkod kontrol paketinin Syncfusion.Pdf ile birleştirilmesini, Bitmap olarak barkod oluşturmayı DrawToBitmap aracılığıyla ve ardından bu bitmapi PDF doküman nesne modeli içinde bir görüntü öğesi olarak eklemeyi gerektirir. O iş akışı iki ayrı Syncfusion ürünü, iki NuGet paketi ve çok adımlı bir işleme hattı içerir.

Mevcut PDF belgelerinden barkod okuma, ne barkod kontrolü ne de Barkod Okuyucu OPX tarafından desteklenmez.

IronBarcode Yaklaşımı

PDF, IronBarcode'da bir birinci sınıf çıktı formatıdır. İkinci bir kütüphane gerekli değildir:

BarcodeWriter.CreateBarcode("12345678", BarcodeEncoding.Code128)
    .ResizeTo(400, 150)
    .SaveAsPdf("barcode.pdf");
BarcodeWriter.CreateBarcode("12345678", BarcodeEncoding.Code128)
    .ResizeTo(400, 150)
    .SaveAsPdf("barcode.pdf");
BarcodeWriter.CreateBarcode("12345678", BarcodeEncoding.Code128) _
    .ResizeTo(400, 150) _
    .SaveAsPdf("barcode.pdf")
$vbLabelText   $csharpLabel

Kütüphane ayrıca PDF belgelerinden doğrudan barkod okuma yapar:

var pdfResults = BarcodeReader.Read("shipping-manifest.pdf");
foreach (var result in pdfResults)
{
    Console.WriteLine($"Page {result.PageNumber}: {result.Value}");
}
var pdfResults = BarcodeReader.Read("shipping-manifest.pdf");
foreach (var result in pdfResults)
{
    Console.WriteLine($"Page {result.PageNumber}: {result.Value}");
}
Dim pdfResults = BarcodeReader.Read("shipping-manifest.pdf")
For Each result In pdfResults
    Console.WriteLine($"Page {result.PageNumber}: {result.Value}")
Next
$vbLabelText   $csharpLabel

barkod PDF üretim kılavuzu, çok sayfalı çıktıları ve diğer PDF içeriğiyle birlikte barkod gömme konularını kapsar.

API Eslestirme Referansi

Syncfusion Barkodu IronBarcode Eşdeğeri
SyncfusionLicenseProvider.RegisterLicense("KEY") IronBarCode.License.LicenseKey = "key"
builder.Services.AddSyncfusionBlazor() Gerekli değil
builder.ConfigureSyncfusionCore() Gerekli değil
new SfBarcode() BarcodeWriter.CreateBarcode() (statik)
barcode.Text = "value" CreateBarcode()'un ilk parametresi
barcode.Symbology = BarcodeSymbolType.Code128A BarcodeEncoding.Code128
barcode.Symbology = BarcodeSymbolType.QRBarcode QRCodeWriter.CreateQrCode()
barcode.BarHeight = 100 .ResizeTo(width, 100)
barcode.ShowText = true .AddBarcodeText()
barcode.DrawToBitmap(bitmap, rect) .SaveAsPng(path)
Elle BitmapMemoryStream .ToPngBinaryData()
<SfBarcodeGenerator Type="BarcodeType.Code128" Value="..."> BarcodeWriter.CreateBarcode(value, BarcodeEncoding.Code128) sunucu tarafı
<SfQRCodeGenerator Value="..."> QRCodeWriter.CreateQrCode(value, size) sunucu tarafı
BarcodeType.Code128 (Blazor enum) BarcodeEncoding.Code128
Barkod Okuyucu OPX (ZXing.Net'i sarar) BarcodeReader.Read(path) — yerel, sarıcı yok
Barkod kontrollerinde okuma API'si yoktur BarcodeReader.Read(path)
PDF çıktısı yok BarcodeWriter.CreateBarcode(...).SaveAsPdf(path)

Takımların Syncfusion Barcode'dan IronBarcode'a Geçişi Değerlendirmeleri Durumda

Barkod Okuma Gereksinimleri

Tamamen WinForms veya Blazor içinde çalışan bir ekip, görüntüleme amacıyla SfBarcode veya SfBarcodeGenerator ile başlayabilir ve daha sonra yüklenen resimlerden, e-posta eklerinden veya kamera yakalamalardan gelen barkodları tarama gereksinimi alabilir. O noktada, Syncfusion kontrol yüzeyi ileriye gidecek bir yol sağlamaz. Syncfusion dokümantasyonu, takımları ZXing.Net'i saran ayrı bir ticari satın alma olan Barcode Reader OPX'e yönlendirir - Apache 2.0 lisansı altında ücretsiz olarak sunulan bir kütüphanedir. Bunu keşfeden takımlar, genellikle ücretsiz yazılım etrafında ücretli bir sarmalayıcıyı sürdürmenin uygun mimari karar olup olmadığını yeniden değerlendirir; özellikle birleşik bir üretim ve okuma kütüphanesi yönlendirmeyi tamamen ortadan kaldıracaksa.

Sunucu Taraflı ve Backend Üretimi

WinForms veya WPF masaüstü araçları olarak başlayan uygulamalar bazen barkod dosyaları oluşturması gereken bir web API katmanı, arka plan işleme hizmeti veya bulut fonksiyonu içerecek şekilde evrimleşir. SfBarcode, Windows Forms çalışma zamanı bağımlılığı içerir ve bu, ASP.NET Core hizmetlerine, Azure Functions'a veya Linux Docker konteynerlerine düzgün bir şekilde çevrilemez. DrawToBitmap modeli, başsız bir ortamda var olmayabilecek bir WinForms görüntüleme yüzeyi gerektirir. Bu sınıra ulaşan takımlar, genellikle üretim modelinin başlangıçtan itibaren UI renderleme yığından ayrılmış olduğu bir kütüphaneye ihtiyaç duyar.

Topluluk Lisansı Uygunluk Değişiklikleri

Syncfusion'ın Topluluk Lisansı, takımın en hızlı büyüdüğü zaman caziptir. Dört eşzamanlı uygunluk koşulu — gelir, personel sayısı, çalışan sayısı ve toplanan sermaye — aniden gelebilen bir lisanslama uçurum yaratır. Bir A Serisi fonlama turu, genellikle geliştirici sayısı veya gelirine bakılmaksızın tur kapanış gününde bir başlangıç firmasını $3.000.000 sermaye eşiğinin ötesine iter, ticari lisans yükümlülüğünü tetikler. Topluluk Lisansı etrafında üretim iş akışları oluşturan takımlar, geçişin maliyet ve zamanlamasını dikkate almalıdırlar; özellikle ticari lisans, yalnızca barkod bileşeni yerine tüm Essential Studio paketini kapsadığında.

Sürüm Özel Yapılandırma Ağırlığını Azaltmak

Syncfusion uygulamalarını CI/CD hatlarında bakım yapan operasyon takımları, NuGet sürüm güncellemelerine bağlı olarak yeniden meydana gelen bir görev olarak lisans anahtarı döndürme ile karşılaşır. Essential Studio 24.x için geçerli olan bir anahtar, 25.x'e yükseltmeden sonra çalışmayı durdurur, bu da her dağıtım ortamında gizliliklerin güncellenmesi ve deneme filigranlarının üretim çıktılarında görünmediğini doğrulama anlamına gelir. Sık sürüm kadanslarına veya birden fazla dağıtım hedefi olan takımlar, bu döndürme yükünü sağlanan faydaya orantısız bulur; özellikle altında yatan kullanım durumu, tam bir UI bileşen paket tüketmek yerine bir barkod görüntüsü üretmektir.

Genel Geçiş Dusunceleri

SyncfusionLicenseProvider Kayıt Silme

Syncfusion lisans çağrısı — SyncfusionLicenseProvider.RegisterLicense("KEY") — genellikle Program.cs, App.xaml.cs veya bir uygulama başlatma yönteminde görünür. Başlatma sırasının aynı noktasında kaldırılmalı ve IronBarCode.License.LicenseKey = "KEY" ile değiştirilmelidir. Eğer projede başka bir Syncfusion bileşeni kalmadıysa, ilgili hizmet kaydı çağrıları (AddSyncfusionBlazor, ConfigureSyncfusionCore) ve _Imports.razor içindeki ad alanı ithalatları da kaldırılmalıdır.

SfBarcode'dan BarcodeWriter Desenine

SfBarcode iş akışı, kontrol örneği oluşturma, özellik atama, boyut belirleme ve DrawToBitmap rendering içerir.IronBarcodeeşdeğeri, tek bir zincirli çağrıdır: BarcodeWriter.CreateBarcode(value, encoding).ResizeTo(w, h).SaveAsPng(path). BarcodeSymbolType enum değerleri, doğrudan BarcodeEncoding değerlerine eşlenir — Code128A Code128'ye eşlenir, QRBarcode QRCodeWriter.CreateQrCode'ye eşlenir.

Blazor Bileşeninden API Uç Noktası Desenine

SfBarcodeGenerator bir Razor bileşenidir; OnuIronBarcodeile değiştirmek, satır satır bir değiştirme yerine yapısal bir değişikliktir. Blazor içinIronBarcodemodeli, Razor bileşeninden standart bir <img src="..."> etiketi aracılığıyla referans edilen, barkod resmini baytlar olarak döndüren minimal bir API uç noktasıdır. Bu yaklaşım, tarayıcıda render edilen ve Syncfusion Blazor JavaScript katmanına bağlı bir bileşen yerine, bağımsız olarak test edilebilir ve müşteriler arasında yeniden kullanılabilir bir sunucu tarafı uç noktası üretir.

EkIronBarcodeIlkeler

AşağıdakiIronBarcodeyeteneklerinden yukarıdaki bölümlerde bahsedilmemektedir ve proje gereksinimlerine bağlı olarak ilgili olabilir:

  • Gömülü marka logosu ile QR kodu: .AddBrandLogo("logo.png") şirket logosunu QR kodunun merkezine gömerken, hata düzelmesi yoluyla tarama güvenilirliğini sürdürür.
  • SVG çıktısı: Barkodlar, baskı üretimi ve yüksek-DPI ekranlar için uygun vektör SVG dosyası olarak dışa aktarılabilir.
  • HTML çıktısı: Barkodlar, kendi kendine yeten HTML dosyası olarak dışa aktarılabilir.
  • Çoklu barkod keşfi: BarcodeReader.Read, tek bir görüntünün içinde bulunan tüm barkodları algılar ve döner.
  • Okuma üzerine güven puanı: Her okuma sonucu, düşük kaliteli tespitlerin filtrelenmesini destekleyen bir güven skoru içerir.
  • Açıklama ve stil verme: Üretilen barkodlar, harici bir resim düzenleme adımı gerektirmeden kenar boşluğu, renk, yazı tipi ve açıklama özelleştirmesini destekler.
  • GS1 ve USPS IMb formatları: IronBarcode, GS1-128, USPS Intelligent Mail Barcode, MaxiCode ve Aztec dahil olmak üzere Syncfusion kontrolünde bulunmayan özel formatları destekler.

.NET Uyumlulugu ve Gelecek Hazirikligi

IronBarcode, .NET Standard 2.0 ve yukarısını hedef alır; .NET Framework 4.6.2 ve sonrası, .NET Core 3.1 ve .NET 8 ve .NET 9 dahil tüm mevcut .NET sürümleri ile uyumluluk sağlar. Kütüphane, Microsoft'un .NET sürüm programına uygun düzenli güncellemeler alır ve .NET 10'un yayımlanmasına yaklaştıkça uyumluluğunu sağlar. IronBarcode, UI kontrolü yerine statik bir programlama kütüphanesi olduğu için, WinForms, WPF, Blazor ve MAUI arasındaki platform evrim farklılıklarından etkilenmez; aynı NuGet paketi ve aynı API, tüm mevcut ve gelecekteki .NET uygulama modlarında platforma özel yer tutucu gerektirmeden çalışır.

Sonuç

Syncfusion Barcode ve IronBarcode, özellik sayısını aşan bir mimari düzeyde farklılık gösterir. Syncfusion barkod, büyük bir bileşen paketi ile entegre bir UI renderleme kontrolüdür; tasarım amacı, bir form düzeni içinde bir barkod görüntülemektir ve bu amaca iyi bir şekilde ulaşır. IronBarcode, bir programatik dosya üretimi ve okuma kütüphanesidir; tasarım amacı, barkodları veri olarak işlemektir — dosyaları üretmek, görüntüleri okumak ve herhangi bir dağıtım ortamında çalışmaktır. Bunlar, farklı birincil kullanım durumları için tasarlanmış farklı araçlardır ve aralarındaki seçim büyük ölçüde, elinizdeki projeye hangi kullanım durumunun uygulandığıyla belirlenir.

Syncfusion Barcode, bir takım zaten diğer Syncfusion Essential Studio UI bileşenlerini — tablolar, grafikler, zamanlayıcılar gibi — kullanıyorsa ve barkod gereksinimi bir formda ya da bir Blazor sayfasında bir barkodu görüntülemek ise uygun seçimdir. Bu bağlamda, barkod kontrolü mevcut lisansa zaten dahildir ve bir kontrolü tasarımcıya bırakmak şeklinde bir form eklemekten ibarettir. Bu belirli koşullara sahip takımlar için,IronBarcodesatın almak mevcut lisansın zaten sunmadığı bir değer eklemez.

IronBarcode, gereksinim form görüntüsünü aşarsa uygun bir seçimdir: yüklenen görüntülerden barkod okumak, bir arka plan hizmetinde barkod dosyaları oluşturmak, PDF belgelerinden barkodlar okumak, Linux'teki bir Docker konteynerine dağıtmak veya barkod görüntülerini döndüren bir web API uç noktası oluşturmak. Ayrıca, lisanslama durumu tüm dört Syncfusion Topluluk Lisansı koşulunu kalıcı olarak karşılamayan veya NuGet güncelleme sürecinin bir parçası olarak sürüm özel anahtar döndürmeyi önlemek isteyen takımlar için uygun seçimdir. IronBarcode'ın süresiz lisans modeli ve birleşik üretim ve okuma paketi, bu operasyonel kaygıları doğrudan ele alır.

Syncfusion'un barkod ekosisteminin belirleyici kısıtlaması, üretim ve okumanın iki ayrı ürün üzerinde ayrı olması ve okuma ürününün ücretsiz yazılımın etrafında bir ticari sarmalayıcı olmasıdır. İki yeteneğe de ihtiyaç duyan takımlar için bu düzenleme, iki lisans maliyeti, iki API yüzeyi ve doğrudan alınabilecek bir ZXing.Net'e bağımlılık üretir. IronBarcode'ın tek paket modeli, bu dolaylılığı ortadan kaldırır. Doğru seçim, fiili gereksinimlere uygun olan mimari hangisiyse odur: mevcut bir Syncfusion UI içinde bir barkod görüntülemek tam kapsam ise, Syncfusion doğal uyumdur; eğer barkod işleme bir arka plan sorunuysa,IronBarcodedaha uygun bir temel oluşturur.

Sıkça Sorulan Sorular

Syncfusion Barcode nedir?

Syncfusion Barcode, C# uygulamalarında barkod üretme ve okuma için kullanılan bir .NET barkod kütüphanesidir. .NET projeleri için bir barkod çözümü seçerken geliştiricilerin değerlendirdiği birkaç alternatiften biridir.

Syncfusion Barcode ve IronBarcode arasındaki temel farklar nelerdir?

IronBarcode, örnek yönetimi gerektirmeyen statik, durumsuz bir API kullanırken, Syncfusion Barcode genellikle kullanım öncesinde örnek oluşturma ve yapılandırma gerektirir. IronBarcode ayrıca yerel PDF desteği, otomatik format algılama ve tüm ortamlar için tek anahtarlı lisanslama sağlar.

IronBarcode, Syncfusion Barcode'den daha kolay mı lisanslanır?

IronBarcode, hem geliştirme hem de üretim dağıtımlarını kapsayan tek bir lisans anahtarı kullanır. Bu durum, CI/CD hatları ve Docker yapılandırmalarını, SDK anahtarlarını çalıştırma anahtarlarından ayıran lisanslama sistemleriyle karşılaştırıldığında basitleştirir.

IronBarcode, Syncfusion Barcode'un desteklediği tüm barkod formatlarını destekliyor mu?

IronBarcode, QR Code, Code 128, Code 39, DataMatrix, PDF417, Aztec, EAN-13, UPC-A, GS1 ve daha fazlası dahil 30'dan fazla barkod sembolojisini destekler. Format otomatik algılama, açık format sayımı gerektirmez.

IronBarcode yerel PDF barkod okuma desteği veriyor mu?

Evet. IronBarcode, BarcodeReader.Read('document.pdf') kullanarak PDF dosyalarından barkodları doğrudan okur, ayrı bir PDF işleme kütüphanesi gerektirmez. Sayfa başına sonuçlar, sayfa numarası, barkod formatı, değeri ve güven skoru içerir.

IronBarcode, Syncfusion Barcode'e kıyasla toplu işlemeyi nasıl ele alır?

IronBarcode'un statik yöntemleri durumsuz ve doğal olarak iş parçacığı güvenlidir, Parallel.ForEach'in doğrudan kullanımını sağlar ve iş parçacığı başı örnek yönetimi gerektirmez. Hiçbir fiyatlandırma seviyesi için bant genişliği sınırı yoktur.

IronBarcode hangi .NET sürümlerini destekliyor?

IronBarcode, .NET Framework 4.6.2+, .NET Core 3.1 ve .NET 5, 6, 7, 8 ve 9'u tek bir NuGet paketi içinde destekler. Platform hedefleri arasında Windows x64/x86, Linux x64 ve macOS x64/ARM bulunuyor.

.NET projesine IronBarcode'u nasıl kurarım?

NuGet aracılığıyla IronBarcode'u kurun: 'Install-Package IronBarCode' komutunu Paket Yöneticisi Konsolunda veya CLI'de 'dotnet add package IronBarCode' komutunu çalıştırın. Ek bir SDK yükleyici veya çalışma zamanı dosyaları gerekli değildir.

Syncfusion'un aksine, satın almadan önce IronBarcode'yi değerlendirebilir miyim?

Evet. IronBarcode'ın deneme modu, yalnızca oluşturulan çıktı görüntülerine bir filigran ekleyerek tam çözümlenmiş barkod değerlerini verir. Satın almadan önce kendi belgelerinizde okuma doğruluğunu test edebilirsiniz.

Syncfusion Barcode ve IronBarcode arasındaki fiyat farkı nedir?

IronBarcode, geliştirme ve üretimi kapsayan tek bir geliştirici lisansı için $749'dan başlar. Fiyatlandırma detayları ve hacim seçenekleri, IronBarcode lisanslama sayfasında mevcuttur. Ayrı bir çalışma zamanı lisansı gereksinimi yoktur.

Syncfusion Barcode'dan IronBarcode'ye geçiş yapmak kolay mı?

Syncfusion Barcode'dan IronBarcode'ye geçiş, esas olarak instance tabanlı API çağrılarını IronBarcode'un statik metodlarıyla değiştirmeyi, lisans şablonunu kaldırmayı ve sonuç özelliği adlarını güncellemeyi içerir. Çoğu geçiş, kodu eklemekten ziyade azaltmayı içerir.

IronBarcode, logolu QR kodları üretiyor mu?

Evet. QRCodeWriter.CreateQrCode().AddBrandLogo('logo.png') kullanarak bir QR koduna yerel logolu bir marka resmi ekleyin, yapılandırılabilir hata düzeltme ile. ChangeBarCodeColor() üzerinden renkli QR kodları da desteklenir.

Jordi Bardia
Yazılım Mühendisi
Jordi Python, C# ve C++ konularında en yetkin, Iron Software'deki yeteneklerini kullanmadığı zamanlarda; oyun programlıyor. Ürün testi, ürün geliştirme ve araştırma sorumluluklarını paylaşan Jordi, sürekli ürün gelişimine büyük değer katıyor. Çeşitli deneyimleri onu ...
Daha Fazlasını Oku

Iron Destek Ekibi

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