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

BarcodeScanning.Native.Maui vs IronBarcode: Camera Control vs Full Barcode SDK

Curtis Chau
Curtis Chau
Updated: 26 Nisan 2026

BarcodeScanning.Native.Maui, MAUI uygulamalarına yönelik bir kamera eklentisidir. Uygulamanız yüklenen dosyaları işler veya PDF'lerden barkodları okursa, bu kullanım durumu için tasarlanmamıştır. Paket kendini ".NET MAUI için barcode tarama kütüphanesi" olarak tanımlar ve uygulamada barcode canlı kamera karesine girdiğinde bir olayı tetikleyen bir CameraView kontrolüdür. Bu, tam bir özellik kümesidir. Bu karşılaştırma, ekiplerin her aracın nereye uyduğunu anlamalarına yardımcı olan bir kamera kontrol kütüphanesi ile tam özellikli bir barkod SDK'sı arasındaki mimari farkı incelemektedir.

BarcodeScanning.MAUI'yi Anlamak

BarcodeScanning.Native.Maui, iOS/macOS (Apple's Vision çerçevesi), Android (Google ML Kit) ve Windows'ta (ZXingCpp, sürüm 3.0.1'de eklendi) doğal kamera barcode tespit API'lerini bir MAUI CameraView kontrolüne sarar. Bir geliştirici, kontrolü XAML sayfasına yerleştirir, bir olay işleyicisi bağlar ve kütüphane, canlı kamera beslemesinde bir barkod algılandığında bu olayı tetikler. Tüm etkileşim modeli kamera-için, olay-dışıdır — başka bir yol yoktur.

Kütüphane açık kaynak kodludur ve MIT lisansı altında ücretsizdir. Tasarım hedefi dar ve açıktır: MAUI uygulamaları için minimum mümkün API yüzeyi ile canlı kamera barkod algılama sağlamak. Bu hedefi kendi kod çözümleme motorunu uygulamak yerine platform başına yerel motorlara delegasyon yoluyla başarır.

BarcodeScanning.Native.Maui'nin ana mimari özellikleri:

  • Sadece Kamera Girişi: Kütüphane sadece canlı kamera çerçevelerini kabul eder. Genel API'de hiç ReadFromFile(), ReadFromBytes(), ReadFromStream() ve ReadFromPdf() metodu yok.
  • Yalnızca MAUI Hedefler: Kütüphane MAUI hedeflerini destekler — iOS, Android, Windows (3.0.1'den beri, ZXingCpp ile), ve macOS Catalyst. MAUI projeleri dışında kullanılamaz (ASP.NET, konsol, WPF veya WinForms kullanılmaz).
  • Üç Farklı Motor: iOS/macOS'ta Apple Vision, Android'de Google ML Kit ve Windows'ta ZXingCpp. Semvol kapsama alanı ve kod çözümleme davranışı, üç motor arasında değişiklik gösterir.
  • Üretim Yeteneği Yok: BarcodeScanning.Native.Maui kamera çerçevelerinden barkodları okur. Herhangi bir formatta barkod üretemez.
  • iOS'da UPC-A Özelliği: Apple'ın Vision çerçevesi, UPC-A barkodları için 13 rakam döndürebilir (EAN-13 kodlamasını karşılamak için başı 0 ekleyerek). Kütüphane bu ham değeri geçirir ve uygulamalar gerektiği gibi normalleştirir.
  • iOS/Android'deki PDF417 Güvenilirliği: Kütüphanesinin GitHub sorun izleyicisi, PDF417 taramanın "çok problemli — çoğu tarama gerçekleşmez" olarak tanımlar, bu, nakliye etiketleri, ehliyetler ve biniş kartları için önemlidir.
  • Minimal Genel Yüzey: Genel API, CameraView, OnDetectionFinished, OnDetectionFinishedEventArg ve BarcodeResult'den oluşur ve DisplayValue ve BarcodeFormat ile birlikte gelir. Uygulama kodunun etkileşimde bulunduğu bütünlük budur.
  • MIT Lisansı, Ücret Yok: Kütüphane lisans ücreti olmaksızın ücretsiz kullanılabilir.

Canlı Kamera Tarama Deseni

Tüm BarcodeScanning.Native.Maui API deseni, bir XAML kontrolü ile eşleşen bir C# olay işleyicisidir:

<!-- BarcodeScanning.Native.Maui: add the CameraView to a page -->
<scanner:CameraView x:Name="CameraView"
                    OnDetectionFinished="OnBarcodeDetected"
                    CameraEnabled="True"
                    BarcodeFormats="All" />
XML
private void OnBarcodeDetected(object sender, OnDetectionFinishedEventArg e)
{
    var barcode = e.BarcodeResults.FirstOrDefault();
    if (barcode != null)
        ResultLabel.Text = barcode.DisplayValue;
}

Bu kontrol, kullanıcıların MAUI sayfasına gömülü gerçek zamanlı bir vizör görüntülemesini sağlar. Barkod algılama, kamera akışı aktifken sürekli olarak tetiklenir. UX, "işaretle ve tara" birincil etkileşim olduğu tüketici uygulamaları için uygun. Kısıtlama, kitaplığın desteklediği tek etkileşimin bu olmasıdır — MAUI bağlamında canlı kamera algılamanın ötesine geçen gereksinimler kapsamı dışında kalır.

IronBarcode Anlama

IronBarcode, veri girdileri üzerinde çalışan, .NET için ticari bir barkod okuma ve oluşturma kütüphanesidir. Görüntü dosyalarından, bayt dizilerinden, akışlardan ve PDF belgelerinden barkodları okur. MAUI'de, sistem kamerası ile MediaPicker üzerinden entegredir - uygulamaların fotoğraf seçimi için kullanılan aynı standart MAUI API'si - bir fotoğraf yakalayıp ve ardından sonuç olarak oluşan görüntüyü statik bir veri girişi olarak işler.

IronBarcode, platforma özgü doğal API'lere yönlendirmek yerine kendi yönetilen barcode kod çözme motorunu uygular. Bu, aynı BarcodeReader.Read() çağrısının desteklenen .NET hedeflerinde — Windows, Linux, macOS, ASP.NET ve arka plan sunucu proseslerinde — ve ayrıca bir görüntü yakalanıp okuyucuya iletildiğinde MAUI mobil hedeflerinde tutarlı davranacağı anlamına gelir. Kütüphane ayrıca BarcodeWriter ve QRCodeWriter üzerinden tam bir barcode oluşturma API'si sağlar.

IronBarcode'un ana özellikleri:

  • Statik Dosya Tabanlı API: BarcodeReader.Read(), dosya yolu, bayt dizisi, akış ya da PDF — herhangi bir statik veri kaynağını kabul eder.
  • Geniş Platform Kapsama: Windows, Linux ve macOS (ARM dahil) desteklenir, .NET Framework 4.6.2+, .NET Core 3.1+, ve .NET 5/6/7/8 yanında. Aynı yönetilen kod yolu, platforma özgü dallanmalar olmadan tüm desteklenen hedeflerde çalışır.
  • Barcode Oluşturma: BarcodeWriter.CreateBarcode() ve QRCodeWriter.CreateQrCode() Code128, QR, DataMatrix ve diğer formatları görüntü dosyası ya da bayt dizisi olarak üretir.
  • PDF Desteği: PDF belgelerine gömülü barkodlar, ara bir görüntü çıkarma adımı olmaksızın doğrudan okunur.
  • Tutarlı UPC-A Kod Çözümü: Yönetilen motoru aracılığıyla standart 12 haneli UPC-A değerini döndürür.
  • Ticari Lisanslama: Lite $999, Plus $1,499, Professional $2,399, Unlimited $4,799 — bir yıllık destekle süresiz lisanslar.
  • Sunucu Tarafı Dağıtım: Fiziksel kamera bağımlılığı olmadan ASP.NET, Azure Functions, Docker konteynerleri ve AWS Lambda üzerinde çalışır.

Özellik Karşılaştırması

Aşağıdaki tablo, BarcodeScanning.Native.Maui ve IronBarcode arasındaki temel farklılıkları vurgular:

ÖzellikBarcodeScanning.MAUIIronBarcode
Birincil AmaçCanlı kamera barkod algılamaHerhangi bir veri kaynağından barkod okuma ve oluşturma
Giriş KaynaklarıYalnızca canlı kamera çerçeveleriDosyalar, bayt dizileri, akışlar, PDF'ler
Platform DesteğiYalnızca MAUI — iOS, Android, Windows (ZXingCpp üzerinden), macOS CatalystWindows, Linux, macOS, ASP.NET, konsol, WPF, artı MAUI yakalanan görüntüler üzerinden
Tanıma MotoruÜç motor (Apple Vision / Google ML Kit / ZXingCpp)Tüm hedeflere tek yönetilen motor
Barkod ÜretimiHayırEvet — BarcodeWriter + QRCodeWriter
Lisans ModeliMIT (ücretsiz, açık kaynak)Ticari — Lite $999'dan Unlimited $4,799'a
Sunucu-Tarafı / ASP.NETHayırEvet

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

ÖzellikBarcodeScanning.MAUIIronBarcode
Okuma
Canlı kamera çerçevesi okumaEvet — CameraView kontrolüHayır (Medya Seçici'yi kullanarak yakalayın, sonra okuyun)
Uygulama içi kamera vizörEvet — gerçek zamanlı sürekliHayır — Medya Seçici aracılığıyla sistem kamera UI'yi kullanır
Görüntü dosyasından okuHayırEvet — BarcodeReader.Read(path)
Bayt dizisinden okuHayırEvet — BarcodeReader.Read(bytes)
Akıştan okuHayırEvet — BarcodeReader.Read(stream)
PDF'den okuHayırEvet — BarcodeReader.Read(pdf)
Çoklu barkod algılamaEvet (e.BarcodeResults aracılığıyla kare başına birden fazla)Evet (ExpectMultipleBarcodes seçeneği)
Okuma hız kontrolüNoneReadingSpeed.Faster / Balanced / Detailed / ExtremeDetail
iOS üzerinde UPC-A13 hane döndürebilir; applications normalizeStandart 12 haneli UPC-A döndürür
PDF417 güvenilirliğiiOS/Android motorlarında belgelenmiş sorunlarDesteklenen
Üretim
Barkod oluşturmaHayırEvet — BarcodeWriter.CreateBarcode()
QR kod üretimiHayırEvet — QRCodeWriter.CreateQrCode()
PNG / bayt dizisi olarak çıktıHayırEvet
Platform
iOS MAUIEvet (Apple Vision)Evet (yakalanan görüntü aracılığıyla)
Android MAUIEvet (Google ML Kit)Evet (yakalanan görüntü aracılığıyla)
Windows MAUIEvet (ZXingCpp, 3.0.1'den beri)Evet
macOS MAUIEvet(Mac Catalyst, Apple Vision)Evet
ASP.NET / sunucu-tarafıHayırEvet
Docker / Azure / AWS LambdaHayırEvet
.NET Framework desteğiHayır (sadece MAUI)Evet — .NET Framework 4.6.2+
Lisanslama
Lisans türüMIT (açık kaynak)Ticari süresiz
MaliyetÜcretsizLite $999, Plus $1,499, Professional $2,399, Unlimited $4,799
Değerlendirme düzeyiYokÜcretsiz deneme mevcut

Mimari: Kamera Kontrolü vs Dosya İşleme API'si

Bu iki kütüphane arasındaki en temel fark girdi modelidir. BarcodeScanning.Native.Maui sürekli bir kamera akışı etrafında tasarlanmıştır; IronBarcode, ayrık veri girdileri etrafında tasarlanmıştır. Bunlar aynı fikrin rekabet eden uygulamaları değil — farklı kullanım durumları için farklı mimari seçimlerdir.

BarcodeScanning.MAUI Yaklaşımı

BarcodeScanning.Native.Maui, her platformda yerel kamera algılama hattını sarar. Android'de, ML Kit çerçeveleri işler; iOS ve macOS'ta, Apple'ın Vision çerçevesi çerçeveleri işler; Windows'da, ZXingCpp çerçeveleri işler. Kütüphane bunu bir MAUI CameraView kontrolü ve bir OnDetectionFinished olayı olarak sunar. Uygulama kodu asla doğrudan görüntü baytlarını işlemez — yalnızca olaydan çıkan algılanan barkod değerlerini işler.

private void OnBarcodeDetected(object sender, OnDetectionFinishedEventArg e)
{
    var barcode = e.BarcodeResults.FirstOrDefault();
    if (barcode != null)
        ResultLabel.Text = barcode.DisplayValue;
}

Bu tasarımın sonucu, başka bir giriş noktası olmadığıdır. Kamera isteğe bağlı değildir — kütüphanenin bildiği tek girdidir. Bir sunucu, bir dosya, bir PDF veya herhangi bir MAUI dışı host, kütüphaneye bir yolu yoktur.

IronBarcode Yaklaşımı

IronBarcode, görüntü verilerini BarcodeReader.Read() statik metodu üzerinden alır. Çağıran, veriyi — herhangi bir kaynaktan — sağlar ve kütüphane bunu kodlar. MAUI'de, veriler MediaPicker'dan gelir; bir sunucuda, bir form yüklemesinden gelir; bir masaüstü uygulamasında, bir dosya dialog'undan gelir.

//IronBarcode in MAUI: capture a photo, then read barcodes from it
// NuGet: dotnet add package IronBarcode
using IronBarCode;

private async void ScanBarcodeButton_Clicked(object sender, EventArgs e)
{
    var photo = await MediaPicker.CapturePhotoAsync();
    if (photo == null) return;

    using var stream = await photo.OpenReadAsync();
    using var ms = new MemoryStream();
    await stream.CopyToAsync(ms);

    var results = BarcodeReader.Read(ms.ToArray());
    foreach (var result in results)
        ResultLabel.Text = result.Value;
}
C#

Bu kod, bir görüntüyü yakalayabilen MAUI hedeflerinde aynı şekilde çalışır. Sunucu tarafı kullanım için, aynı BarcodeReader.Read() metodu, bir yüklenen dosyanın bayt dizisini ya da bir PDF yolunu kabul eder. IronBarcode dokümantasyonu tüm desteklenen giriş türlerini kapsar.

Platform Kapsamı ve Tanıma Motorları

Platform kapsamı, MAUI uygulamaları oluşturan ve aynı zamanda barkod mantığını MAUI dışı projelerle paylaşması gereken ekipler için önemlidir.

BarcodeScanning.MAUI Yaklaşımı

BarcodeScanning.Native.Maui, dört MAUI hedefine (iOS, Android, Windows 3.0.1 sonrası, ve macOS Catalyst) destek sağlar, fakat her hedef farklı bir tanıma motoru kullanır: iOS ve macOS için Apple Vision, Android için Google ML Kit ve Windows için ZXingCpp. Semboloji kapsamı ve kod çözme davranışları üç motor arasında farklılık gösterir, bu yüzden bir platformda güvenilir bir şekilde çözülen bir barkod, diğerinde farklı davranabilir. MAUI dışındaki — ASP.NET, konsol, WPF, WinForms, Blazor Server, Azure Functions — kütüphanenin bir uygulaması yoktur. Hem MAUI uygulamasında hem de bir arka uç hizmetinde barkod mantığına ihtiyacı olan ekipler, MAUI dışı kod için farklı bir kütüphane kullanmalıdır.

IronBarcode Yaklaşımı

IronBarcode'un BarcodeReader.Read() çağrısı, desteklenen her hedefte aynı yönetilen motoru kullanır, bu nedenle davranışı Windows, Linux, macOS, ASP.NET ve bir görüntü yakalayıp okuyucuya iletebilen herhangi bir MAUI hedefinde tutarlıdır. Hiçbir #if WINDOWS blokları, şartlı bağımlılık yüklemesi ve yer tutucu uygulamalara gerek yoktur. Dosya ve PDF girdileri için, desen de tutarlıdır:

using IronBarCode;

// Read barcodes from a file the user selected
var file = await FilePicker.PickAsync();
if (file != null)
{
    var results = BarcodeReader.Read(file.FullPath);
    foreach (var result in results)
        Console.WriteLine($"{result.Format}: {result.Value}");
}

// Read barcodes directly from a PDF — no image extraction step needed
var pdfResults = BarcodeReader.Read("shipment-manifest.pdf");

IronBarcode MAUI entegrasyon rehberi tüm MAUI hedefleri için tam kurulum talimatları sağlar.IronBarcode ayrıca, BarcodeScanning.Native.Maui'nin hiçbir yol sunmadığı ASP.NET, Docker, Azure Functions ve AWS Lambda ortamlarında sunucu-tarafı dağıtımı destekler.

Barkod Okuma Doğruluğu: UPC-A ve PDF417

BarcodeScanning.Native.Maui'deki iki format-specific davranış, üretim uygulamaları için dikkate değerdir.

BarcodeScanning.MAUI Yaklaşımı

iOS'ta, BarcodeScanning.Native.Maui'nin temel algılaması (Apple Vision), UPC-A barkodları için 13 hane döndürebilir. UPC-A 12 basamaklı bir formattır; fazladan baştaki sıfır EAN-13 kodlamasını eşleştirir. Kütüphane bu ham değeri geçirir ve uygulamalar gerektiği gibi normalleştirir. Veritabanına normalizasyon olmadan UPC-A değerlerini kaydeden uygulamalar, başta sıfır olan kayıtlar biriktirebilir.

Belgelenmiş geçici çözüm, formatı kontrol eder ve değeri kırpar:

// Normalize iOS UPC-A — strip the leading zero when present
private void OnBarcodeDetected(object sender, OnDetectionFinishedEventArg e)
{
    var barcode = e.BarcodeResults.FirstOrDefault();
    if (barcode == null) return;

    var value = barcode.DisplayValue;
    if (barcode.BarcodeFormat == BarcodeFormats.Upca && value.Length == 13)
        value = value.Substring(1);

    ProcessBarcode(value);
}

Format kontrolü, EAN-13 değerlerinin baştan 0 ile başlayanların yanlışlıkla kırpılmaması için gereklidir. PDF417, GitHub sorunları içinde, iOS/Android motorlarında 'çok problemli — çoğu tarama asla gerçekleşmez' olarak ayrı ayrı belgelenmiştir, bu da gönderi etiketleri, ehliyetler ve biniş kartları için alakalıdır.

IronBarcode Yaklaşımı

IronBarcode, yönetilen motoru aracılığıyla standart 12 haneli UPC-A değerini döndürür. PDF417, desteklenen bir formattır. Üretim tarafı da IronBarcode'un API'si aracılığıyla kullanılabilir:

using IronBarCode;

// Generate a QR code
QRCodeWriter.CreateQrCode("https://example.com", 500)
    .SaveAsPng("qr.png");

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

Barkod verisi doğruluğu stok sorgulamaları, satış noktası işlemleri veya tedarik zinciri entegrasyonlarını doğrudan etkilediğinde, IronBarcode'un tutarlı format işlemesi, platforma özgü normalizasyon ihtiyacını azaltır. IronBarcode barkod okuma dokümantasyonu format-spesifik davranışı ayrıntılı olarak ele alır.

API Eşleme Başvurusu

BarcodeScanning.Native.MauiIronBarcode
CameraView XAML kontrolüKamera kontrolü yok — yakalamak için MediaPicker.CapturePhotoAsync() kullanın
OnDetectionFinished olayıBarcodeReader.Read(imageBytes)
e.BarcodeResultsBarcodeReader.Read() dönüş değeri (IEnumerable)
e.BarcodeResults.FirstOrDefault()results.FirstOrDefault()
barcode.DisplayValueresult.Value
barcode.BarcodeFormatresult.Format
BarcodeFormats="All"Otomatik algılanmış — çok format için yapılandırma gerektirmez
CameraEnabled="True"MediaPicker.CapturePhotoAsync() çağrısı
Yalnızca MAUI (iOS, Android, Windows, macOS)MAUI (yakalanmış görüntü aracılığıyla) + ASP.NET, konsol, WPF, masaüstü, sunucu
Yalnızca kamera çerçeveleriDosyalar, bayt dizileri, akışlar, PDF'ler
Dosya/PDF API'si yokBarcodeReader.Read(path) — görüntü dosyalarını ve PDF'leri kabul eder
MAUI hedeflerinde üç motorTüm hedeflere tek yönetilen motor
Üretim API'si yokBarcodeWriter.CreateBarcode() + QRCodeWriter.CreateQrCode()

Ekipler BarcodeScanning.MAUI'den IronBarcode'a Geçmeyi Düşündüğünde

Platformlar Arası Motor Tutarlılığı Gereklilik Haline Geliyor

iOS, Android, Windows ve macOS'u hedefleyen MAUI uygulamaları, BarcodeScanning.Native.Maui kullandıklarında üç farklı tanıma motoru alır: Apple Vision (iOS/macOS), Google ML Kit (Android), ve ZXingCpp (Windows). Her motorun kendi semboloji kapsamı ve kod çözme davranışı vardır, bu nedenle aynı barkod platformlar arasında farklı çözülebilir — ve uygulamalar genellikle farkları gidermek için normalizasyon katmanları ekler. Bu bakım yükü artarsa veya QA platformlar arası gerilemeleri motor farklarına bağlı olarak bildirirse, ekipler bazen barkod katmanını her hedefte aynı şekilde davranan tek bir yönetilen motora göç ettirir.

Dosya Yükleme veya PDF İşleme Gereksinimleri Eklendiğinde

Mobil uygulamalar genellikle tek giriş yöntemi olarak canlı kamera taramasıyla başlar ve daha sonra yüklenmiş görüntüleri veya belgeleri kabul etmeye genişler. Kullanıcının galerisindeki bir fotoğraftan, e-posta yoluyla alınan bir görüntüden veya gönderi manifestleri veya biniş kartları içeren bir PDF'den barkod taraması yapması gerektiğinde, BarcodeScanning.Native.Maui bu girişler için bir kod yolu yoktur. Bu gereklilik sınırına ulaşan ekipler bir seçimle karşı karşıya: dosya ve PDF girişleri için BarcodeScanning.Native.Maui'nin yanına ikinci bir barkod kütüphanesi eklemek veya tüm giriş türlerini işleyen tek bir kütüphaneye göç etmek. Farklı API'ler ve sonuç türleri olan iki barkod paketini yönetmek, tek paket çözümünün kaçındığı uzun vadeli bir karmaşıklık ekler.

Sunucu-Tarafı Barkod İşleme Başlatıldı

Mobilde barkod tarayan uygulamalar genellikle bir sunucu-tarafı bileşeni geliştirir — barkodları doğrulayan bir ASP.NET API uç noktası, PDF'leri işleyen bir arka plan işi veya yüklenmiş belgelerden izleme numaralarını çıkaran bir bulut fonksiyonu. BarcodeScanning.Native.Maui, bir MAUI UI kontrol kütüphanesidir; Sunucu tarafında bir uygulaması yoktur. Hem mobilde hem de sunucuda aynı barkod okuma mantığına ihtiyaç duyan bir ekip, sunucu tarafı için farklı bir kütüphane kullanmalıdır. Sunucu-tarafı gereksinimi geldiğinde, ekipler sıklıkla, hem mobil hem de sunucuya hitap eden tek bir kütüphaneye toparlamanın, iki ayrı uygulamayı sürdürmekten daha tercih edilir olup olmadığını değerlendirirler.

UPC-A Veri Normalizasyonu Kaygı Haline Geliyor

iOS UPC-A 13 basamaklı davranışı her zaman geliştirme aşamasında fark edilmez. Geliştirme aşamasında taranan UPC-A barkodları doğru çalışıyor gibi görünebilir, ancak Apple'ın Vision çerçevesinden gelen öncül sıfır, normalizasyon eksikliğinde veritabanında görünebilir. İnventör kayıtlarında, satış noktası sistemlerinde veya tedarik zinciri entegrasyonlarında 13 haneli UPC-A değerleri keşfeden ekipler hem bir kod düzeltmesine hem de bir veri düzeltme adımına ihtiyaç duyabilir. Belgelenmiş normalizasyon yeni taramaları ele alır; tutarlı UPC-A çıkısı olan bir kütüphaneye geçmek bazen uzun vadeli bir çözüm olarak tercih edilir.

PDF417 Belge Taraması Gerekli Olduğunda

PDF417, Kuzey Amerika'da sevkiyat etiketleri, ehliyetler ve biniş kartlarında kullanılan barkod formatıdır. Bunlar, lojistik, kimlik doğrulama ve seyahat uygulamaları için yaygın tarama hedefleridir. BarcodeScanning.Native.Maui'nin GitHub sorun izleyici PDF417'yi 'çok problemli — çoğu tarama asla gerçekleşmez' olarak iOS/Android motorlarında belgeler. PDF417 güvenilirliğinin işlevsel bir gereklilik olduğu uygulamalar için, ekipler genellikle alternatif kütüphaneleri değerlendirir.

Genel Geçiş Dikkat Edilmesi Gereken Hususlar

Kamera Olayından Medya Seçici ve Statik Okuya Geçiş

Göçteki temel yapısal değişiklik, sürekli kamera olay deseninin yerine bir MediaPicker görüntü ile ardından BarcodeReader.Read() gelmesidir. OnDetectionFinished olay işleyicisi, CameraView XAML kontrolü ve scanner: XML ad alanı bildirimi kaldırılır. Yerine bir düğme MediaPicker.CapturePhotoAsync()'i tetikler ve sonuçta ortaya çıkan fotoğraf baytları BarcodeReader.Read()'ya iletilir. Bu, kullanıcı deneyimini canlı sürekli vizörden sistem kamera ekranına dönüştürür — çoğu iş uygulaması için uygundur.

İş Parçacığı Aktarma Değişiklikleri

BarcodeScanning.Native.Maui, OnDetectionFinished'i bir arka plan iş parçacığı üzerinde tetikler, bu nedenle UI öğelerini güncelleyen mevcut işleyicilerin tümü güncellemelerini MainThread.BeginInvokeOnMainThread() içinde sararlar.IronBarcode tarafından kullanılan MediaPicker + async deseni ile, await döndüğünde devam etme, çoğunlukla ana iş parçacığı olan çağıran bağlamda olur. Çoğu durumda, MainThread.BeginInvokeOnMainThread() sarmalayıcılar kaldırılabilir, olay işleyici kodunu basitleştirir.

UPC-A Normalizasyonunun Kaldırılması

BarcodeScanning.Native.Maui'nin iOS için UPC-A 13 haneli davranışını ele alan herhangi bir kod tabanı, BarcodeFormats.Upca kontrol eden ve önceden sıfırı çıkarmak için Substring(1) çağıran koda sahip olacaktır. Göçten sonra bu kod kaldırılmalıdır —IronBarcode standart 12 haneli değeri döndürür ve normalizasyon yerinde bırakılırsa geçerli UPC-A okumalarından ilk hane yanlışlıkla kaldırılır.

MAUI İzinleri

BarcodeScanning.Native.Maui, paket kurulumu sırasında Android ve iOS manifestlerine kamera izinleri ekler. IronBarcode, MediaPicker kullandığında, AndroidManifest.xml ve Info.plist'deki standart MAUI kamera izinleri gereklidir — herhangi bir MAUI uygulamasının MediaPicker.CapturePhotoAsync() için ihtiyaç duyduğu aynı izinler. Bu izinler, genellikle kamerayı herhangi bir amaç için kullanan MAUI projelerinde zaten mevcuttur.

Ek IronBarcode Yetenekleri

Bu karşılaştırmada ele alınan yeteneklerin ötesinde, IronBarcode, BarcodeScanning.Native.Maui'nin hiçbir düzeyde ele almadığı özellikler sunar:

  • Barkod Üretimi: Code128, QR, DataMatrix, PDF417 ve diğer formatları PNG, SVG veya bayt dizisi olarak üretin — MAUI UI, API yanıtlarında veya basılı etiketlerde kullanılabilir.
  • QR Kod Üretimi: Logo gömme, renk özelleştirme ve hata düzeltme seviyesini kontrol ederek stilize edilmiş QR kodları oluşturun.
  • Çoklu Barcode Okuma: ExpectMultipleBarcodes seçeneği, tek bir görüntüdeki tüm barcode'ları bir geçişte okur.
  • PDF Barkod Çıkartılması: PDF belgelerine gömülü barkodları doğrudan okuyun — ara görüntü dönüşümü gerekmez.
  • Sunucu-Tarafı Dağıtım: ASP.NET, Azure Functions, Docker ve AWS Lambda'da aynı barkod okuma ve üretim mantığını herhangi bir kamera bağımlılığı olmaksızın dağıtın.
  • Okuma Hızı Yapılandırması: ReadingSpeed.Faster, Balanced, Detailed ve ExtremeDetail ayarları, görüntü kalitesine bağlı olarak throughput ile doğruluk arasında ince ayar yapmayı sağlar.
  • Sunucu ve Masaüstü Yeniden Kullanımı: Aynı kütüphane ASP.NET, konsol, WPF ve WinForms projelerinde çalışır, bu nedenle barkod mantığı bir MAUI istemcisi ve bir arka uç hizmeti arasında ikinci bir paket olmadan paylaşılabilir.

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

IronBarcode, .NET 6, .NET 7 ve .NET 8'i, ayrıca .NET Framework 4.6.2 ve sonrasını destekler. Bu, modern .NET hedeflerinde çalıştığı gibi, henüz göç etmemiş eski sunucu ortamlarında da çalışacağı anlamına gelir. BarcodeScanning.Native.Maui, .NET Framework desteği ve sunucu tarafı dağıtım yolu olmayan bir sadece MAUI kütüphanesidir. Kod tabanı hem MAUI'yi hem de mevcut .NET Framework veya .NET Core sunucu uygulamalarını kapsayan ekipler için IronBarcode, tüm ortamlar arasında tutarlı bir API sağlar ve her çalışma zamanı bağlamı için ayrı bir barkod paketi gerektirmez.

Sonuç

BarcodeScanning.Native.Maui ve IronBarcode, farklı sorunları ele alır. BarcodeScanning.Native.Maui, otomatik barkod algılama ile MAUI hedeflerine gerçek zamanlı bir vizör sağlayan bir kamera kontrol kütüphanesidir ve tanımayı üç farklı platform motoruna devreder. IronBarcode, .NET hedefleri üzerinden tek bir yönetilen motor aracılığıyla herhangi bir kaynaktan statik görüntü verilerini işleyen bir barkod okuma ve oluşturma kütüphanesidir. Mimari fark — sürekli kamera yayını ve ayrık veri girişi — hangi kütüphanenin belirli gereksinim seti için uygun olduğunu belirler.

BarcodeScanning.Native.Maui, canlı uygulama içi kamera önizlemesi ile sürekli çerçeve algılamanın gerekli UX deseni olduğu bir MAUI uygulaması olduğunda ve gereksinimlerin dosya yüklemeleri, PDF işleme veya sunucu tarafı barkod işlemesini içermeyecek şekilde genişlemeyeceği durumda doğru tercihtir. Bu kapsam içinde ücretsizdir, minimaldir ve işlevseldir.

IronBarcode, barkod girdisinin, canlı kameraya ek olarak veya yerine, dosyalardan, PDF'lerden veya bayt dizilerinden geldiğinde, sunucu tarafı barkod işlemesi mimarinin bir parçası olduğunda veya okuma ile birlikte barkod oluşturmanın gerekli olduğu durumlarda doğru tercihtir. Ayrıca, platformlar arası tutarlı kod çözme davranışı veya PDF417 güvenilirliğinin üretim gereklilikleri olduğunu durumlarda da uygundur. Bu yetenekler için ticari lisans maliyeti, verilen ödündür.

Gereksinimleri şu anda BarcodeScanning.Native.Maui'nin kapsamına uyan ekipler için, kütüphane makul ve ekonomik bir tercih olur. Gereksinimleri büyümüş veya canlı kamera taramasının ötesine geçmesi beklenen ekipler için, IronBarcode'un girdii türleri, platformlar ve dağıtım hedefleri arasında tutarlı API'si pratik bir alternatiftir.

Curtis Chau
Teknik Yazar

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

...
Daha Fazla Oku

İlgili Makaleler

Key in blue circle

Ücretsiz 30 günlük Deneme Anahtarınızı anında edinin.

Your trial license will be sent to your email address

Herhangi bir sınırlama yoktur. %100 erişim. Kredi kartı gerekmez.

bullet_checkedKredi kartı veya hesap oluşturma gerektirmezHerhangi bir sınırlama yoktur. %100 erişim. Kredi kartı gerekmez.
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
Ücretsiz Canlı Demo rezervasyonu yapın
Booking Badge

Dünya Çapında Milyonlarca Mühendisin Güvendiği

Iron Software müşteri logoları
Bağımsız Danışmanlık Alın
Aşağıdaki formu doldurun veya sales@ironsoftware.com adresine e-posta gönderin
Bilgileriniz daima gizli kalacaktır.
Dünya Çapında Milyonlarca Mühendisin Güvendiği
Iron Software müşteri logoları
Ücretsiz 30 Günlük Deneme Anahtarınızı anında alın.
Kredi kartı veya hesap oluşturma gerektirmez