Neodynamic Barcode Professional vs IronBarcode: C# Barkod Kütüphanesi Karşılaştırması
Neodynamic'in Barkod Okuyucu SDK'sı QR kodlarını okuyamaz. Her iki Neodynamic SDK'sı da satın alabilirsiniz ve yine de eşlik eden üreticinin ürettiği aynı QR kodlarını okuyamazsınız. Bu tek çelişki — QR Kod, DataMatrix, PDF417 ve Aztec'i destekleyen bir üretici ile bu formatların hiçbirini desteklemeyen bir okuyucu —, Neodynamic barkod araçlarıyla çalışmanın pratik deneyimini tanımlar ve ardından takip edenIronBarcodeile karşılaştırmayı çerçeveler.
Neodynamic Barkodu Anlamak
Neodynamic, barkod işlevselliğini iki tamamen ayrı ticari ürünle sunar: barkod üretimi için Barcode Professional SDK ve barkod okuma için Barcode Reader SDK. Her ürün kendi NuGet paketi olarak dağıtılır, kendi satın alımı gerektirir ve kendi lisans anahtarını taşır. Hem üretim hem de okuma gerektiren bir proje, her iki paketi bağımsız olarak entegre etmeli, ayrı güncelleme döngüleri boyunca ikisini de sürdürmeli ve uygulama başlangıcında her ikisini de yapılandırmalıdır.
Barcode Professional SDK, üretim bileşenidir. Doğrusal formatlar (Code 128, Code 39, EAN-13, UPC-A, Codabar, ITF) ve 2D formatlar (QR Kod, DataMatrix, PDF417, Aztec) dahil geniş bir simetoji yelpazesini destekler. SDK, örnek tabanli bir API kullanir: bir BarcodeInfo nesnesi oluşturulur, özellikleri atanir ve standart System.Drawing.Imaging boru hatti yoluyla kaydedilen bir System.Drawing.Image uretmek icin GetImage() cagrilir. SDK, çeşitli platformlarda kurulumlari kisitlayan bir System.Drawing bagliligi tasir.
Barcode Reader SDK ise okuma bileşenidir. Bu, bir System.Drawing.Bitmap kabul eder ve sadece 1D sembolojileri icin sonuclar dondurur. QR Kod, DataMatrix, PDF417, Aztec ve diğer tüm 2D formatları okuyucu tarafından desteklenmez. Bir 2D barkod gönderildiğinde, SDK hiçbir sonuç döndürmez — bir istisna atmaz, sadece boş bir sonuç kümesi üretir. Neodynamic ürünleriyle çalışan ekipler, bir üretim iş akışı oluşturduktan sonra bu sınırlamayı keşfeden ekipler, 2D okuma yeteneğini geri kazanmanın Neodynamic ekosisteminin dışındaki üçüncü bir kütüphaneyi eklemeyi gerektirdiğini bulurlar.
Neodynamic Barkod'un ana mimari özellikleri:
- Üretim ve okuma için ayrı ürünler: Her iki yeteneği de kullanan bir proje için iki NuGet paketi, iki satın alma ve iki lisans anahtarı gereklidir.
- 2D okumasız 2D üretim: Barcode Professional SDK QR Kod, DataMatrix, PDF417 ve Aztec üretir, ancak eşlik eden Barcode Reader SDK bu formatların hiçbirini okuyamaz.
- Örnek tabanli uretim API'si: Uretim, bir
BarcodeInfonesnesi oluşturulmasini veGetImage()cagirmadan once özelliklerin atanmasini gerektirir. - System.Drawing bagimliligi: Her iki SDK da ek konfigurasyon olmaksizin Linux ve kapsayici ortamlarda kurulumlari sinirlayan
System.Drawing'e baglidir. - Sadece 1D okuma kapsamı: Barcode Reader SDK, Code 128, EAN-13, UPC-A, Code 39, Codabar, Çapraz 2/5 ve MSI/Plessey destekler. Hiçbir 2D format dahil edilmemiştir.
- Yerel PDF desteği yok: Hiçbir SDK, barkodları PDF belgelerinden doğrudan okumaz; ayrı bir görüntü çıkarma adımı gereklidir.
- Otomatik format algılama yok: Okuyucu, desteklediği formattan değil, görüntü içeriğinden formatı çıkarır.
Bölünmüş SDK Mimarisi
Hem Neodynamic SDK'larindan hem de ikilisinden lisans satin alan bir proje, başlangicta iki ayri lisans blogu ayarlamalidir. Cift LicenseOwner ve LicenseKey atamalari farkli namespace'ler ve farkli sınıf adlari kullanir ve ne biri ne digeri digerini fark eder:
// Neodynamic: two products, two license configurations
using Neodynamic.SDK.Barcode;
using Neodynamic.SDK.BarcodeReader;
// Generation license (Barcode Professional SDK)
BarcodeInfo.LicenseOwner = "Company";
BarcodeInfo.LicenseKey = "GEN-KEY";
// Reader license — separate purchase, separate key
Neodynamic.SDK.BarcodeReader.BarcodeReader.LicenseOwner = "Company";
Neodynamic.SDK.BarcodeReader.BarcodeReader.LicenseKey = "READ-KEY";
// Neodynamic: two products, two license configurations
using Neodynamic.SDK.Barcode;
using Neodynamic.SDK.BarcodeReader;
// Generation license (Barcode Professional SDK)
BarcodeInfo.LicenseOwner = "Company";
BarcodeInfo.LicenseKey = "GEN-KEY";
// Reader license — separate purchase, separate key
Neodynamic.SDK.BarcodeReader.BarcodeReader.LicenseOwner = "Company";
Neodynamic.SDK.BarcodeReader.BarcodeReader.LicenseKey = "READ-KEY";
Imports Neodynamic.SDK.Barcode
Imports Neodynamic.SDK.BarcodeReader
' Neodynamic: two products, two license configurations
' Generation license (Barcode Professional SDK)
BarcodeInfo.LicenseOwner = "Company"
BarcodeInfo.LicenseKey = "GEN-KEY"
' Reader license — separate purchase, separate key
Neodynamic.SDK.BarcodeReader.BarcodeReader.LicenseOwner = "Company"
Neodynamic.SDK.BarcodeReader.BarcodeReader.LicenseKey = "READ-KEY"
Bu model, geliştirme, sahneleme ve üretim dahil her ortamda tekrar eder ve herhangi bir ürün yükseltilir veya yenilenirse bu durumda korunmalıdır.
IronBarcode'u Anlamak
IronBarcode, Iron Software tarafından geliştirilen, tek bir lisans altında tek bir NuGet paketi aracılığıyla barkod oluşturma ve okuma sağlayan ticari bir .NET barkod kütüphanesidir. Kutuphane statik bir API modeli kullanir: uretim BarcodeWriter.CreateBarcode() araciligiyla ve okuma BarcodeReader.Read() araciligiyla gerceklestirilir. Her iki yöntem de, format-spesifik kod yolları gerektirmeden tüm desteklenen simetolojiler arasında çalışır.
IronBarcode, platforma ozgu konfigurasyon gerektirmeden Linux, macOS ve Docker kapsayicilarinda kurulabilir olmasini saglayan System.Drawing bagimliligi olmadan insa edilmistir. Kütüphane, görüntü dosyalarından, görüntü akışlarından ve PDF belgelerinden barkodları doğrudan okuyarak, PDF kaynakları için ayrı bir görüntü çıkarma adımı gerektirmez.
IronBarcode'un ana özellikleri:
- Üretim ve okuma için tek paket: Bir NuGet paketi, bir lisans anahtarı ve tek bir yapılandırma bloğu, tüm barkod işlemlerini kapsar.
- Birleşik 1D ve 2D desteği: Aynı API, Code 128, EAN-13, QR Kod, DataMatrix, PDF417, Aztec ve 50+ ek simetolojiyi okur ve üretir.
- Statik fluent API:
BarcodeWriter.CreateBarcode()zincirlenebilir bir sonuc dondurur;BarcodeReader.Read()dosya yollarini, akislari ve PDF belgelerini kabul eder. - Otomatik format algılama: Okuyucu, beklenen formatı belirtmesini gerektirmeden, görüntü içeriğinden simetolojiyi tanımlar.
- System.Drawing bağımlılığı yok: Linux üzerinde ve konteynerlerde çapraz platform konuşlandırma, ek yerel kütüphane yapılandırması olmadan çalışır.
- Yerel PDF okuma: PDF belgelerine gömülü barkodlar doğrudan okunur, barkod değerleriyle birlikte sayfa numarası meta verilerini de döndürür.
- Async ve toplu işleme:
BarcodeReader.ReadAsync()ve çok sayfali toplu işlem işlemleri yuksek verimli sunucu yuklerini destekler.
Özellik Karşılaştırması
Aşağıdaki tablo, Neodynamic ürünleri ileIronBarcodearasındaki en üst düzeydeki farkları özetler:
| Özellik | Neodynamic Barcode Professional | Neodynamic Barcode Reader | IronBarcode |
|---|---|---|---|
| Barkod oluşturma | Evet | Hayır | Evet |
| 1D barkod okuma | Hayır | Evet | Evet |
| 2D barkod okuma | Hayır | Hayır | Evet |
| Gerekli ürünler | 1 (sadece üretim) | 1 (sadece okuma) | 1 (her ikisi) |
| Gerekli lisans anahtarları | Satın alınan ürün başına 1 | Satın alınan ürün başına 1 | Toplamda 1 |
| Yerel PDF barkod okuma | Hayır | Hayır | Evet |
| System.Drawing bağımlılığı | Evet | Evet | Hayır |
Detayli Özellik Karsilastirmasi
| Özellik | Neodynamic Barcode Professional | Neodynamic Barcode Reader | IronBarcode |
|---|---|---|---|
| Uretim | |||
| Kod 128 uretimi | Evet | N/A | Evet |
| EAN-13 / UPC-A oluşturma | Evet | N/A | Evet |
| Code 39 üretimi | Evet | N/A | Evet |
| QR Kodu oluşturma | Evet | N/A | Evet |
| DataMatrix oluşturma | Evet | N/A | Evet |
| PDF417 üretimi | Evet | N/A | Evet |
| Aztec üretimi | Evet | N/A | Evet |
| Okuma | |||
| Code 128 okuma | N/A | Evet | Evet |
| EAN-13 / UPC-A okuma | N/A | Evet | Evet |
| Code 39 okuma | N/A | Evet | Evet |
| Codabar okuma | N/A | Evet | Evet |
| QR Kod okuma | N/A | Hayır | Evet |
| DataMatrix okuma | N/A | Hayır | Evet |
| PDF417 okuma | N/A | Hayır | Evet |
| Aztek okuma | N/A | Hayır | Evet |
| Otomatik format algılama | N/A | Hayır | Evet |
| Girdi Kaynakları | |||
| Görüntü dosya girişi | Evet | Evet | Evet |
| PDF belge girişi | Hayır | Hayır | Evet |
| Akış girişi | Evet | Evet | Evet |
| Platform ve Lisanslama | |||
| System.Drawing bağımlılığı | Evet | Evet | Hayır |
| Linux / Docker desteği | Sınırlı | Sınırlı | Evet |
| .NET Standard 2.0 | Evet | Evet | Evet |
| .NET 8 / .NET 9 | Evet | Sınırlı | Evet |
| Gereken NuGet paketleri | Ürün başına 1 | Ürün başına 1 | Toplamda 1 |
| Lisans anahtarı gereklidir | Ürün başına 1 | Ürün başına 1 | Toplamda 1 |
Okuma Formatı Desteği
İki Neodynamic SDK'sı ileIronBarcodearasındaki okuma formatı sınırı bu karşılaştırmadaki en önemli teknik farktır.
Neodynamic Barkod Okuyucu Yaklaşımı
Neodynamic Barkod Okuyucu yalnızca lineer barkodları destekler. Bir 2D barkod okuyucuya gönderildiğinde, SDK boş veya null bir sonuç seti döndürür. Hiçbir istisna ortaya çıkmaz ve ne olduğunu belirten bir hata mesajı yoktur. Bu SDK ile çalışan ekipler, tipik olarak QR kod resimlerine karşı okuyucuya çağrı yapan kodu dağıttıktan sonra sınırlamayı keşfeder ve sonuç koleksiyonunun her zaman boş olduğunu gözlemlerler.
Neodynamic Okuyucu kullanan kod tabanlarındaki yaygın bir savunmacı kalıp, 2D formatın beklenildiği bir durumda bir istisna ortaya çıkaran açık bir kontrol sunmaktır:
//Neodynamic Barcode ReaderSDK: QR code reading is not supported
using Neodynamic.SDK.BarcodeReader;
using System.Drawing;
public string ReadQrCode(string imagePath)
{
using var bitmap = new Bitmap(imagePath);
var results = BarcodeReader.Read(bitmap);
// Results will be null or empty — QR codes are not recognised by this SDK
if (results == null || !results.Any())
{
throw new NotSupportedException(
"Neodynamic Barcode Reader does not support QR codes");
}
return results.First().Value;
}
//Neodynamic Barcode ReaderSDK: QR code reading is not supported
using Neodynamic.SDK.BarcodeReader;
using System.Drawing;
public string ReadQrCode(string imagePath)
{
using var bitmap = new Bitmap(imagePath);
var results = BarcodeReader.Read(bitmap);
// Results will be null or empty — QR codes are not recognised by this SDK
if (results == null || !results.Any())
{
throw new NotSupportedException(
"Neodynamic Barcode Reader does not support QR codes");
}
return results.First().Value;
}
Imports Neodynamic.SDK.BarcodeReader
Imports System.Drawing
Public Function ReadQrCode(imagePath As String) As String
Using bitmap As New Bitmap(imagePath)
Dim results = BarcodeReader.Read(bitmap)
' Results will be null or empty — QR codes are not recognised by this SDK
If results Is Nothing OrElse Not results.Any() Then
Throw New NotSupportedException("Neodynamic Barcode Reader does not support QR codes")
End If
Return results.First().Value
End Using
End Function
Bu yöntem yalnızca Neodynamic Reader SDK ile tamamlanamaz. NotSupportedException bir gecici cozum değil — bu, okuyucunun 2D giris icin saglayabilecegi tek dogru yanittir.
IronBarcode Yaklaşımı
IronBarcode, tüm desteklenen sembolojileri ayni BarcodeReader.Read() cagrisiyla okur. Format görüntü içeriğinden otomatik olarak algılanır. Bir QR kodu, bir Code 128 ve bir DataMatrix barkodunun hepsi aynı çağrı kodunu kullanır:
using IronBarCode;
public string ReadQrCode(string imagePath)
{
// QR codes, DataMatrix, PDF417 — all handled automatically
var result = BarcodeReader.Read(imagePath).FirstOrDefault();
return result?.Value;
}
using IronBarCode;
public string ReadQrCode(string imagePath)
{
// QR codes, DataMatrix, PDF417 — all handled automatically
var result = BarcodeReader.Read(imagePath).FirstOrDefault();
return result?.Value;
}
Imports IronBarCode
Public Function ReadQrCode(imagePath As String) As String
' QR codes, DataMatrix, PDF417 — all handled automatically
Dim result = BarcodeReader.Read(imagePath).FirstOrDefault()
Return If(result?.Value, Nothing)
End Function
Arayan kişi beklenen formatı belirtmez.IronBarcodesembolojiyi tanımlar ve değeri döndürür. Çoklu barkod algılama ve görüntü ön işleme seçenekleri de dahil olmak üzere görüntü okuma seçenekleriyle ilgili tüm detaylar için görüntülerden barkod okuma kılavuzuna bakın.
Barkod Oluşturma
HemNeodynamic Barcode Professionalhem deIronBarcode1D ve 2D barkodlar oluşturmaya uygun. Fark API stili ve bağımlılık ayak izinde, çıktı yeteneğinde değil.
Neodynamic Barkod Professional Yaklaşımı
Neodynamic'in üretim API'si örnek tabanlıdır. Bir BarcodeInfo nesnesi oluşturulur, özellikleri tek tek atanir ve GetImage() cagrilarak bir System.Drawing.Image dondurulur. Gorsel, System.Drawing.Imaging.ImageFormat numaralandirmasi kullanilarak kaydedilir:
using Neodynamic.SDK.Barcode;
// Configure license first
BarcodeInfo.LicenseOwner = "Your Company";
BarcodeInfo.LicenseKey = "YOUR-KEY";
// Build the barcode through property assignment
var barcode = new BarcodeInfo();
barcode.Value = "12345678";
barcode.Symbology = Symbology.Code128;
barcode.TextAlign = BarcodeTextAlignment.BelowCenter;
barcode.Dpi = 300;
// Get image and save via System.Drawing
System.Drawing.Image image = barcode.GetImage();
image.Save("output.png", System.Drawing.Imaging.ImageFormat.Png);
using Neodynamic.SDK.Barcode;
// Configure license first
BarcodeInfo.LicenseOwner = "Your Company";
BarcodeInfo.LicenseKey = "YOUR-KEY";
// Build the barcode through property assignment
var barcode = new BarcodeInfo();
barcode.Value = "12345678";
barcode.Symbology = Symbology.Code128;
barcode.TextAlign = BarcodeTextAlignment.BelowCenter;
barcode.Dpi = 300;
// Get image and save via System.Drawing
System.Drawing.Image image = barcode.GetImage();
image.Save("output.png", System.Drawing.Imaging.ImageFormat.Png);
Imports Neodynamic.SDK.Barcode
Imports System.Drawing
Imports System.Drawing.Imaging
' Configure license first
BarcodeInfo.LicenseOwner = "Your Company"
BarcodeInfo.LicenseKey = "YOUR-KEY"
' Build the barcode through property assignment
Dim barcode As New BarcodeInfo()
barcode.Value = "12345678"
barcode.Symbology = Symbology.Code128
barcode.TextAlign = BarcodeTextAlignment.BelowCenter
barcode.Dpi = 300
' Get image and save via System.Drawing
Dim image As Image = barcode.GetImage()
image.Save("output.png", ImageFormat.Png)
SDK, DPI kontrolü, metin hizalaması, renk ayarları ve sessiz bölge boyutlandırma gibi meşru özelleştirme seçenekleri sunar. Bunlar, fiziksel boyutların önemli olduğu baskı iş akışları için faydalıdır. Oluşturma yeteneği kendi başına tamamdır; göçü teşvik eden sınırlamalar okuma tarafında, üretim tarafında değil.
IronBarcode Yaklaşımı
IronBarcode akıcı statik bir yaklaşım kullanır. Kodlama ve veriler, BarcodeWriter.CreateBarcode()'a parametreler olarak iletilir ve cikti formati, dondurulen nesne uzerindeki bir yöntem adi olarak ifade edilir. Hicbir System.Drawing importu gerekli degildir:
using IronBarCode;
BarcodeWriter.CreateBarcode("12345678", BarcodeEncoding.Code128)
.SaveAsPng("output.png");
using IronBarCode;
BarcodeWriter.CreateBarcode("12345678", BarcodeEncoding.Code128)
.SaveAsPng("output.png");
Imports IronBarCode
BarcodeWriter.CreateBarcode("12345678", BarcodeEncoding.Code128) _
.SaveAsPng("output.png")
2D barkod oluşturma icin, QR kodlarina ozel ek seçenekler saglayan ozel QRCodeWriter sinifi bulunur:
using IronBarCode;
QRCodeWriter.CreateQrCode("https://example.com", 500, QRCodeWriter.QrErrorCorrectionLevel.High)
.SaveAsPng("qrcode.png");
using IronBarCode;
QRCodeWriter.CreateQrCode("https://example.com", 500, QRCodeWriter.QrErrorCorrectionLevel.High)
.SaveAsPng("qrcode.png");
Imports IronBarCode
QRCodeWriter.CreateQrCode("https://example.com", 500, QRCodeWriter.QrErrorCorrectionLevel.High) _
.SaveAsPng("qrcode.png")
Boyutlandırma ve açıklama seçenekleriyle 1D semboloji oluşturma rehberliği için 1D barkodlar oluşturma kılavuzuna bakın. DataMatrix ve PDF417 dahil olmak üzere 2D barkod oluşturma için 2D barkodlar oluşturma kılavuzuna bakın.
Lisanslama ve Ürün Yapısı
Lisanslama modeli, hem üretim hem de okuma gerektiren sistemler kuran ekipler için iki seçenek arasındaki en pratik farklardan birini temsil eder.
Neodynamic Yaklaşımı
Neodynamic'in barkod yeteneği iki ayrı lisansa sahip ürün arasında bölünmüş durumda. Barkod Professional SDK üretimi kapsarken Barkod Reader SDK okuma kapsamındadır. Her ürün ayrı bir satın alma gerektirir ve ayrı bir lisans anahtarı taşır. Hem urunleri alan bir takim, iki LicenseOwner / LicenseKey ayar blogu surdurmeli, iki ayri yenileme tarihini takip etmeli ve sorular ortaya ciktiginda iki ayri destek kanaliyla ugrasmalidir.
Barkod Professional SDK'nın fiyatı tek bir geliştirici lisansı için yaklaşık $245 doğusundadır. Barkod Reader SDK ayrı bir maliyet taşır. Dolayısıyla, hem üretim hem de 1D okuma gerektiren bir proje, tek bir geliştirici için yaklaşık veya $500'ü aşan bir harcama gerektirir. 2D okuma gerektiren bir proje, Neodynamic ürünleriyle o gerekliliği herhangi bir fiyata karşılayamaz — üçüncü bir kütüphane eklenmelidir. Tek bir birleşik lisansın neleri kapsadığının tam listesini görmek için IronBarcode desteklenen barkod formatları sayfasına bakın.
IronBarcode Yaklaşımı
IronBarcode, tek bir lisans anahtarı altında tüm barkod işlemlerini — tüm desteklenen sembolojiler üzerinden üretim ve okumayı — kapsayan tek bir ürün olarak satılmaktadır. Ayrı bir okuyucu lisansı, ayrı bir üretici lisansı yoktur ve 2D format desteği için ek bir maliyet yoktur. Lisans anahtarı uygulama başlangıcında bir kere ayarlanır ve daha fazla yapılandırma gerektirmez:
IronBarCode.License.LicenseKey = "YOUR-KEY";
IronBarCode.License.LicenseKey = "YOUR-KEY";
Imports IronBarCode
IronBarCode.License.LicenseKey = "YOUR-KEY"
IronBarcode Lite tek bir geliştirici için $749 fiyatlandırılmış olup tam yetenek setini kapsamaktadır. Şu anki fiyatlandırma katmanları ve hacim seçenekleri için IronBarcode lisanslama sayfasına bakın.
API Eslestirme Referansi
| Neodynamic API | IronBarcode Eşdeğeri | Notlar |
|---|---|---|
BarcodeInfo.LicenseOwner = "..." |
IronBarCode.License.LicenseKey = "key" |
Tek anahtar, sahibi + anahtar çifti yerine geçer |
BarcodeInfo.LicenseKey = "..." |
(part of single key above) | Ayrı bir sahibi alanı yok |
Neodynamic.SDK.BarcodeReader.BarcodeReader.LicenseOwner |
(removed) | Gerekli değil |
Neodynamic.SDK.BarcodeReader.BarcodeReader.LicenseKey |
(removed) | Gerekli değil |
new BarcodeInfo() |
BarcodeWriter.CreateBarcode(data, encoding) |
Statik yöntem, örnek yok |
barcode.Value = data |
CreateBarcode'nin birinci parametresi |
Yapı aşamasında geçirildi |
barcode.Symbology = Symbology.Code128 |
BarcodeEncoding.Code128 |
İkinci parametre |
barcode.Symbology = Symbology.QRCode |
BarcodeEncoding.QRCode |
Tam gidiş-dönüş destekleniyor |
barcode.GetImage().Save(path, ImageFormat.Png) |
.SaveAsPng(path) |
Akıcı, ImageFormat enumu yok |
BarcodeReader.Read(bitmap) |
BarcodeReader.Read(imagePath) |
Dosya yolu Bitmap nesnesinin yerine geçer |
result.Value |
result.Value |
Aynı özellik adı |
QR icin throw new NotSupportedException(...) |
BarcodeReader.Read(imagePath) |
Standart okuma çağrısıyla değiştirin |
Ekipler Neodynamic Barkoddan IronBarcode'a Geçmeyi Düşündüğünde
QR Kod Okuma Gereksinimleri
Neodynamic'den IronBarcode'a yönelen ekipleri en sık yönlendiren senaryo, Barkod Professional SDK tarafından üretilen QR kodlarının Barkod Reader SDK tarafından geri okunamayacağını keşfetmeleridir. Ürün etiketleme sistemleri, envanter yönetim araçları veya belge izleme iş akışları kuran ekipler genellikle üretim ve okumayı daha büyük bir sistemin ayrı aşamaları olarak uygularlar. Üretim önce Barkod Professional kullanılarak inşa edildiğinde, okuma bileşeni denenene kadar okuyucu sınırlaması açıkça ortaya çıkmaz. O noktada, proje zaten üretim için Neodynamic'e bağlanmış olur ve 2D okuma için üçüncü bir kütüphane eklemek, birleşik bir SDK ile var olmayan sürüm yönetimi karmaşıklığını ortaya çıkarır.
Ürün Karmaşıklığını Azaltmak
Bazı ekipler belirli bir format boşluğundan değil, konsept olarak tek bir yetenek için iki ayrı ürünü sürdürmenin neden olduğu sürekli tekrarlayan bir sürtüşme noktası nedeniyle geçiş yapar. .csproj dosyasinda iki paket, iki lisans yenileme dongusu, gozden gecirilmesi gereken iki set sürüm notu ve .NET veya Windows güncellendikce ortaya cikan iki potansiyel uyumsuzluk kaynagi — bu yuklerden hicbirinin, tek bir birlesik paketin saglayacagi fonksiyonalitenin otesine gecen bir islevsellik sunmaz. .NET güncellemesi kapsaminda bir bagimlilik denetimi yapan takimlar, siklikla Neodynamic cift-paket duzenlemesini bir basitlestirme firsati olarak tanimlar.
PDF Barkod İşleme
Barkod içeren PDF belgelerini işleyen uygulamalar, her iki Neodynamic SDK'sının da aynı anda yetersiz kaldığı bir senaryoyu temsil eder. Ne üretim SDK'sı ne de okuyucu SDK'sı bir PDF dosyasını açıp sayfaları üzerinden barkod değerlerini çıkaramaz. Gönderim manifestleri, fatura belgeleri, tıbbi kayıtlar veya barkodların PDF'lere gömüldüğü herhangi bir belge iş akışında çalışan ekiplerin okuma başlamadan önce bir ara resim çıkarma adımı uygulaması gerekmektedir. Bu çıkarma adımı ek bir kütüphane gerektirir, bu da projenin zaten tek birIronBarcodekurulumunun ortadan kaldıracağı bir sınırlamayı aşmak için üçüncü bir bağımlılık taşımaktadır.
Okuma ve Yazma Arasında Format Tutarlılığı
Barkod iş akışlarını ölçekli olarak işleten ekipler bazen üretim ve okuma arasındaki format desteği uyumsuzluklarının test ve doğrulama sorunları yarattığını bulurlar. Bir sistem bir amaç için QR kodları oluşturur ve başka bir amaç için farklı format türlerini okuduğunda, üreticinin desteklediği ile okuyucunun desteklediği arasında farklılıklar gidiş-dönüş testlerinde boşluklar oluşturur. Üretim ve okumanın aynı kütüphaneyi ve aynı desteklenen format listesini paylaştığı bir sistemin doğrulanması daha basittir. Üretilen bir barkodun geri başarıyla okunabileceğinin doğrulanması, çoklu kütüphane entegrasyon testi yerine tek kütüphane işlemi haline gelir.
Genel Geçiş Dusunceleri
Çift Paket Kaldırma
Neodynamic'ten gecis yaparken her iki NuGet paketinin kaldirilmasi gerekir: Neodynamic.SDK.Barcode ve Neodynamic.SDK.BarcodeReader. Her ikisi de .csproj dosyasindan kaldirilmali ve ilgili using yonergelinin her ikisi de kaynak dosyalardan kaldirilmalidir. Her biri icin dotnet remove package calistirmak yeterlidir; ikisi arasında ortak bağımlılık yoktur, bu nedenle ek bir temizlik gerektirmez.
Çift Lisans Yapılandırma Temizliği
Iki lisans konfigurasyon blogu — biri BarcodeInfo icin ve biri Neodynamic.SDK.BarcodeReader.BarcodeReader icin — tek bir IronBarCode.License.LicenseKey atamasi ile değiştirilir. Bu atama, uygulama başlangicinda bir kez yapilir, genellikle Program.cs veya uygulamanin bagimlilik enjeksiyonu başlatmasi sirasinda. Neodynamic lisans anahtarlarini saklayan herhangi bir konfigurasyon dosyasi veya ortam degiskeni, gecisin dogrulanmasinin ardindan devre disi birakilabilir.
NotSupportedException Kaldırma
Gelisim sirasinda 2D okuma kisitlamasiyla karsilasan kod temelleri, siklikla QR kodu veya DataMatrix okuma icin NotSupportedException atan placeholder yöntemler icerir. Bu yöntemler gecici cozumler degildir — yetenege sahip olunmadiginin acikca kabuludur. IronBarcode'a gecis yapildiktan sonra, bu tur her yöntem govdesi standart bir BarcodeReader.Read(imagePath) cagrisiyla değiştirilir. Özel bir işleme gerek yoktur; format otomatik olarak algılanır.
EkIronBarcodeIlkeler
Temel karşılaştırma noktalarının ötesinde,IronBarcodeher iki Neodynamic ürününde de bulunmayan yetenekler sunar:
- Dogal PDF barkod okuma:
BarcodeReader.Read("document.pdf"), PDF belgelerinden direk barkodlari okur, ara gorsel cikarma gerekmeden barkod degerleriyle birlikte sayfa numarasi bilgisi dondurur. - Async toplu işleme:
BarcodeReader.ReadAsync(), sunucu tarafli yuklenebilir yuksek hacimli gorsel veya doküman işleme yukleri icin uygun olup, bloke etmeyen okuyucu işlemeyi destekler. - Makine öğrenimi hata düzeltme: IronBarcode, hasarlı, kısmen gizlenmiş veya düşük çözünürlüklü barkod görüntülerinden alınan değerleri geri kazanmak için ML tabanlı hata düzeltmeyi uygular; bu değerler standart kod çözücülerden boş sonuçlar döndürecektir.
- Multi-barcode detection: Tek bir
BarcodeReader.Read()cagri, bir gorselde bulunan tüm barkodlari dondurur, ayni zamanda hem 1D hem de 2D sembolojileri iceren karisimli format gorselleri de dahil olmak üzere. - Barkodları PDF'lere damgalama: IronBarcode, barkod görüntülerini mevcut PDF belgelerine doğrudan yazabilir, ayrı bir PDF kütüphanesi gerektirmez.
- Görüntü ön işleme seçenekleri: Parlaklık düzeltme, döndürme işlemi ve gürültü azaltma, zor koşullarda yakalanan görüntülerde tanıma oranını artırmak için okuyucuda yapılandırılabilir.
.NET Uyumlulugu ve Gelecek Hazirikligi
IronBarcode, .NET Standard 2.0, .NET Framework 4.6.2 ve uzeri, .NET Core 3.1 ve .NET 8 ile .NET 9 dahil olmak üzere tüm güncel .NET surumlerini destekler. Kutuphane, System.Drawing'ye bagli degildir, bu da Linux ve Docker kapsayicilarinda modifikasyon yapilmaksizin calismasini saglar.Neodynamic Barcode ReaderSDK'sinin .NET 8 ve .NET 9 ile uyumlulugu, ek native kutuphane konfigurasyonu gerektiren System.Drawing bagimliligi nedeniyle sinirlidir. IronBarcode, .NET sürüm kadansına uyumlu düzenli güncellemeler alır ve 2026'nın sonlarında beklenen .NET 10 ile uyumluluk, aktif geliştirme kapsamında korunur.
Sonuç
Neodynamic Barcode Professional SDK veNeodynamic Barcode ReaderSDK birlikte, oluşturma ve okumanın ayrı ticari teklifler ve ayrı yetenek sınırları olan bölünmüş bir ürün modeli temsil eder. Oluşturucu, QR Code, DataMatrix, PDF417 ve Aztec'i destekler. Okuyucu bunları desteklemez. Bu asimetri, küçük bir eksiklik değildir - iki ürün, 2D barkod okuma gerektiren herhangi bir uygulama için eksiksiz bir barkod iş akışı oluşturamaz ve mobil ödemelerde, tıbbi takipte, lojistik sevkiyatlarında ve belge işleme gibi en yaygın kullanılan formatlar okuyucuda mevcut değildir.
Neodynamic Barcode Professional, gereksinimin yalnızca oluşturma olduğu durumlarda meşru bir seçimdir. SDK, geniş bir semboloji yelpazesinde yüksek kaliteli çıktı üretir, DPI kontrolü ve baskıya yönelik özelleştirmeleri destekler ve daha geniş Neodynamic ThermalLabel ekosistemi ile entegre olur. Yalnızca Windows kurulumları olan ve yalnızca 1D okumaya ihtiyaç duyan ekipler, Barcode Reader SDK'yı format sınırlamalarıyla karşılaşmadan kullanabilirler. Bu dar operasyonel kapsamda — yalnızca oluşturma veya Windows'ta 1D okuma — Neodynamic'in ürünleri tanımladıkları şeyi sunar.
İronBarcode, bir projenin hem oluşturma hem de okuma gerektirdiği durumlarda, iş akışının herhangi bir kısmı 2D formatları içerdiğinde, PDF belgeleri bir barkod girişi kaynağı olduğunda veya bağımlılık yönetimi için tek paketli bir mimarinin tercih edildiğinde uygun seçimdir. Birlesik lisans modeli, System.Drawing bagimliliginin olmamasi ve tüm desteklenen sembolojiler arasinda otomatik format algilama yetenegi, onu çeşitli kaynaklardan gelen farkli barkod formatlarini isleyen cizgi ustu uygulamalar, bulut kurulumu ve sistemler icin uygun hale getirir.
Sonunda iki ürün arasındaki seçim, Neodynamic'in okuyucudaki format sınırının ilgili projeyi etkileyip etkilemediği sorusuna indirgenir. İş akışları yalnızca Windows'ta 1D barkod oluşturma ve okuma ile sınırlı olan ekipler için, bu sınırla karşılaşılmayabilir. Aynı sistemin hem oluşturma hem de okuma tarafında QR kodları gerektiren ekipler için, Neodynamic ürün ailesi içerisinde bu sınırlamayı aşmak imkansızdır ve tercih edilen kütüphaneden bağımsız olarak farklı bir kütüphane gereklidir.
Sıkça Sorulan Sorular
Neodynamic Barcode Professional nedir?
Neodynamic Barcode Professional, .NET projeleri için C# uygulamalarında barkod oluşturmak ve okumak için bir .NET barkod kütüphanesidir. Geliştiricilerin .NET projeleri için bir barkod çözümü seçerken değerlendirdiği birkaç alternatiften biridir.
Neodynamic Barcode Professional ve IronBarcode arasındaki ana farklar nelerdir?
IronBarcode, örnek yönetimi gerektirmeyen statik, durumsuz bir API kullanır, oysa Neodynamic Barcode Professional genellikle kullanılmadan önce örnek oluşturma ve yapılandırma gerektirir. IronBarcode ayrıca yerel PDF desteği, otomatik format algılama ve tüm ortamlar arasında tek anahtarlı lisanslama sağlar.
IronBarcode lisanslamak Neodynamic Barcode Professional'dan daha mı kolay?
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, Neodynamic Barcode Professional'ın 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, toplu işlemeyle Neodynamic Barcode Professional'a kıyasla nasıl başa çıkıyor?
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.
IronBarcode'u satın almadan önce değerlendirebilir miyim, Neodynamic'den farklı olarak?
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.
Neodynamic Barcode Professional 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.
Neodynamic Barcode Professional'dan IronBarcode'a geçiş yapmak basit mi?
Neodynamic Barcode Professional'dan IronBarcode'a geçiş, öncelikle örnek tabanlı API çağrılarını IronBarcode'un statik yöntemleriyle değiştirmek, lisanslama belgelerini kaldırmak ve sonuç özellik adlarını güncellemeyi içerir. Çoğu geçiş, kodu azaltmakla, eklemekten daha fazla ilgilidir.
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.

