IronBarcode ile C# İçinde Okuma Hızını Nasıl Ayarlayabilirim?

This article was translated from English: Does it need improvement?
Translated
View the article in English

IronBarcode, C#'da barkod okurken işlem hızı ve doğruluk arasındaki dengeyi kontrol etmenizi sağlayan dört okuma hızı seçeneği (Faster, Balanced, Detailed, ExtremeDetail) sunar; bu seçenekler, C#'da BARCODE okurken işlem hızı ile doğruluk arasındaki dengeyi kontrol etmenizi sağlar. Balanced, çoğu uygulama için önerilen başlangıç noktasıdır.

Giriş

Barkod setlerini okurken doğruluk önemlidir, ancak kaynak tahsisi ve işleme verimliliği eşit derecede önemli hususlardır. Giriş imajlarının kalitesi, bir barkod okuyucunun bunları nasıl işlemesi gerektiğini belirler: net görüntüler için ön işleme atlanmalı mı yoksa bozulmuş barkodlar için doğruluğu artıran daha kaynak yoğun seçenekler kullanılmalı mı.

IronBarcode, barkod okuma sürecinin her yönünü kontrol etmenize izin veren esnekliği sağlar, işleme hızını ve doğruluk seviyesini seçmenize olanak tanır. Kararları giriş görüntülerinize ve mevcut kaynaklarınıza göre verebilirsiniz. Daha gelişmiş barkod okuma senaryoları için, çeşitli formatlar ve teknikler içeren kapsamlı barkod okuma eğitimi bölümümüzü keşfedin.

Bu makale, farklı senaryolar için en uygun okuma hızını seçme konusunda rehberlik eder. Okuma hızının sonuçları nasıl etkilediğini göstermek için QR kod örneklerini kullanacağız. QR kodlarıyla özellikle çalışıyorsanız, test örnekleri oluşturmak için C# QR Kod Üreticisi eğitimize göz atın.

Hızlı Başlangıç: Dengeli Hızda Bir Barkodu Okuyun

IronBarcode'un BarcodeReaderOptions özelliğini kullanarak taramanız için Speed seviyesini anında ayarlayın. Bu örnek, hızlı ve güvenilir sonuçlar elde etmek için Balanced ayarını kullanarak BARCODE'ları nasıl hızlı bir şekilde okuyabileceğinizi gösterir.

  1. IronBarcode aşağıdaki NuGet Paket Yöneticisi ile yükleyin

    PM > Install-Package BarCode
  2. Bu kod parçacığını kopyalayın ve çalıştırın.

    var results = IronBarCode.BarcodeReader.Read("path/to/image.png", new IronBarCode.BarcodeReaderOptions { Speed = IronBarCode.ReadingSpeed.Balanced });
  3. Canlı ortamınızda test için dağıtım yapın

    Ücretsiz deneme ile bugün projenizde IronBarcode kullanmaya başlayın

    arrow pointer


Farklı Okuma Hızı Seçenekleri Nelerdir?

IronBarcode dört ReadingSpeed seçeneği sunar: Faster, Balanced, Detailed ve ExtremeDetail. Kutuphane yeteneklerini göstermek için çoğunlukla bozulmuş barkod görüntüleri ve bazı net görüntüler içeren bir örnek set kullanarak her seçeneği inceleyeceğiz. Desteklenen formatların tam listesi için, desteklenen barkod formatları sayfamızı ziyaret edin.

Her seçenekle karşılaştırmak ve her okuma hızı için ideal senaryoları tanımlamak için işlem süresini ve bellek kullanımını gösterip bir .NET benchmark kütüphanesi kullanacağız. Benchmarking kodunu ve bozulmuş barkodların başarılı bir şekilde okunduğunu saymak için basit bir yöntemi göstereceğiz. Okuyucu seçeneklerini yapılandırma hakkında daha fazla bilgi için, barkod okuyucu ayarları örneğimize bakın.

Daha Hızlı Hız Seçeneğini Ne Zaman Kullanmalıyım?

Faster seçeneği, minimum kaynakla en hızlı BARCODE okuma özelliğini sunar, ancak doğruluğu düşürür. Bu süreç görüntü ön işlemesini atlar ve en iyi sonuçları giriş görüntüleri zaten keskin ve net olduğu zaman verir.

Bu örnekte, Speed özelliği ReadingSpeed.Faster olarak ayarlanır, bir BarCode dizini içe aktarılır ve bulunan BarCode'lar değerleri, türleri ve görüntü başına sayıları ile birlikte PRINT edilir. Çeşitli görüntü formatlardan barkod okuma işlemini daha iyi anlamak için, görüntülerden barkod okuma rehberimize bakın.

:path=/static-assets/barcode/content-code-examples/how-to/reading-speed-option-faster.cs
using IronBarCode;
using System;
using System.Diagnostics;
using System.IO;
using System.Linq;

var optionsFaster = new BarcodeReaderOptions
{
    Speed = ReadingSpeed.Faster
};

// Directory containing PDF files
string folderPath = @"YOUR_FILE_PATH";

// Get all PDF files in the directory
var pdfFiles = Directory.GetFiles(folderPath, "*.jpg");

int countFaster = 0;
var stopwatch = Stopwatch.StartNew();
foreach (var file in pdfFiles)
{
    // Read the barcode
    var results = BarcodeReader.Read(file, optionsFaster);

    if (results.Any())
    {
        Console.WriteLine($"Barcode(s) found in: {Path.GetFileName(file)}");
        foreach (var result in results)
        {
            Console.WriteLine($"  Value: {result.Value}, Type: {result.BarcodeType}");
            countFaster++;
        }
    }
    else
    {
        Console.WriteLine($"No barcode found in: {Path.GetFileName(file)}");
    }
}

stopwatch.Stop();

// Print number of images the barcode reader could decode
Console.WriteLine($"Faster could read = {countFaster} out of {pdfFiles.Length} in {stopwatch.ElapsedMilliseconds}ms");
Imports IronBarCode
Imports System
Imports System.Diagnostics
Imports System.IO
Imports System.Linq

Dim optionsFaster As New BarcodeReaderOptions With {
    .Speed = ReadingSpeed.Faster
}

' Directory containing PDF files
Dim folderPath As String = "YOUR_FILE_PATH"

' Get all PDF files in the directory
Dim pdfFiles = Directory.GetFiles(folderPath, "*.jpg")

Dim countFaster As Integer = 0
Dim stopwatch As Stopwatch = Stopwatch.StartNew()
For Each file In pdfFiles
    ' Read the barcode
    Dim results = BarcodeReader.Read(file, optionsFaster)

    If results.Any() Then
        Console.WriteLine($"Barcode(s) found in: {Path.GetFileName(file)}")
        For Each result In results
            Console.WriteLine($"  Value: {result.Value}, Type: {result.BarcodeType}")
            countFaster += 1
        Next
    Else
        Console.WriteLine($"No barcode found in: {Path.GetFileName(file)}")
    End If
Next

stopwatch.Stop()

' Print number of images the barcode reader could decode
Console.WriteLine($"Faster could read = {countFaster} out of {pdfFiles.Length} in {stopwatch.ElapsedMilliseconds}ms")
$vbLabelText   $csharpLabel

Faster seçeneği, 25 saniye içinde 430 BARCODE'dan 146'sını tespit ederek %33,95 doğruluk oranına ulaştı. Hızlı olmasına rağmen, bu yöntem yalnızca kaliteli görüntü koşullarından yararlanır. Tek bir görüntüde birden fazla barkod ile çalışırken, en uygun yapılandırma için birden fazla barkodu okuma rehberimize bakın.

Neden Dengeli Hız Önerilen Hız Seçeneğidir?

Balanced seçeneği, doğruluk ve okuma performansı arasında denge sağlar. IronBarcode, barkod alanını netleştirmek ve tespit etmeyi kolaylaştırmak için hafif görüntü işleme uygular. Bu ayar, hafif işlem genellikle doğru sonuçlar ürettiği için çoğu modern görüntü için önerilir.

Balanced'nin çıktı sonuçlarını nasıl etkilediğini göstermek için aynı görselleri kullanalım. Asenkron işlemler için, IronBarcode ile asenkron ve çok iş parçacıklı yapıda çalışma rehberimize göz atın.

:path=/static-assets/barcode/content-code-examples/how-to/reading-speed-option-balanced.cs
using IronBarCode;
using System;
using System.Diagnostics;
using System.IO;
using System.Linq;

var optionsFaster = new BarcodeReaderOptions
{
    Speed = ReadingSpeed.Balanced
};

// Directory containing PDF files
string folderPath = @"YOUR_FILE_PATH";

// Get all PDF files in the directory
var pdfFiles = Directory.GetFiles(folderPath, "*.jpg");

int countFaster = 0;
var stopwatch = Stopwatch.StartNew();
foreach (var file in pdfFiles)
{
    // Read the barcode
    var results = BarcodeReader.Read(file, optionsFaster);

    if (results.Any())
    {
        Console.WriteLine($"Barcode(s) found in: {Path.GetFileName(file)}");
        foreach (var result in results)
        {
            Console.WriteLine($"  Value: {result.Value}, Type: {result.BarcodeType}");
            countFaster++;
        }
    }
    else
    {
        Console.WriteLine($"No barcode found in: {Path.GetFileName(file)}");
    }
}

stopwatch.Stop();

// Print number of images the barcode reader could decode
Console.WriteLine($"Balanced could read = {countFaster} out of {pdfFiles.Length} in {stopwatch.ElapsedMilliseconds}ms");
Imports IronBarCode
Imports System
Imports System.Diagnostics
Imports System.IO
Imports System.Linq

Dim optionsFaster As New BarcodeReaderOptions With {
    .Speed = ReadingSpeed.Balanced
}

' Directory containing PDF files
Dim folderPath As String = "YOUR_FILE_PATH"

' Get all PDF files in the directory
Dim pdfFiles = Directory.GetFiles(folderPath, "*.jpg")

Dim countFaster As Integer = 0
Dim stopwatch As Stopwatch = Stopwatch.StartNew()
For Each file In pdfFiles
    ' Read the barcode
    Dim results = BarcodeReader.Read(file, optionsFaster)

    If results.Any() Then
        Console.WriteLine($"Barcode(s) found in: {Path.GetFileName(file)}")
        For Each result In results
            Console.WriteLine($"  Value: {result.Value}, Type: {result.BarcodeType}")
            countFaster += 1
        Next
    Else
        Console.WriteLine($"No barcode found in: {Path.GetFileName(file)}")
    End If
Next

stopwatch.Stop()

' Print number of images the barcode reader could decode
Console.WriteLine($"Balanced could read = {countFaster} out of {pdfFiles.Length} in {stopwatch.ElapsedMilliseconds}ms")
$vbLabelText   $csharpLabel

Balanced seçeneği, 43 saniye içinde 430 BARCODE'dan 237'sini tespit etti. Sadece çok az bir zaman artışıyla %55,11 doğruluk oranı sağlar; bu, Faster'ye göre önemli bir gelişmedir. Bu seçenek, hafıza ve hız arasında verimli bir dengeyi sağlar ve çoğu durum için ideal olup önerilen başlangıç noktasıdır. Bu dengeli yaklaşım, uygun görüntü ön işleme teknikleri ile özellikle iyi çalışır.

Detaylı Hız Seçeneğine Ne Zaman İhtiyacım Var?

Görüntüler çok bulanık veya bozuk olduğunda ve Balanced net sonuçlar veremediğinde, Detailed seçeneğini kullanın. Daha iyi tespit için barkod alanını netleştirmek ve dijital sesi azaltmak için orta düzeyde ön işleme uygular. Ağır şekilde bozulmuş görüntüler için, çeşitli ön işleme tekniklerini içeren görüntü düzeltme rehberimize danışın.

Detailed ayarını uygulayalım ve çıktıya etkisini gözlemleyelim.

:path=/static-assets/barcode/content-code-examples/how-to/reading-speed-option-detailed.cs
using IronBarCode;
using System;
using System.Diagnostics;
using System.IO;
using System.Linq;

var optionsFaster = new BarcodeReaderOptions
{
    Speed = ReadingSpeed.Detailed
};

// Directory containing PDF files
string folderPath = @"YOUR_FILE_PATH";

// Get all PDF files in the directory
var pdfFiles = Directory.GetFiles(folderPath, "*.jpg");

int countFaster = 0;
var stopwatch = Stopwatch.StartNew();
foreach (var file in pdfFiles)
{
    // Read the barcode
    var results = BarcodeReader.Read(file, optionsFaster);

    if (results.Any())
    {
        Console.WriteLine($"Barcode(s) found in: {Path.GetFileName(file)}");
        foreach (var result in results)
        {
            Console.WriteLine($"  Value: {result.Value}, Type: {result.BarcodeType}");
            countFaster++;
        }
    }
    else
    {
        Console.WriteLine($"No barcode found in: {Path.GetFileName(file)}");
    }
}

stopwatch.Stop();

// Print number of images the barcode reader could decode
Console.WriteLine($"Detailed could read = {countFaster} out of {pdfFiles.Length} in {stopwatch.ElapsedMilliseconds}ms");
Imports IronBarCode
Imports System
Imports System.Diagnostics
Imports System.IO
Imports System.Linq

Dim optionsFaster As New BarcodeReaderOptions With {
    .Speed = ReadingSpeed.Detailed
}

' Directory containing PDF files
Dim folderPath As String = "YOUR_FILE_PATH"

' Get all PDF files in the directory
Dim pdfFiles = Directory.GetFiles(folderPath, "*.jpg")

Dim countFaster As Integer = 0
Dim stopwatch As Stopwatch = Stopwatch.StartNew()
For Each file In pdfFiles
    ' Read the barcode
    Dim results = BarcodeReader.Read(file, optionsFaster)

    If results.Any() Then
        Console.WriteLine($"Barcode(s) found in: {Path.GetFileName(file)}")
        For Each result In results
            Console.WriteLine($"  Value: {result.Value}, Type: {result.BarcodeType}")
            countFaster += 1
        Next
    Else
        Console.WriteLine($"No barcode found in: {Path.GetFileName(file)}")
    End If
Next

stopwatch.Stop()

' Print number of images the barcode reader could decode
Console.WriteLine($"Detailed could read = {countFaster} out of {pdfFiles.Length} in {stopwatch.ElapsedMilliseconds}ms")
$vbLabelText   $csharpLabel

Detailed seçeneği, 5 dakika 30 saniye içinde 430 BARCODE'dan 237'sini tespit etti. Ağır şekilde bozulmuş barkodlar üzerindeki %55,11 başarı oranında doğruluğunu gösterir. Ancak, önemli ölçüde artan işlem süresi, bu seçeneği yalnızca bozulmuş barkod görüntüleri için ayırmanız gerektiği anlamına gelir. Kusurlu barkodlarla çalışırken, ek stratejiler için kusurlu barkod yönetimi örneğimize bakın.

Hangi Durumlar Aşırı Detay Hızını Gerektirir?

ExtremeDetail ayarı, BARCODE görüntülerine yoğun işleme uygular ve okuma performansını önemli ölçüde düşürür. Bu CPU yoğun seçeneği, içinde birçok bulanık ya da belirsiz barkod içeren tek bir giriş dosyasını taramak için en iyi şekilde çalışır. Diğer seçeneklerin istenen sonuçları üretemediği durumlarda son çare olarak kullanın. Yüksek hacimli işleme senaryoları için, sık sık sayfa başına birden fazla barkod içeren PDF dosyalarından barkod okuma'yı keşfedin.

ExtremeDetail ayarını uygulayarak etkisini gözlemleyelim.

:path=/static-assets/barcode/content-code-examples/how-to/reading-speed-option-extreme-detailed.cs
using IronBarCode;
using System;
using System.Diagnostics;
using System.IO;
using System.Linq;

var optionsFaster = new BarcodeReaderOptions
{
    Speed = ReadingSpeed.ExtremeDetail
};

// Directory containing PDF files
string folderPath = @"YOUR_FILE_PATH";

// Get all PDF files in the directory
var pdfFiles = Directory.GetFiles(folderPath, "*.jpg");

int countFaster = 0;
var stopwatch = Stopwatch.StartNew();
foreach (var file in pdfFiles)
{
    // Read the barcode
    var results = BarcodeReader.Read(file, optionsFaster);

    if (results.Any())
    {
        Console.WriteLine($"Barcode(s) found in: {Path.GetFileName(file)}");
        foreach (var result in results)
        {
            Console.WriteLine($"  Value: {result.Value}, Type: {result.BarcodeType}");
            countFaster++;
        }
    }
    else
    {
        Console.WriteLine($"No barcode found in: {Path.GetFileName(file)}");
    }
}

stopwatch.Stop();

// Print number of images the barcode reader could decode
Console.WriteLine($"ExtremeDetail could read = {countFaster} out of {pdfFiles.Length} in {stopwatch.ElapsedMilliseconds}ms");
Imports IronBarCode
Imports System
Imports System.Diagnostics
Imports System.IO
Imports System.Linq

Dim optionsFaster As New BarcodeReaderOptions With {
    .Speed = ReadingSpeed.ExtremeDetail
}

' Directory containing PDF files
Dim folderPath As String = "YOUR_FILE_PATH"

' Get all PDF files in the directory
Dim pdfFiles = Directory.GetFiles(folderPath, "*.jpg")

Dim countFaster As Integer = 0
Dim stopwatch As Stopwatch = Stopwatch.StartNew()

For Each file In pdfFiles
    ' Read the barcode
    Dim results = BarcodeReader.Read(file, optionsFaster)

    If results.Any() Then
        Console.WriteLine($"Barcode(s) found in: {Path.GetFileName(file)}")
        For Each result In results
            Console.WriteLine($"  Value: {result.Value}, Type: {result.BarcodeType}")
            countFaster += 1
        Next
    Else
        Console.WriteLine($"No barcode found in: {Path.GetFileName(file)}")
    End If
Next

stopwatch.Stop()

' Print number of images the barcode reader could decode
Console.WriteLine($"ExtremeDetail could read = {countFaster} out of {pdfFiles.Length} in {stopwatch.ElapsedMilliseconds}ms")
$vbLabelText   $csharpLabel

ExtremeDetail seçeneği, yaklaşık 10 dakika içinde 430 BARCODE görüntüsünden 313'ünü tanımladı. Ağır şekilde bozulmuş barkodlar üzerindeki etkileyici %72,79 doğruluk oranına rağmen, yüksek kaynak tüketimi onu yalnızca son çare olarak uygun kılar. Bu seçeneği kullanmadan önce görüntüleri önceden işleyin.

Farklı Hızlar Nasıl Karşılaştırılır?

Mod Barkodlar Bulundu Ortalama Zaman Dosya Başına Süre GC Baskısı Doğruluk Kazancı
Daha Hızlı 147/430 (%33,95) 25 s 0,058 s Yüksek (Gen2: 177K) Temel Çizgi
Dengeli 237/430 (%55,11) 43 s 0,1 s Yüksek (Gen2: 151K) +62,32% Daha Hızlı karşılaştırıldı
Detaylı 237/430 (%55,11) 5,50 dakika 0,767 s Çok Yüksek (Gen2: 297K) +0% Dengeli karşılaştırıldı
Aşırı Detay 313/430 (%72,79) 10,14 dakika 1,414 s Aşırı (Gen2: 4,74M) +32,08% Detaylı karşılaştırıldı

Uygulamam için Doğru Hızı Nasıl Seçerim?

Yukarıdaki karşılaştırmalara dayanarak, Faster ayarından başlayın ve Balanced, Detailed ve ExtremeDetail ayarlarına geçerek önemli çıktı farklılıklarını belirleyin. Çoğu senaryoda, Balanced her şeyi yeterince halleder. Detailed ve ExtremeDetail etiketlerini yalnızca çok bozuk görüntüler için kullanın. Zayıf veya düşük kaliteli BarCode'lar için, algılama hassasiyetini artırmak üzere hız ayarınızı MinScanLines = 1 ile birleştirin.

Detailed ve ExtremeDetail orta ve ağır işleme uygulasa da, bazen süreci bölmek daha verimli olabilir; tek bir işlem kullanmak yerine, BARCODE okunmadan önce görüntü filtrelerini manuel olarak uygulayın. Görüntüleri ön işleme hakkında daha fazla bilgi almak için, bu kılavuza bakın.

Hangi Hız Ayarı Benim Kullanım Durumuma Uygun?

Görüntü kalitesine bağlı olarak hız seçimi için karar ağacı - Daha Hızlı'dan Detaylı+Aşırı Detay seçeneklerine

Sıkça Sorulan Sorular

Hangi dört barkod okuma hızı seçeneği mevcuttur?

IronBarcode, dört OkumaHızı seçeneği sunar: Daha Hızlı, Dengeli, Detaylı ve Aşırı Detaylı. Her seçenek, işleme hızı ile doğruluk arasında farklı bir denge sağlar ve Dengeli, çoğu uygulama için önerilen başlangıç noktasıdır.

Barkod tararken okuma hızını nasıl ayarlarım?

IronBarcode'da BarkodOkuyucuSeçenekleri sınıfını kullanarak okuma hızını ayarlayabilirsiniz. Basitçe, yeni bir BarkodOkuyucuSeçenekleri nesnesi oluşturun ve Hız özelliğini istediğiniz OkumaHızı değerine (Daha Hızlı, Dengeli, Detaylı veya Aşırı Detaylı) ayarlayın, ardından bunu Okuma yöntemine iletin.

Uygulamam için hangi okuma hızı seçeneğini kullanmalıyım?

IronBarcode, çoğu uygulama için Dengeli hız ayarıyla başlamanızı önerir. Yüksek kaliteli, net barkod görüntülerine sahipseniz Daha Hızlı modu kullanabilirsiniz. Bozulmuş veya düşük kaliteli görüntüler için daha iyi doğruluk sağlamak adına Detaylı veya Aşırı Detaylı modlar kullanmayı düşünün.

Farklı okuma hızı seçenekleri arasındaki denge nedir?

IronBarcode'un okuma hızlarındaki denge, işleme hızı ile doğruluk arasındadır. Daha Hızlı mod, görüntüleri hızla işler ancak düşük kaliteli görüntülerde barkodları kaçırabilir. Aşırı Detaylı mod en yüksek doğruluğu sağlar ancak daha fazla işlem süresi ve bellek kaynakları gerektirir.

Farklı hız ayarları ile birden fazla barkod formatını okuyabilir miyim?

Evet, IronBarcode, QR kodları dahil çeşitli barkod formatlarını tüm hız ayarlarıyla okuyabilir. Hız ayarı işlem yaklaşımını etkiler ancak okuyabileceğiniz barkod türlerini sınırlamaz.

Görüntü kalitesi, hangi okuma hızını seçmem gerektiğini nasıl etkiler?

Görüntü kalitesi, IronBarcode’da hız seçiminizi doğrudan etkiler. Net, yüksek kaliteli barkod görüntüleri Daha Hızlı mod ile verimli bir şekilde işlenebilir. Bozulmuş, bulanık veya düşük kontrastlı görüntüler, doğru barkod algılama ve okuyuculuğu sağlamak için Detaylı veya Aşırı Detaylı modlar gerektirir.

Hız seçenekleri ile barkod okuma için minimal iş akışı nedir?

IronBarcode ile minimal iş akışı 5 adımı içerir: 1) C# kütüphanesini İndirin, 2) Okuma hızını ayarlamak için BarkodOkuyucuSeçeneklerini kullanın, 3) Görüntü yolunuzla Okuma metodunu çağırın, 4) Barkod değerlerini çıkarın ve yazdırın, 5) Farklı hızlar arasındaki performans takaslarını değerlendirin.

Farklı okuma hızlarının performans etkisini nasıl ölçerim?

IronBarcode’un farklı okuma hızlarındaki performansı, .NET benchmark kütüphanelerini kullanarak işlem süresini ve bellek kullanımını izleyerek ölçülebilir. Bu, belirli kullanım durumunuz ve kaynak kısıtlamalarınıza uygun optimal hız ayarını belirlemenize yardımcı olur.

Bir projede IronBarcode'u uygulamak için hangi programlama becerileri gereklidir?

IronBarcode'u bir projede uygulamak için temel C# programlama bilgisi yeterlidir, çünkü bu kütüphane, geliştiricilere rehberlik eden basit yöntemler ve kapsamlı belgeler sağlar.

IronBarcode, hem küçük projeler hem de büyük kurumsal uygulamalar için uygun mu?

IronBarcode, küçük projeler kadar geniş çaplı kurumsal uygulamalar için de uygun, ölçeklenebilir ve çok yönlü olacak şekilde tasarlanmıştır ve sağlam barkod çözümleri gerektiren uygulamalara hizmet eder.

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ı...

Daha Fazla Oku
Başlamaya Hazır mısınız?
Nuget İndirmeler 2,240,258 | Sürüm: 2026.5 just released
Still Scrolling Icon

Hâlâ Kaydırıyor Musunuz?

Hızlıca kanıt ister misiniz? PM > Install-Package BarCode
bir örnek çalıştır dizginizin barkoda dönüştüğünü izle.