Syncfusion Barkod vs IronBarcode: C# Barkod Kütüphanesi Karşılaştırması
Syncfusion Barcodevs IronBarcode: Mimari, Lisanslama ve Okuma Kapsamı
Syncfusion'ın barkod ekosistemi, UI kontrolleri yoluyla barkodlar oluşturur ve okumak için Barcode Reader OPX adlı ayrı bir ürün satar. Üretilen ürün, dekoder olarak ZXing.Net (Apache 2.0) kullanır. Bu nedenle, hem üretim hem de okuma gereksinimi olan ekipler bir takım paket üyeliği altında iki Syncfusion ürünle çalışır ve bu bölünme, aşağıda ele alınacak mimari ve maliyet karşılaştırmalarını şekillendirir.
Syncfusion Barkodu Anlamak
Syncfusion barkodu bağımsız bir kütüphane değildir; Syncfusion Essential Studio Suite içinde bir bileşendir. Üretim tarafı bir UI kontrolü olarak gelir: WinForms ve WPF için SfBarcode, Blazor ve MAUI için SfBarcodeGenerator. Bu kontroller, run-time sırasında bir form üzerine barkod render eder ve Syncfusion'un daha geniş UI bileşen ekosisteminde kullanılması için tasarlanmıştır.
Okuma tarafı tamamen ayrı bir ticari üründür. Barcode Reader OPX, kendi lisansı, kendi NuGet paketi ve kendi API'si olan ayrı bir Syncfusion ürünüdür. Hem üretim hem de okuma ihtiyacı olan ekipler, iki ürün almak, sürdürmek ve yapılandırmak zorundadır.
Syncfusion Community Lisansı, uygun nitelikteki kuruluşlar için ücretsiz bir seviye sağlar, ancak uygunluk, aşağıdaki dört koşulun hepsinin aynı anda ve sürekli olarak doğru olması gerektiği anlamına gelir:
- Gelir eşiği: Yıllık şirket gayri safi geliri, tüm gelir kaynakları dahil olmak üzere, $1,000,000 USD'nin altında (yalnızca yazılım değil)
- Geliştirici eşiği: Takımda beş veya daha az geliştirici
- Çalışan eşiği: Toplamda on veya daha az çalışan
- Sermaye eşiği: Tüm finansman turları boyunca toplulukça toplanan toplam sermaye $3,000,000'in altında
Vergiyle finanse edilen hükümet organizasyonları boyutlarına bakılmaksızın hak kazanamaz; vergiye tabi olmayan devlet ajansları ise yalnızca Syncfusion ile doğrudan bir ana lisans anlaşması yaptıktan sonra hak kazanabilir. Koşullar kendiliğinden onaylanır ve sürekli olarak karşılanmalıdır — herhangi bir tek eşik aşıldığında ticari lisans yükümlülüğü başlar.
Syncfusion barkod ekosisteminin ek özellikleri şunları içerir:
- Sadece üretim kontrol mimarisi:
SfBarcodeveSfBarcodeGeneratorokuma API'sine sahip değildir. Kontrol yüzeyinde hiçbir yerde.Read()veya.Scan()yöntemi yoktur. - Sürüme özgü lisans anahtarı: Syncfusion lisans anahtarları belirli Essential Studio sürüm aralıklarına bağlanır. Versiyon 24.x'ten versiyon 25.x'e yükseltme yeni bir anahtara, her ortamda gizlilik güncellemelerine ve üretimde doğrulama filigramlarının görünmemesi için aşağının yeniden dağıtımına ihtiyaç duyar.
- Çok aşamalı platform kaydı: Her platform hedefi (Blazor, MAUI), taban lisans çağrısına ek olarak platforma özgü hizmet kaydı çağrıları gerektirir.
- Blazor için başsız üretim yolu yok:
SfBarcodeGeneratortarayıcıda görüntülenen bir Razor bileşenidir. Sunucu tarafında herhangi bir dosya çıktısı API'si yoktur. - PDF çıktısı yok: Ne WinForms ne de Blazor kontrolü bir barkodu doğrudan bir PDF dosyasına yazamaz.
- Paket lisanslama: Synfusion barkod Essential Studio'nun bir parçası olarak lisanslanır, bağımsız bir barkod-only ürün olarak değil.
- ZXing.Net tabanlı OPX okuyucu: Barkod Okuyucu OPX, dekoder olarak ZXing.Net (Apache 2.0) kullanır. ZXing.Net, aynı Apache 2.0 lisansı altında NuGet üzerinden doğrudan da mevcuttur.
Sadece Üretim Kontrol Mimarisi
SfBarcode, özellik tabanlı bir API'ye sahip bir WinForms kontrolüdür: Text, Symbology, BarHeight, NarrowBarWidth, ShowText. Bir form üzerine barkod render etmek, bir WinForms tasarımcısında beklendiği gibi çalışır. Bir barkod dosyasını programatik olarak oluşturmak, doğru boyutlarla bir Bitmap önceden ayırmayı içeren DrawToBitmap yöntemini 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
Bu model, çağrıda bulunulan her projede Windows Forms çalışma zamanını yüklemeyi ima eder, buna konsol uygulamaları, ASP.NET Core hizmetleri ve Azure İşlevleri dahildir. Blazor varyantı SfBarcodeGenerator bir Razor bileşenidir ve sunucu tarafında dosya çıktı yolu yoktur.
IronBarcode Anlama
IronBarcode, tüm .NET uygulama modelleri genelinde programatik üretim ve okuma için oluşturulmuş bir .NET barkod kütüphanesidir. Üretim ve okumayı aynı API yüzeyi içinde kapsayan tek bir NuGet paketi olarak sevk sağlar, ikincil bir ürün gerektirmez.
Kütüphane, statik bir API modeli etrafında tasarlanmıştır: arayanlar statik yöntemleri (BarcodeWriter.CreateBarcode, BarcodeReader.Read, QRCodeWriter.CreateQrCode) çağırır ve çıktı yöntemlerini doğrudan sonuç üzerinde zincirler. Bu model, 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 ve aynı API yüzeyi kullanılarak mevcuttur.
- Statik API: Kontrol oluşturma yok, UI çalışma zamanı bağımlılığı yok,
DrawToBitmapdolaylılık yok. - Platformdan bağımsız: WinForms, Blazor, MAUI, ASP.NET Core, konsol, Azure İşlevleri ve Linux üzerinde Docker'da aynı kod ve aynı lisans anahtarı çalışır.
- Doğrudan dosya çıktısı: Barkodlar, ara bir
Bitmaptahsisine gerek kalmadan doğrudan PNG, JPEG, SVG, HTML, PDF ve diğer formatlarda 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 üzerinde otomatik format algılama:
BarcodeReader.Read, arayanın bir tür belirtmesini gerektirmeden barkod formatını otomatik olarak tanımlar. - Tek sürümde sabit anahtar: Lisans anahtarı, küçük veya yama NuGet güncellemeleri arasında değişmez.
- QR kodu özellikleri: Gömme marka logolarını ve renk özelleştirmelerini doğrudan üretim API'sinde destekler.
Özellik Karşılaştırması
Aşağıdaki tablo,Syncfusion Barcodeve IronBarcode arasındaki yüksek düzeydeki farkları özetler:
| Özellik | Syncfusion Barcode | IronBarcode |
|---|---|---|
| Barkod oluşturma | Evet — UI kontrolü (WinForms, WPF, Blazor, MAUI) | Evet — Tüm ortamlar için statik programlama API'si |
| Barkod okuma | Hayır — Ayrı Barcode Reader OPX ürün gereklidir | Evet — Üretim ile aynı paket |
| PDF barcode output | Hayır — Ayrı Syncfusion.Pdf gereklidir | Evet — SaveAsPdf() yerleşik |
| PDF barkod okuma | Hayır | Evet — yerel |
| Başsız / sunucu tarafı üretim | WinForms çalışma zamanı bağımlılığı ile UI kontrolü | Yerel — statik API, hiçbir UI bağımlılığı yok |
| Ücretsiz seviye | Topluluk Lisansı (dört eş zamanlı koşul) | 30 günlük deneme (yalnızca filigran) |
| Lisans modeli | Yıllık abonelik (Essential Studio paketi) | $749'dan itibaren süresiz |
Ayrıntılı Özellik Karşılaştırması
| Özellik | Syncfusion Barcode | IronBarcode |
|---|---|---|
| Üretim | ||
| WinForms üretim | Evet (SfBarcode) |
Evet |
| WPF üretim | Evet (SfBarcode) |
Evet |
| Blazor üretim | Evet (SfBarcodeGenerator, tarayıcıda görüntülenir) |
Evet (sunucu tarafı API) |
| MAUI üretim | Evet (SfBarcodeGenerator) |
Evet |
| Konsol / Azure İşlevleri | WinForms runtime gerekli | 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 paketi içinde okuma API'si | Hayır | Evet — BarcodeReader.Read() |
| Ayrı okuma ürünü | Evet — Barcode Reader OPX (ücretli) | Gerekli değil |
| OPX wraps ZXing.Net (Apache 2.0) | Evet — ZXing.Net ücretsizdir | Yok |
| PDF barkod okuma | Hayır | Evet |
| Otomatik format algılama | Yok | Evet |
| Çoklu barkod algılama | Yok | Evet |
| Platform | ||
| ASP.NET Core minimal API | Düzenli bir şekilde desteklenmiyor | Tam destek |
| Çapraz platform (Linux) | Sınırlı | Tam destek |
| Lisanslama | ||
| Ücretsiz seviye | Topluluk Lisansı (dört eş zamanlı koşul) | 30 günlük deneme |
| Ticari lisans modeli | Yıllık abonelik (Essential Studio) | Süresiz |
| Giriş seviyesi ticari fiyat | Özel teklif (yıllık abonelik) | $749'dan .oneqislmeşuhperüd |
| Lisans anahtarı kapsamı | Sürüm spesifik (büyük sürümlerle değişir) | Büyük sürüm içinde kararlı sürüm |
| Platform kayıt yükü | Çok adımlı (RegisterLicense + AddSyncfusionBlazor + ConfigureSyncfusionCore) | Tek satır |
| PDF Desteği | ||
| PDF çıktısı | Hayır — ek paket olarak Syncfusion.Pdf gerektirir | Evet — dahili |
| PDF okuma | Hayır | Evet — dahili |
| 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 Code, DataMatrix | QR Code, DataMatrix, PDF417, Micro PDF417, Aztec, MaxiCode |
Üretim Mimarisi
Syncfusion Barcode ve IronBarcode arasındaki temel mimari fark, bir UI render kontrolü ile programatik dosya oluşturma kütüphanesi arasındaki ayrımdır.
Syncfusion Yaklaşımı
SfBarcode bir WinForms kontrolüdür. Görevi, bir formun görsel düzeninin bir parçası olarak bir barkodu render etmektir. Ondan bir dosya üretmek için geliştirici, istenen çıkış boyutuna uygun bir Bitmap önceden ayırmalı, DrawToBitmap çağırmalı ve ardından Bitmap.Save çağırmalıdır. Her adım Windows Forms çalışma zamanı 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ından ziyade JavaScript interop ve tarayıcı indirme tetikleyicileri gerektirir.
MAUI uygulamaları için SfBarcodeGenerator, MAUI yerleşim sistemi içinde barkodları görüntüler. Bir dosya olarak iletim veya yazdırma için bir barkod oluşturmak, kontrol tarafından sağlanmayan ek aracılık 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 olmadan çalışır:
// NuGet: dotnet add package IronBarcode
using IronBarCode;
IronBarCode.License.LicenseKey = "YOUR-LICENSE-KEY";
BarcodeWriter.CreateBarcode("12345678", BarcodeEncoding.Code128)
.ResizeTo(400, 150)
.SaveAsPng("barcode.png");
// NuGet: dotnet add package IronBarcode
using IronBarCode;
IronBarCode.License.LicenseKey = "YOUR-LICENSE-KEY";
BarcodeWriter.CreateBarcode("12345678", BarcodeEncoding.Code128)
.ResizeTo(400, 150)
.SaveAsPng("barcode.png");
Imports IronBarCode
IronBarCode.License.LicenseKey = "YOUR-LICENSE-KEY"
BarcodeWriter.CreateBarcode("12345678", BarcodeEncoding.Code128) _
.ResizeTo(400, 150) _
.SaveAsPng("barcode.png")
1D barkod üretim belgeleri, desteklenen tüm sembolojileri ve çıktı seçeneklerini kapsar. Kontrol oluşturma yok, önceden tahsis edilmiş Bitmap yok ve Windows Forms çalışma zamanı bağımlılığı yok.
Barkod Okuma
Syncfusion Yaklaşımı
SfBarcode ve SfBarcodeGenerator, tasarım gereği okuma yeteneğine sahip değildir. Syncfusion ekosistemi bu açığı Barcode Reader OPX ile, kendi lisansı ve satın alma yolu olan ayrı bir ticari ürünle kapatır.
Barcode Reader 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, kısıtlamasız ticari kullanımına izin veren bir izin verici lisanstır. Herhangi bir geliştirici, ZXing.Net'i doğrudan yükleyebilir:
dotnet add package ZXing.Net
dotnet add package ZXing.Net
Barkod Okuyucu OPX, Syncfusion barkod kontrollerinden ayrı bir lisansla sağlanır. Hem üretim hem de okuma kaplayan tam bir Syncfusion barkod iş akışı, bu nedenle iki Syncfusion ürünü, iki lisans anlaşması ve iki farklı API yüzeyi gerektirir — okuma ürünü, ücretsiz olarak sunulan açık kaynaklı dekoder üzerine katmanlanmıştır.
IronBarcode Yaklaşımı
Barkod okuma, üretim ile aynı NuGet paketi içindedir. İkinci bir ürün veya lisans gerekmez:
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
Barkod okuma belgeleri, çoklu barkod tespiti, güven puanlaması, bayt dizilerinden okuma ve hız-karşılığı-doğruluk ayarlamalarını kapsar. PDF belgelerinden okumak da ayrıdır, ek bir PDF kütüphanesi gerektirmez.
Lisans Mimarisi
Syncfusion Yaklaşımı
Syncfusion Community License, ücretsiz erişim sağlar ancak dört eşzamanlı uygunluk koşulu uygular: yıllık brüt gelir $1,000,000'ın altında, beş veya daha az geliştirici, on veya daha az çalışan ve toplam dış sermaye $3,000,000'ın altında. Bu dört koşul sürekli olarak tutmalıdır. Vergiyle finanse edilen hükümet organizasyonları hak kazanamaz. Herhangi bir şart aşıldığında ticari lisans yükümlülüğü oluşturur, ve Community License'dan ticari bir lisansa geçiş, Syncfusion satış tarafından teklif üzerinde verilen bir değere sahip yıllık geliştirici başına Essential Studio aboneliğine dönüşür.
Uygunluğun ötesinde, Syncfusion lisans anahtarları sürüm-spesifiktir. Essential Studio 24.x için çıkarılan bir anahtar, 25.x'e yükseltildikten sonra geçerli olmaz. Her büyük NuGet sürüm güncellemesi, hesap portalından yeni bir anahtar alma, ortam sırlarını güncelleme ve üretim çıktılarında deneme su işaretlerinin görünmesini önlemek için yeniden dağıtımı gerektirir.
Platform kaydı daha fazla adım ekler. Bir Blazor uygulaması, üç ayrı yapılandırma girişi 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
MAUI uygulamaları dördüncü bir adım gerektirir: builder.ConfigureSyncfusionCore().
IronBarcode Yaklaşımı
IronBarcode lisans aktivasyonu, tüm platformlarda ve uygulama modellerinde aynı olan tek bir atama işlemidir:
IronBarCode.License.LicenseKey = "YOUR-LICENSE-KEY";
IronBarCode.License.LicenseKey = "YOUR-LICENSE-KEY";
Imports IronBarCode
IronBarCode.License.LicenseKey = "YOUR-LICENSE-KEY"
IronBarcode lisans sayfası, süresiz lisans modelini açıklar. Lisans anahtarı kurulum rehberi, CI/CD ve Docker dağıtımları için ortam değişkeni desenlerini kapsar. Anahtar, büyük bir sürüm içindeki küçük ve yama sürümler arasında değişmez ve platforma özgü hizmet kaydı gerekmez.
PDF Çıktısı
Syncfusion Yaklaşımı
Syncfusion barkod kontrolleri, PDF çıktısı üretemez. Syncfusion araçlarını kullanarak bir barkodu PDF belgesine yerleştirmek, barkod kontrol paketini Syncfusion.Pdf ile birleştirmeyi, barkodu DrawToBitmap aracılığıyla bir Bitmap olarak üretmeyi ve ardından bu bitmap'i PDF belge nesne modeli içinde bir görüntü öğesi olarak eklemeyi gerektirir. Bu iş akışı, iki ayrı Syncfusion ürünü, iki NuGet paketi ve çok adımlı bir renderleme hattı içerir.
Mevcut PDF belgelerinden barkod okuma, ne barkod kontrolü ne de Barcode Reader OPX tarafından desteklenmez.
IronBarcode Yaklaşımı
PDF, IronBarcode'da birinci sınıf bir çıktı formatıdır. İkinci bir kütüphane gerekmiyor:
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")
Kütüphane ayrıca barkodları doğrudan PDF belgelerinden okur:
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
Barkod PDF oluşum kılavuzu, çok sayfalı çıktılar ve diğer PDF içeriğiyle birlikte barkod yerleştirme işlemlerini kapsar.
API Eşleme Başvurusu
| Syncfusion Barcode | 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() ilk parametresi |
barcode.Symbology = BarcodeSymbolType.Code128A |
BarcodeEncoding.Code128 |
barcode.Symbology = BarcodeSymbolType.QRBarcode |
QRCodeWriter.CreateQrCode() |
barcode.BarHeight = 100 |
.ResizeTo(width, 100) |
barcode.ShowText = true |
Varsayılan olarak insan tarafından okunabilir metin işlenir; yazar seçenekleri ile değiştir |
barcode.DrawToBitmap(bitmap, rect) |
.SaveAsPng(path) |
Manuel Bitmap → MemoryStream |
.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 |
| Barcode Reader OPX (ZXing.Net sarar) | BarcodeReader.Read(path) — yerel, sarıcı yok |
| Barkod kontrollerinde okuma API'si yok | BarcodeReader.Read(path) |
| PDF çıktısı yok | BarcodeWriter.CreateBarcode(...).SaveAsPdf(path) |
Ekipler Syncfusion Barcode'dan IronBarcode'a Geçişi Değerlendirirken
Barkod Okuma Gereklilikleri
Tamamen WinForms veya Blazor içinde çalışan bir ekip, görüntüleme amacıyla önce SfBarcode veya SfBarcodeGenerator ile başlayabilir ve daha sonra gelen görüntülerden, e-posta eklerinden veya kamera yakalamalarından barkod tarama gereksinimi alabilir. O noktada, Syncfusion kontrol yüzeyi ileriye giden bir yol sağlamaz. Syncfusion belgeleri, ekipleri barcode Reader OPX'e yönlendirir, bu da Apache 2.0 lisansı altında ücretsiz olarak sunulan bir kütüphane olan ZXing.Net'i saran ayrı bir ticari satın almadır. Bu noktaya ulaşan ekipler, genellikle ikinci bir ticari ürün eklenmesini mi yoksa üretim ve okumanın tek bir kütüphanede birleştirilmesini mi değerlendirecektir.
Sunucu Tarafı ve Arka Plan Üretimi
WinForms veya WPF masaüstü araçları olarak başlayan uygulamalar, bazen bir web API katmanı, arka plan işleme hizmeti veya bir bulut işlemi içerecek şekilde evrim geçirir. Bu, barkod dosyaları oluşturmayı gerektirir. SfBarcode, ASP.NET Core hizmetlerine, Azure İşlevlerine veya Linux Docker konteynerlerine temiz bir şekilde çevrilemeyen bir Windows Forms çalışma zamanı bağımlılığı taşır. DrawToBitmap kalıbı, başsız bir ortamda var olmayabilecek bir WinForms görüntüleme yüzeyi gerektirir. Bu sınıra ulaşan ekipler genellikle UI rendereleme yığınından ayrılmış bir nesil modeline sahip bir kütüphaneye ihtiyaç duyar.
Community License Uygunluk Değişiklikleri
Syncfusion'un Community License, hızlı büyüyen ekipler için çekici bir seçenektir. Gelir, kadro sayısı, çalışan sayısı ve toplanan sermaye şeklindeki dört eşzamanlı uygunluk koşulu, ani gelebilecek bir lisanslama uçurumunu oluşturur. A Serisi bir fonlama turu, genellikle kapanış günü $3,000,000'luk sermaye eşiğini aşarak, geliştirici sayısı veya gelirden bağımsız olarak bir ticari lisans yükümlülüğü tetikler. Community License etrafında üretim iş akışları oluşturan ekipler, geçişin maliyeti ve zamanlamasını değerlendirmek zorundadırlar, özellikle de ticari lisansın yalnızca barkod bileşeni değil, Essential Studio paketinin tamamını kapsadığı hallerde.
Sürüm-Specifik Konfigürasyon Yükünü Azaltma
CI/CD boru hatlarında Syncfusion uygulamalarını sürdüren işletim ekipleri, NuGet sürüm yükseltmeleriyle bağlı bir tekrar eden görev olarak lisans anahtarı dönüşümü ile karşılaşır. Essential Studio 24.x için geçerli bir anahtar, 25.x'e yükseltildikten sonra çalışmayı durdurur, bu da her dağıtım ortamında sırları güncellemeyi ve üretim çıktılarında deneme su işaretlerinin görünmediğinden emin olmayı gerektirir. Sık sürüm kadansları veya birden çok dağıtım hedefi olan takımlar, bu dönüşüm yükünü sağlanan yararına orantısız bulurlar, özellikle temel kullanım durumunun tam bir UI bileşen paketi tüketmektense bir barkod görüntüsü üretmek olduğu durumlarda.
Genel Geçiş Dikkat Edilmesi Gereken Hususlar
SyncfusionLicenseProvider Kaydı Kaldırma
Syncfusion lisans çağrısı — SyncfusionLicenseProvider.RegisterLicense("KEY") — genellikle Program.cs, App.xaml.cs veya bir uygulama başlangıç metodunda görünür. Başlangıç dizisindeki aynı noktada IronBarCode.License.LicenseKey = "KEY" ile kaldırılmalı ve değiştirilmelidir. İlgili hizmet kayıt çağrıları (AddSyncfusionBlazor, ConfigureSyncfusionCore) ve _Imports.razor içindeki namespace içe aktarmaları proje içinde başka Syncfusion bileşenleri kalmamışsa da kaldırılmalıdır.
SfBarcode'dan BarcodeWriter'a Desen
SfBarcode iş akışı, kontrol oluşturma, özellik atama, boyut belirtimi ve DrawToBitmap oluşturmayı içerir.IronBarcode eşdeğeri tek zincirli bir ç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 olarak eşlenir, QRBarcode, QRCodeWriter.CreateQrCode olarak eşlenir.
Blazor Bileşeninden API Uç Noktasına Desen
SfBarcodeGenerator bir Razor bileşenidir; Onu IronBarcode ile değiştirmek, satır-başı bir ikame yerine yapısal bir değişikliktir. Blazor için IronBarcode modeli, bir Razor bileşeninden standart <img src="..."> etiketi aracılığıyla atıfta bulunulan ve bayt olarak bir barkod görüntüsü döndüren bir minimal API uç noktasıdır. Bu yaklaşım, sunucu tarafında bağımsız olarak test edilebilir ve yeniden kullanılabilir bir uç nokta oluşturur, Syncfusion Blazor JavaScript katmanına bağlı tarayıcıda render bileşeni yerine.
Ek IronBarcode Yetenekleri
Yukarıdaki bölümlerde tartışılmayan ve proje gereksinimlerine bağlı olarak ilgili olabilecek IronBarcode yetenekleri:
- Marka logosu gömülü QR kodu:
.AddBrandLogo("logo.png"), karekodun merkezine bir şirket logosu yerleştirir ve hataları düzeltme yoluyla tarama güvenilirliğini korur. - SVG çıkışı: Barkodlar, baskı üretimi ve yüksek DPI ekranlar için uygun vektör SVG dosyaları olarak ihraç edilebilir.
- HTML çıkışı: Barkodlar, kendi kendine yeten HTML dosyaları olarak ihraç edilebilir.
- Çoklu barkod algılama:
BarcodeReader.Read, tek bir görüntüdeki tüm barkodları algılar ve döndürür. - Okumalarda güven puanlaması: Her okuma sonucu, düşük kaliteli tespitlerin filtrelenmesini destekleyen bir güven puanı içerir.
- Açıklama ve stil verme: Oluşturulan barkodlar, harici bir görüntü 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'un kontrolünde bulunmayan özel formatları destekler.
.NET Uyumluluğu ve Geleceğe Hazırlık
IronBarcode, .NET Standard 2.0 ve üstünü hedefler, .NET Framework 4.6.2 ve sonrasıyla, .NET Core 3.1 ve tüm mevcut .NET sürümleri, .NET 8 ve .NET 9 dahil olmak üzere uyumluluk sağlar. Kütüphane, Microsoft'un .NET sürüm takvimine uygun düzenli güncellemeler alır.IronBarcode bir UI kontrolü değil, statik bir programatik kütüphane olduğu için, WinForms, WPF, Blazor ve MAUI arasındaki platform evrim farklarından etkilenmez — aynı NuGet paketi ve aynı API, tüm mevcut ve gelecekteki .NET uygulama modellerinde platforma özgü destekler olmadan çalışır.
Sonuç
Syncfusion Barcode ve IronBarcode, özellik sayısının ötesine geçen bir mimari seviyede farklıdır. Syncfusion barkod, bir form düzeni içinde bir barkod görüntülemek amacıyla büyük bir bileşen paketine entegre edilen bir UI rendereleme kontrolüdür; bu amaç için iyi tasarlanmıştır. IronBarcode, dosya oluşturma ve okuma amacıyla barkodları veri olarak işleyen bir programatik dosya oluşturma ve okuma kütüphanesidir — dosya oluşturma, görüntüleri okuma ve herhangi bir dağıtım ortamında çalıştırma amacıyla. Bunlar, farklı birincil kullanım durumları için tasarlanmış farklı araçlar olup, aralarındaki seçim, büyük ölçüde proje ile ilgili kullanım durumunun uygulanıp uygulanmadığına bağlıdır.
Syncfusion Barcode, bir ekip zaten Syncfusion Essential Studio'yu diğer UI bileşenleri — gridler, grafikler, planlayıcılar — için kullandığında uygun seçimdir ve barkod gereksinimi, bir forma veya bir Blazor sayfasında bir barkod görüntülemektir. Bu bağlamda, barkod kontrolü mevcut lisansa zaten dahildir ve bir form üzerine eklemesi, tasarımcıya bir kontrol bırakmak meselesidir. Bu belirli koşullara sahip ekipler için IronBarcode satın almak, mevcut lisansın sağlamadığı bir değer eklemez.
IronBarcode, gereksinimin form görüntülemenin ötesine geçtiği durumlarda doğru seçimdir: yüklenen görüntülerden barkodları okuma, bir arka plan hizmetinde barkod dosyaları oluşturma, PDF belgelerinden barkod okuma, Linux üzerinde bir Docker konteynerine dağıtma veya bir web API uç noktasının barkod görüntüleri döndürmesi. Ayrıca, lisanslama durumu dört Syncfusion Community License koşulunu kalıcı olarak karşılamayan ekipler veya NuGet yükseltme sürecinin bir parçası olarak sürüm-specifik anahtar dönüşümünü önlemek isteyen ekipler için de uygun seçimdir. IronBarcode'un sürekli lisans modeli ve birleşik üretim ve okuma paketi, bu operasyonel kaygıları doğrudan ele alır.
Syncfusion'un barkod ekosistemini tanımlayan kısıtlama, üretim ve okumanın iki ürün arasında ayrılmasıdır, okuma ürünü ise açık kaynaklı ZXing.Net decoder üzerine inşa edilmiştir. Her iki yeteneğe de ihtiyacı olan ekipler için bu düzenleme, iki lisans kapsamı, iki API yüzeyi ve uygulama ile temeldeki ZXing.Net kütüphanesi arasında ek bir katman oluşturur. IronBarcode'un tek paketli modeli bu dolaylılığı ortadan kaldırır. Doğru seçim, gerçek gereksinimlere uyan mimaridir: eğer mevcut bir Syncfusion UI içinde barkod görüntüleme tam kapsamının içindeyse, Syncfusion doğal uyumdur; eğer barkod işleme bir arka plan meselesiyse,IronBarcode daha uygun temeldir.
Sıkça Sorulan Sorular
Syncfusion Barcode nedir?
Syncfusion Barcode, C# uygulamalarında barkod oluşturma ve okuma için kullanılan bir .NET barkod kütüphanesidir. Geliştiricilerin .NET projeleri için barkod çözümü seçerken değerlendirdikleri birkaç alternatiften biridir.
Syncfusion Barcode ile IronBarcode arasındaki ana farklar nelerdir?
IronBarcode, hiçbir örnek yönetimi gerektirmeyen statik, durumdan bağımsız bir API kullanır, oysa Syncfusion Barcode genellikle kullanım öncesinde örnek oluşturma ve yapılandırmayı gerektirir. IronBarcode ayrıca yerel PDF desteği, otomatik format algılama ve tüm ortamlar arasında tek anahtarla lisanslama sağlar.
IronBarcode lisanslamak Syncfusion Barcode'dan daha mı kolay?
IronBarcode hem geliştirme hem de üretim dağıtımlarını kapsayan tek bir lisans anahtarı kullanır. Bu, SDK anahtarlarını çalışma zamanı anahtarlarından ayıran lisanslama sistemlerine kıyasla CI/CD hatlarını ve Docker yapılandırmalarını basitleştirir.
IronBarcode, Syncfusion Barcode'un desteklediği tüm barkod formatlarını destekliyor mu?
IronBarcode, QR Code, Code 128, Code 39, DataMatrix, PDF417, Aztek, EAN-13, UPC-A, GS1 ve daha birçokları dahil olmak üzere 30'dan fazla barkod sembolojisini destekler. Format otomatik algılama, açıkça format sayımını gerektirmez.
IronBarcode doğal PDF barkod okuma desteği sunuyor mu?
Evet. IronBarcode, ayrı bir PDF render kütüphanesi gerektirmeden, BarcodeReader.Read('document.pdf') kullanarak PDF dosyalarından doğrudan barkod okur. Sayfa bazında sonuçlar sayfa numarası, barkod formatı, değeri ve güven puanını içerir.
IronBarcode, Syncfusion Barcode'a kıyasla toplu işlemi nasıl ele alıyor?
IronBarcode'un statik yöntemleri durum terkibesizdir ve doğal olarak thread-safe'dir, bu da thread başına örnek yönetimi olmadan Parallel.ForEach'in doğrudan kullanımına olanak tanır. Herhangi bir fiyatlandırma seviyesinde bir throughput tavanı 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 paketinde destekler. Platform hedefleri arasında Windows x64/x86, Linux x64 ve macOS x64/ARM bulunur.
Bir .NET projesine IronBarcode'u nasıl kurarım?
IronBarcode'u NuGet üzerinden kurun: Paket Yöneticisi Konsolunda 'Install-Package IronBarCode' komutunu veya CLI'da 'dotnet add package IronBarCode' komutunu çalıştırın. Ek bir SDK yükleyicisi veya çalışma zamanı dosyası gerekmez.
IronBarcode'u, Syncfusion'dan farklı olarak, satın almadan önce değerlendirebilir miyim?
Evet. IronBarcode'un deneme modu, yalnızca oluşturulan çıktı görüntülerine bir filigran ekleyerek, barkod değerlerini tam olarak döndürür. Satın almadan önce, kendi belgelerinizde okuma doğruluğunu kıyaslayabilirsiniz.
Syncfusion Barcode ile IronBarcode arasındaki fiyatlandırma farkı nedir?
IronBarcode, geliştirme ve üretimi kapsayan, sürekli bir tek geliştirici lisansı için $749'dan başlar. Fiyat detayları ve hacim seçenekleri IronBarcode lisanslama sayfasında mevcuttur. Ayrı bir çalışma zamanı lisansı gerekliliği yoktur.
Syncfusion Barcode'den IronBarcode'a geçmek kolay mı?
Syncfusion Barcode'den IronBarcode'a geçiş, öncelikle örnek tabanlı API çağrılarının IronBarcode'un statik yöntemleriyle değiştirilmesini, lisans şablonlarının kaldırılmasını ve sonuç özelliği adlarının güncellenmesini içerir. Çoğu geçiş, kod eklemekten ziyade kodu azaltmayı içerir.
IronBarcode, logolu QR kodları üretebiliyor mu?
Evet. QRCodeWriter.CreateQrCode().AddBrandLogo('logo.png'), konfigüre edilebilir hata düzeltme ile QR koduna yerel olarak bir marka görüntüsü yerleştirir. Renkli QR kodları, ChangeBarCodeColor() ile de desteklenir.

