MessagingToolkit.Barcode'dan IronBarcode'a Geçiş
MessagingToolkit.Barcode, son sürümünü — versiyon 1.7.0.2 — 2013 yılında yayınladı ve o tarihten beri hiçbir güncelleme almadı. Bu kılavuz, IronBarcode'a tam geçiş yolunu kapsar: geçişin neden gerekli olduğu, kodda hangi değişikliklerin gerektiği ve geçişin tamamlandığını nasıl doğrulanacağı. Kılavuz, izole bir şekilde barkod işlevselliğini geçiren takımlar ve MessagingToolkit.Barcode'un engelleyici bir bağımlılık olduğu daha geniş bir .NET framework yükseltimi gerçekleştiren takımlar için adreslenmiştir.
MessagingToolkit.Barcode'dan Niçin Geçilmeli
Framework Uyum Engelleyicisi: MessagingToolkit.Barcode, .NET Framework 3.5, 4.0 ve 4.5 için hedeflenmiştir. .NET Standard hedefi ve .NET Core hedefi yoktur. Bu paketi referans veren herhangi bir proje dosyası modern bir .NET hedef çerçevesine ayarlandığında — .NET 6, .NET 7, .NET 8 veya .NET 9 — NuGet restore işlemi framework uyumluluk hatası ile başarısız olur. Derleme devam etmez. Bu bir uyarı veya çalışma zamanı bozulması değildir; projenin hiç derlenmesini engelleyen bir derleme zamanı hatasıdır. MessagingToolkit.Barcode'u kaldırmak, herhangi bir .NET framework yükseltimi için ön koşuldur, isteğe bağlı bir temizlik adımı değildir.
Güvenlik Açığı: Son kod değişikliğinden bu yana on iki yıl geçti. 2014'ten sonra kütüphanenin görüntü işleme mantığında, ZXing türevi çözümleme uygulamasında veya dolaylı bağımlılıklarındaki güvenlik açığı keşfedilen herhangi bir durumda yama, tavsiye veya temasa geçilecek bir bakımcı bulunmamaktadır. Güvenlik tarama araçları paketi terk edilmiş olarak işaretler. Uygunluk çerçeveleri — PCI DSS, HIPAA, SOC 2, ISO 27001 — üçüncü taraf yazılımların aktif yama yönetimini gerektirir. Terk edilmiş bir paket, belirli bir CVE tanımlanmış olup olmadığına bakılmaksızın süreç temellerinde bu denetimleri geçmez.
Platform Hedeflerinin Durdurulması: NuGet paketi meta verileri hedef platform olarak Silverlight 3, 4 ve 5'i listeler; tümü 2021'de durduruldu. Windows Phone 7.0, 7.5, 7.8 ve 8.0 listelendi; bu platformlar için destek 2014 ile 2017 arasında sona erdi. Kütüphane, bu durdurulan ortamların yerine geçen herhangi bir platformu hedeflemek için hiç güncellenmedi.
Yetenek Açıkları: MessagingToolkit.Barcode yalnızca Windows'a özel System.Drawing.Bitmap girdilerini kabul etti ve bu, .NET 6 ve sonrası için geçerlidir. Her çözümleme çağrısında tek bir sonuç döndü, çoklu barkod görüntüleri için destek yoktu. PDF okuma kabiliyeti yoktu — PDF belgelerinden barkod okumak isteyen uygulamalar, kütüphane çağrılmadan önce ayrı bir çıkarım adımı gerektirirdi. Çıktı generasyonu Bitmap döndürdü, bir System.Drawing.Imaging ithalatı gerektirdi ve platformlar arası dağıtımı engelledi.
Temel Sorun
MessagingToolkit.Barcode System.Drawing bağımlılığını ve modern .NET ile uyumsuz bir örnek tabanlı iş akışını zorunlu kılıyor:
// MessagingToolkit.Barcode: only compiles on .NET Framework 4.5 or earlier
// System.Drawing.Bitmap throws PlatformNotSupportedException on Linux/.NET 6+
using MessagingToolkit.Barcode;
using System.Drawing;
var decoder = new BarcodeDecoder();
using (var bitmap = new Bitmap("barcode.png")) // Windows-only in .NET 6+
{
var result = decoder.Decode(bitmap); // Single result or null
if (result != null)
{
Console.WriteLine(result.Text);
}
}Imports MessagingToolkit.Barcode
Imports System.Drawing
Dim decoder As New BarcodeDecoder()
Using bitmap As New Bitmap("barcode.png") ' Windows-only in .NET 6+
Dim result = decoder.Decode(bitmap) ' Single result or Nothing
If result IsNot Nothing Then
Console.WriteLine(result.Text)
End If
End UsingIronBarcode, System.Drawing bağımlılığını tamamen kaldırır ve Windows, Linux, macOS ve Docker konteynerlerinde aynı şekilde çalışır:
// IronBarcode: runs on .NET 6, 7, 8, 9 — Windows, Linux, macOS, Docker
using IronBarCode;
IronBarCode.License.LicenseKey = "YOUR-LICENSE-KEY";
var results = BarcodeReader.Read("barcode.png"); //HayırBitmap, no System.Drawing
foreach (var result in results)
{
Console.WriteLine(result.Value);
}
##IronBarcode vs MessagingToolkit.Barcode: Özellik Karşılaştırması
| Özellik | MessagingToolkit.Barcode | IronBarcode |
|---|---|---|
| Son güncellendi | 2014 | 2026 (aktif) |
| NuGet sürümü | 1.7.0.2 (son) | Mevcut, düzenli güncelleniyor |
| .NET 6 / 7 / 8 / 9 desteği | Hayır | Evet |
| .NET Framework 4.6.2+ | Hayır | Evet |
| .NET Framework 3.5–4.5 | Evet | Hayır |
| .NET Core desteği | Hayır | Evet |
| ASP.NET Core | Hayır | Evet |
| .NET MAUI | Hayır | Evet |
| Blazor | Hayır | Evet |
| Çapraz-platform (Linux, macOS) | Hayır | Evet |
| Docker / konteyner desteği | Hayır | Evet |
| Barkod okuma giriş türleri | Sadece bitmap | Yol, akış, bayt dizisi, PDF |
| PDF barkod okuma | Hayır | Evet (yerel) |
| Görüntü başına çoklu barkod | Hayır | Evet |
| Otomatik format algılama | Hayır | Evet |
| Barkod üretimi çıktı formatları | Sadece bitmap | PNG, JPEG, SVG, PDF, bayt dizisi |
| System.Drawing bağımlılığı | Gereklidir | None |
| Güvenlik yamaları | 2014'ten beri yok | Düzenli yamalar |
| Ticari destek | None | Profesyonel destek mevcut |
| Uyum denetimi sonucu | Terk edilmiş olarak işaretlendi | Standart denetimlerden geçti |
Hızlı Başlangıç: MessagingToolkit.Barcode'dan IronBarcode'a Geçiş
Adım 1: NuGet Paketini Değiştirin
MessagingToolkit.Barcode paketini kaldırın:
dotnet remove package MessagingToolkit.Barcode
Proje MessagingToolkit.Barcode.dll dosyasında bir <HintPath> girdisi aracılığıyla doğrudan referans veriyorsa, o referansı da kaldırın.
IronBarcode'u kurun:
dotnet add package IronBarcode
IronBarcode, .NET Framework 4.6.2'den .NET 9'a kadar desteklemektedir. Tüm bağımlılıkları paketlenmiş tek bir paket olarak yüklenmektedir — yanına ayrı bir grafik kütüphanesi veya ZXing referansı gerekmez.
Adım 2: Ad Alanlarını Güncelleyin
Eski kütüphaneye referans veren her dosyada MessagingToolkit ad alanınıIronBarcode ad alanı ile değiştirin:
// Remove this
using MessagingToolkit.Barcode;
using System.Drawing; // if used only for Bitmap input to MessagingToolkit
// Add this
using IronBarCode;Imports IronBarCodeMessagingToolkit.Barcode ile kullanılan Bitmap türü için yalnızca System.Drawing ithalatı yapan dosyalar,IronBarcode kullanıldığında bu ithalatı iptal edebilir.
Adım 3: Lisansa İzin Verin
Uygulama başlangıcında lisans başlatmasını bir kez ekleyin — Program.cs, Startup.cs veya eşdeğer giriş noktasında. Lisans anahtarı üretim kullanımı için gereklidir; kütüphane, biri olmadan deneme modunda çalışır.
// Add once at application startup
IronBarCode.License.LicenseKey = "YOUR-LICENSE-KEY";' Add once at application startup
IronBarCode.License.LicenseKey = "YOUR-LICENSE-KEY"Kod Göç Örnekleri
Görüntü Dosyalarından Barkod Okuma
Eski yaklaşım, dosya yolundan bir Bitmap oluşturmayı ve bunu bir BarcodeDecoder örneğine geçirmeyi gerektiriyordu. IronBarcode, dosya yolunu doğrudan kabul eder.
MessagingToolkit.Barcode Yaklaşımı:
using MessagingToolkit.Barcode;
using System.Drawing;
public string ReadBarcodeValue(string imagePath)
{
var decoder = new BarcodeDecoder();
using (var bitmap = new Bitmap(imagePath))
{
var result = decoder.Decode(bitmap);
return result?.Text;
}
}Imports MessagingToolkit.Barcode
Imports System.Drawing
Public Function ReadBarcodeValue(imagePath As String) As String
Dim decoder As New BarcodeDecoder()
Using bitmap As New Bitmap(imagePath)
Dim result = decoder.Decode(bitmap)
Return If(result IsNot Nothing, result.Text, Nothing)
End Using
End FunctionIronBarcode Yaklaşımı:
using IronBarCode;
public string ReadBarcodeValue(string imagePath)
{
var results = BarcodeReader.Read(imagePath);
return results.FirstOrDefault()?.Value;
}Imports IronBarCode
Public Function ReadBarcodeValue(imagePath As String) As String
Dim results = BarcodeReader.Read(imagePath)
Return results.FirstOrDefault()?.Value
End FunctionIronBarcode sürümü, Bitmap yapısını ve tek bir nesne üzerindeki null-koşullu deseni kaldırır. BarcodeReader.Read() bir koleksiyon döndürür — hiçbir şey bulunamadığında boş bir koleksiyon — bu nedenle .FirstOrDefault(), eski tek sonuçlu dönüş değeri üzerinde null kontrolünü değiştirir.
Sonuçlardan Format Bilgisine Erişim
MessagingToolkit.Barcode tespit edilen formatı result.BarcodeFormat üzerinden açığa çıkardı.IronBarcode bunu result.Format üzerinden açığa çıkarır. Her iki form da sonuç nesnesi üzerinde enum değerleridir, ancak farklı enum türü adlarına sahiptir.
MessagingToolkit.Barcode Yaklaşımı:
using MessagingToolkit.Barcode;
using System.Drawing;
var decoder = new BarcodeDecoder();
using (var bitmap = new Bitmap("barcode.png"))
{
var result = decoder.Decode(bitmap);
if (result != null)
{
Console.WriteLine($"Value: {result.Text}");
Console.WriteLine($"Format: {result.BarcodeFormat}");
}
}Imports MessagingToolkit.Barcode
Imports System.Drawing
Dim decoder As New BarcodeDecoder()
Using bitmap As New Bitmap("barcode.png")
Dim result = decoder.Decode(bitmap)
If result IsNot Nothing Then
Console.WriteLine($"Value: {result.Text}")
Console.WriteLine($"Format: {result.BarcodeFormat}")
End If
End UsingIronBarcode Yaklaşımı:
using IronBarCode;
var results = BarcodeReader.Read("barcode.png");
var first = results.FirstOrDefault();
if (first != null)
{
Console.WriteLine($"Value: {first.Value}");
Console.WriteLine($"Format: {first.Format}");
}Imports IronBarCode
Dim results = BarcodeReader.Read("barcode.png")
Dim first = results.FirstOrDefault()
If first IsNot Nothing Then
Console.WriteLine($"Value: {first.Value}")
Console.WriteLine($"Format: {first.Format}")
End IfÖzellik adı .Text'den .Value'e ve .BarcodeFormat'den .Format'ya değişir. Enum türü BarcodeFormat (MessagingToolkit) 'den BarcodeEncoding (IronBarcode) 'e değişir, fakat .Format.ToString() görüntüleme veya kaydetme amaçları için karşılaştırılabilir bir insan okunabilir dizi üretir.
Barkod Oluşturma
MessagingToolkit.Barcode, bir özellik seti formatı ile bir örneğe dayalı BarcodeEncoder kullandıktan sonra .Encode() çağırmadan önce kullandı. IronBarcode, kodlama türünü bir parametre olarak alan statik bir yöntem kullanır.
MessagingToolkit.Barcode Yaklaşımı:
using MessagingToolkit.Barcode;
public void GenerateQrCode(string data, string outputPath)
{
var encoder = new BarcodeEncoder();
encoder.Format = BarcodeFormat.QrCode;
var bitmap = encoder.Encode(data);
bitmap.Save(outputPath);
}Imports MessagingToolkit.Barcode
Public Sub GenerateQrCode(data As String, outputPath As String)
Dim encoder As New BarcodeEncoder()
encoder.Format = BarcodeFormat.QrCode
Dim bitmap = encoder.Encode(data)
bitmap.Save(outputPath)
End SubIronBarcode Yaklaşımı:
using IronBarCode;
public void GenerateQrCode(string data, string outputPath)
{
BarcodeWriter.CreateBarcode(data, BarcodeEncoding.QRCode)
.SaveAsPng(outputPath);
}Imports IronBarCode
Public Sub GenerateQrCode(data As String, outputPath As String)
BarcodeWriter.CreateBarcode(data, BarcodeEncoding.QRCode) _
.SaveAsPng(outputPath)
End SubKod 128 ve diğer 1D barkodlarını oluşturmak için, farklı bir kodlama sabitine sahip aynı statik desen uygulanır:
// Code 128
BarcodeWriter.CreateBarcode("PRODUCT-12345", BarcodeEncoding.Code128)
.SaveAsPng("code128.png");
// EAN-13
BarcodeWriter.CreateBarcode("5901234123457", BarcodeEncoding.EAN13)
.SaveAsPng("ean13.png");' Code 128
BarcodeWriter.CreateBarcode("PRODUCT-12345", BarcodeEncoding.Code128) _
.SaveAsPng("code128.png")
' EAN-13
BarcodeWriter.CreateBarcode("5901234123457", BarcodeEncoding.EAN13) _
.SaveAsPng("ean13.png")Hedef Çerçeveyi Güncelleme
MessagingToolkit.Barcode kaldırıldıktan ve tüm referanslar değiştirildikten sonra, proje dosyası hedef çerçevesi güncellenebilir. Bu değişiklik, eski bağımlılık nedeniyle engellendi ve kaldırma işleminden sonra mümkün hale gelir:
MessagingToolkit.Barcode Yaklaşımı (proje dosyası):
<PropertyGroup>
<TargetFramework>net472</TargetFramework>
</PropertyGroup>
IronBarcode Yaklaşımı (proje dosyası):
<PropertyGroup>
<TargetFramework>net8.0</TargetFramework>
</PropertyGroup>
IronBarcode, .NET Framework 4.6.2'den .NET 9'a kadar desteklediğinden, çerçeve yükseltimi tamamlanmadan önce kurulabilir. Bu, geçişin etaplanmasını sağlar: önce MessagingToolkit.Barcode'ın yanında IronBarcode'u kurun, tüm kullanımları değiştirin, yeni kodu doğrulayın, eski paketi kaldırın ve ardından çerçeve hedefini son adım olarak değiştirin.
PDF Belgelerinden Barkod Okuma
MessagingToolkit.Barcode'da PDF desteği yoktu. Bir PDF'den barkod okumak, her bir sayfadan ayrı bir kütüphane aracılığıyla görüntüleri çıkararak barkod çözücüye çağrılmayı gerektirirdi. IronBarcode, görüntüler için kullanılan aynı yöntemle doğrudan PDF dosyalarını okur.
MessagingToolkit.Barcode Yaklaşımı:
// Not supported — required external PDF page extraction before decode
//Hayırequivalent exists in MessagingToolkit.Barcode
IronBarcode Yaklaşımı:
using IronBarCode;
// Read all barcodes from every page of a PDF document
var results = BarcodeReader.Read("invoice.pdf");
foreach (var barcode in results)
{
Console.WriteLine($"Page {barcode.PageNumber}: {barcode.Value} ({barcode.Format})");
}Imports IronBarCode
' Read all barcodes from every page of a PDF document
Dim results = BarcodeReader.Read("invoice.pdf")
For Each barcode In results
Console.WriteLine($"Page {barcode.PageNumber}: {barcode.Value} ({barcode.Format})")
NextTarama belgeleri, nakliye fişleri veya çok sayfalı fatura gruplarını işleyen uygulamalar, geçişin bir parçası olarak herhangi bir ek kütüphane veya yapılandırma olmadan bu yeteneği kazanır.
MessagingToolkit.Barcode API'den IronBarcode Haritalama Referansı
| MessagingToolkit.Barcode | IronBarcode | Notlar |
|---|---|---|
new BarcodeDecoder() | Statik — BarcodeReader.Read() | Örnek gereksinimi yok |
barcodeReader.Decode(bitmap) | BarcodeReader.Read(path) | Yol, akış, bayt dizisi veya PDF kabul eder |
result.Text | result.Value | Özellik yeniden adlandırıldı |
result.BarcodeFormat | result.Format | Özellik yeniden adlandırıldı; enum türü BarcodeEncoding |
new BarcodeEncoder() | Statik — BarcodeWriter.CreateBarcode() | Örnek gereksinimi yok |
barcodeWriter.Format = BarcodeFormat.QrCode | BarcodeEncoding.QRCode (parametre) | Format, özellik değil, parametre olarak geçilir |
barcodeWriter.Encode("data") Bitmap döndürür | BarcodeWriter.CreateBarcode("data", BarcodeEncoding.QRCode) | Akıcı sonuç döner, Bitmap değil |
bitmap.Save("path.png") | .SaveAsPng("path.png") | Sonuç nesnesinde akıcı yöntem |
BarcodeFormat.QrCode | BarcodeEncoding.QRCode | Enum ad alanı ve değer adı değiştirildi |
BarcodeFormat.Code128 | BarcodeEncoding.Code128 | Aynı sembolik ad, farklı tanım alanı |
BarcodeFormat.Ean13 | BarcodeEncoding.EAN13 | Büyük harf kullanımı farklı |
| Bulunmazsa null döner | Boş koleksiyon döner | .Any() veya .FirstOrDefault() kontrol et |
| Sadece Bitmap girişi | Yol, akış, bayt dizisi, PDF | System.Drawing gerekmiyor |
| .NET Framework 3.5–4.5yalnızca | .NET 4.6.2'dan .NET 9'a kadar | Tam modern .NET desteği |
Yaygın Göç Sorunları ve Çözümleri
Problem 1: Paket Güncellemesinden Sonra Tanım Alanı Bulunamadı
Sorun: MessagingToolkit.Barcode kaldırıldıktan ve IronBarcode eklendikten sonra derleme CS0246: The type or namespace name 'BarcodeDecoder' could not be found ile başarısız oluyor.
Çözüm: Eski namespace using MessagingToolkit.Barcode; her dosyada eski kütüphaneye referans veriliyorsa using IronBarCode; ile (C'nin büyük olduğunu unutmayın) ile değiştirilmelidir. Eski tanım alanı dizisini proje genelinde aramak, etkilenmiş tüm dosyaları bulacaktır:
grep -r "using MessagingToolkit.Barcode" --include="*.cs" .
grep -r "BarcodeDecoder\|BarcodeEncoder" --include="*.cs" .
Problem 2: Tanım Alanları Arasında BarcodeReader Belirsizliği
Sorun: Bir proje sırasında hem MessagingToolkit.Barcode hem de IronBarcode'u referans alıyorsa, BarcodeReader iki namespace arasında belirsiz olabilir.
Çözüm: Geçiş dönemi süresince referansı açıkça nitelendirin:
// Use the fully qualified name while both packages are installed
var results = IronBarCode.BarcodeReader.Read("barcode.png");Imports IronBarCode
Dim results = BarcodeReader.Read("barcode.png")MessagingToolkit.Barcode'a yapılan tüm referanslar değiştirildiğinde ve eski paket kaldırıldığında, belirteç düşürülebilir ve using IronBarCode; direktif yeterlidir.
Problem 3: Paket Kaldırıldıktan Sonra Hedef Çerçeve Hala net472 Olarak Ayarlanmış
Sorun: MessagingToolkit.Barcode kaldırıldıktan ve IronBarcode yüklendikten sonra proje dosyası hala net472 hedefliyor. Derleme uyarıları modern .NET API'lerinin mevcut olmadığını gösteriyor.
Çözüm: Bağımlılık kaldırıldıktan sonra .csproj dosyasındaki <TargetFramework> öğesini güncelleyin. IronBarcode, hem net472 (.NET Framework 4.6.2 uyumluluğu yoluyla) hem de modern hedefleri destekler. net8.0'e geçiş yapmak, projede başka bir miras bağımlılığı kalmadığını doğrulamayı gerektirir:
<!-- Update this line in the .csproj file -->
<TargetFramework>net8.0</TargetFramework>
Değişiklikten sonra herhangi bir kalan miras bağımlılığını belirlemek için dotnet build çalıştırın.
MessagingToolkit.Barcode Geçiş Kontrol Listesi
Geçiş Öncesi Görevler
MessagingToolkit.Barcode'a referans veren tüm yerleri belirlemek için kod tabanında denetim yapın:
# Find all using statements
grep -r "using MessagingToolkit.Barcode" --include="*.cs" .
# Find decoder instantiations
grep -r "BarcodeDecoder" --include="*.cs" .
# Find encoder instantiations
grep -r "BarcodeEncoder" --include="*.cs" .
# Find decode calls
grep -r "\.Decode(" --include="*.cs" .
# Find encode calls
grep -r "\.Encode(" --include="*.cs" .
# Find project file references
grep -r "MessagingToolkit" --include="*.csproj" .
grep -r "MessagingToolkit" --include="packages.config" .
Değişiklik gerektiren tüm dosyaları belgelendirin. System.Drawing.Bitmap'un kod çözme için girdi olarak kullanıldığı yerleri not edin - bu kullanımların da güncellenmesi gerekecektir.
Kod Güncelleme Görevleri
- Paketi kaldırmak için
dotnet remove package MessagingToolkit.Barcodeçalıştırın - IronBarcode'u kurmak için
dotnet add package IronBarcodeçalıştırın - Uygulama başlangıcında
IronBarCode.License.LicenseKey = "YOUR-LICENSE-KEY";ekleyin - Tüm
using MessagingToolkit.Barcode;ifadeleriniusing IronBarCode;ile değiştirin - Tüm
new BarcodeDecoder()desenleriniBarcodeReader.Read()statik çağrılarla değiştirin - Tüm
new BarcodeEncoder()desenleriniBarcodeWriter.CreateBarcode()statik çağrılarla değiştirin - Tüm
result.Textreferanslarınıresult.Valueile güncelleyin - Tüm
result.BarcodeFormatreferanslarınıresult.Formatile güncelleyin - Tüm
barcodeWriter.Format = BarcodeFormat.Xdesenlerini kodlamayı parametre olarak geçirmek üzere güncelleyin bitmap.Save()'u.SaveAsPng()ile veya IronBarcode sonucundaki uygun çıktı yöntemiyle değiştirin- Yalnızca MessagingToolkit için Bitmap girişi için kullanılan
using System.Drawing;ithalatlarını çıkarın - Bir çerçeve yükseltmesi göçün bir parçasıysa proje dosyasındaki
<TargetFramework>güncelleyin
Geçiş Sonrası Testler
dotnet build'nin sıfır hata ve MessagingToolkit'e sıfır referansla tamamlandığını doğrulayıngrep -r "MessagingToolkit" --include="*.cs" .çalıştırın ve sıfır sonuç doğrulayın- Gerçek barkod görüntüleriyle barkod okuma test edin ve
.Valuebeklenen metni döndüğünü doğrulayın - Çoklu barkod görüntüleri ile barkod okuma testi yapın ve koleksiyondaki tüm barkodların döndürüldüğünü doğrulayın
- Barkod oluşturmayı test edin ve çıkış dosyasının beklenen format ve kodlama ile eşleştiğini doğrulayın
- PDF okuma kullanılıyorsa, temsili bir PDF belge ile test edin ve sayfa numarası meta verisinin doğru olduğunu doğrulayın
- Hedef çerçeve değiştirildi ise, yeni çalışma zamanında tüm test takımını çalıştırarak başka uyumluluk sorunları olup olmadığını belirleyin
IronBarcode'a Geçmenin Temel Faydaları
Engelsiz Çerçeve Güncellemeleri: MessagingToolkit.Barcode kaldırıldıktan sonra, proje dosyası hedef çerçevesi herhangi bir modern .NET sürümüne güncellenebilir. Bu tek değişiklik, .NET 8 performans iyileştirmelerine, C# 12 dil özelliklerine, doğal async desenlerine ve .NET Standard 2.0 veya üstünü gerektiren NuGet paketlerinin tam ekosistemine erişimi sağlar.
Çapraz platform dağıtımı: IronBarcode'un dahili görüntü hattı, .NET 6 ve sonrası Windows'a özel olan System.Drawing'a bağlı değildir. Göçten sonra uygulamalar, barkod kütüphanesinden kaynaklanan PlatformNotSupportedException ile karşılaşmadan Linux sunucularına, macOS geliştirme ortamlarına, Docker konteynerlerine ve bulut fonksiyon çalışma zamanlarına dağıtılabilir.
Çözülmüş Uyumluluk Bulguları: IronBarcode, belgelenmiş bir bakım süreci aracılığıyla düzenli güvenlik güncellemeleri alır. Kullanılmayan bir bağımlılığı, üçüncü taraf kütüphanelerin etkin yama yönetimini gerektiren PCI DSS, HIPAA, SOC 2 ve benzeri çerçeveler altındaki denetim bulgularını çözen, etkin bir şekilde bakımı yapılan bir bağımlılık ile değiştirmek.
Yerel PDF Destek: BarcodeReader.Read(), barkod çözümleme işlemi öncesinde ayrı bir PDF görüntü çıkarma adımına ihtiyaç duymadan doğrudan PDF dosya yollarını kabul eder. Taranmış belgeleri veya fatura yığınlarını işleyen uygulamalar, bu yetenekten yeni kitaplıklar veya işlem hatları aşamaları eklemeden yararlanır.
Genişletilmiş Çıktı Seçenekleri: Oluşturulan barkodlar, BarcodeWriter.CreateBarcode() tarafından döndürülen akıcı sonuç nesnesi aracılığıyla PNG, JPEG, SVG, PDF veya base64 kodlu dizeler olarak mevcuttur. Bu, MessagingToolkit.Barcode'dan System.Drawing.Bitmap dönüş türünün yerini alır, Windows'a özel çıktı kısıtlamasını kaldırır ve doğrudan web yanıtlarına veya veritabanı depolamasına yerleştirilmesine olanak tanır.

Curtis Chau, Bilgisayar Bilimleri alanında Lisans Derecesine (Carleton Üniversitesi) sahip ve Node.js, TypeScript, JavaScript ve React konularında uzmanlaşmış ön uç geliştirmeyle ilgileniyor. Sezgisel ve estetik açıdan hoş kullanıcı arayüzleri oluşturma tutkunu, Curtis modern çerçevelerle çalışmayı ve iyi yapılandırılmış, görsel olarak çekici kılavuzlar oluşturmayı seviyor.