IRONSOFTWAREHOME
VIDEOLAR

Cloudmersive Barcode API'den IronBarcode'a Geçiş

Curtis Chau
Curtis Chau
Updated: 19 Mayıs 2026

Bu, .NET barkod tarihindeki en basit geçiştir. HTTP istemcisini kaldırın. Bir NuGet paketi ekleyin. API anahtarı yönetimini silin. Gerisi bir bul-ve-değiştir işlemi.

Cloudmersive'ın .NET SDK'si, HttpClient çağrılarının etrafında ince bir sarmalayıcı olan oluşturulmuş bir REST API istemcisidir. Uygulamanızdaki Cloudmersive'a özgü her kod parçası, o istemci için ya yapılandırmadır ya da ağ istekleri başarısız olduğunda meydana gelen hata yönetimidir. IronBarcode ile bu altyapının hiçbirine ihtiyaç yok. Barkodları yerel olarak işlemekte ve ağa bağımlı değildir.


Kısa Başlangıç: Üç Adım

Adım 1: Paketleri Değiştirin

dotnet remove package Cloudmersive.APIClient.NET.Barcode
dotnet add package BarCode
SHELL

Adım 2: Ad Alanlarını Değiştirin

// Remove these
using Cloudmersive.APIClient.NET.Barcode.Api;
using Cloudmersive.APIClient.NET.Barcode.Client;

// Add this
using IronBarCode;

Adım 3: API Anahtarı Kurulumunu Lisans Anahtarı ile Değiştirin

// Remove this
Configuration.Default.ApiKey.Add("Apikey", "YOUR-CLOUDMERSIVE-API-KEY");

// Replace with this — set once at application startup
IronBarCode.License.LicenseKey = "YOUR-LICENSE-KEY";

Bir ASP.NET Core uygulamasında, lisans anahtarı Program.cs içine builder.Build()'dan önce yerleştirilir:

using IronBarCode;

IronBarCode.License.LicenseKey = "YOUR-LICENSE-KEY";

var builder = WebApplication.CreateBuilder(args);
// ... rest of startup

Maliyet: Önceki Harcamalarınıza Karşı Ne Harcayacaksınız

Geçişten önce, Cloudmersive entegrasyonunun aslında ne kadara mal olduğunu hesaplamak faydalı olur. Matematik basit:

Günlük HacminizAylık İsteklerCloudmersive SeviyesiIronBarcode (tek seferlik)
100/gün~3.000Temel $19.99/ay$999
1.000/gün~30.000İşletme Premier $99.99/ay$999
5.000/gün~150.000Orta İşletme $499.99/ay$999
10.000/gün~300.000Kurumsal (özel)$999
25.000/gün~750.000Kurumsal (özel)1.499$ (Plus, 3 dev)

Cloudmersive için ayda ~63 $ 'dan fazla ödüyorsanız, IronBarcode'un Lite lisansı kendini ilk yıl içinde öder. Karşılaşma noktasından sonra, IronBarcode yenilenme ve talep başına ücret olmadan bir süresiz lisansdır.


Kod Göç Örnekleri

QR Kod Oluşturma

En yaygın Cloudmersive üretim çağrısı doğrudan IronBarcode ile eşleşir:

Öncesi (Cloudmersive):

using Cloudmersive.APIClient.NET.Barcode.Api;
using Cloudmersive.APIClient.NET.Barcode.Client;

Configuration.Default.ApiKey.Add("Apikey", "YOUR-CLOUDMERSIVE-API-KEY");

var apiInstance = new GenerateBarcodeApi();

byte[] result = apiInstance.GenerateBarcodeQRCode("https://example.com");
File.WriteAllBytes("qr.png", result);

Sonrası (IronBarcode):

using IronBarCode;

IronBarCode.License.LicenseKey = "YOUR-LICENSE-KEY";

byte[] result = QRCodeWriter.CreateQrCode("https://example.com", 500)
    .ToPngBinaryData();
File.WriteAllBytes("qr.png", result);

// Or save directly
QRCodeWriter.CreateQrCode("https://example.com", 500)
    .SaveAsPng("qr.png");

Code128 Oluşturma

Öncesi (Cloudmersive):

using Cloudmersive.APIClient.NET.Barcode.Api;
using Cloudmersive.APIClient.NET.Barcode.Client;

Configuration.Default.ApiKey.Add("Apikey", "YOUR-CLOUDMERSIVE-API-KEY");
var apiInstance = new GenerateBarcodeApi();

byte[] result = apiInstance.GenerateBarcodeCode128("SHIP-2024031500428");
File.WriteAllBytes("barcode.png", result);

Sonrası (IronBarcode):

using IronBarCode;

IronBarCode.License.LicenseKey = "YOUR-LICENSE-KEY";

BarcodeWriter.CreateBarcode("SHIP-2024031500428", BarcodeEncoding.Code128)
    .SaveAsPng("barcode.png");

// Or get bytes directly
byte[] result = BarcodeWriter.CreateBarcode("SHIP-2024031500428", BarcodeEncoding.Code128)
    .ToPngBinaryData();

Barkod Okuma

Öncesi (Cloudmersive):

using Cloudmersive.APIClient.NET.Barcode.Api;
using Cloudmersive.APIClient.NET.Barcode.Client;

Configuration.Default.ApiKey.Add("Apikey", "YOUR-CLOUDMERSIVE-API-KEY");
var scanApi = new BarcodeScanApi();

using (var stream = File.OpenRead("barcode.png"))
{
    var result = scanApi.BarcodeScanImage(stream);
    if (result.Successful == true)
    {
        Console.WriteLine($"Value: {result.RawText}");
        Console.WriteLine($"Type: {result.BarcodeType}");
    }
}

Sonrası (IronBarcode):

using IronBarCode;

IronBarCode.License.LicenseKey = "YOUR-LICENSE-KEY";

var results = BarcodeReader.Read("barcode.png");
var result = results.First();
Console.WriteLine($"Value: {result.Value}");
Console.WriteLine($"Type: {result.Format}");

Asenkron Barkod Okuma

Cloudmersive entegrasyonunuz asenkron API kullanıyorsa:

Öncesi (Cloudmersive):

using Cloudmersive.APIClient.NET.Barcode.Api;
using Cloudmersive.APIClient.NET.Barcode.Client;

Configuration.Default.ApiKey.Add("Apikey", "YOUR-CLOUDMERSIVE-API-KEY");
var scanApi = new BarcodeScanApi();

using (var stream = File.OpenRead("barcode.png"))
{
    var result = await scanApi.BarcodeScanImageAsync(stream);
    return result.Successful == true ? result.RawText : null;
}

Sonrası (IronBarcode):

using IronBarCode;

IronBarCode.License.LicenseKey = "YOUR-LICENSE-KEY";

// IronBarcode is synchronous; wrap in Task.Run to free the calling thread for CPU-bound work
var results = await Task.Run(() => BarcodeReader.Read("barcode.png"));
return results.FirstOrDefault()?.Value;

PDF'den Barkod Okuma

Cloudmersive'un yerel PDF desteği yok. Mevcut kodunuz taramadan önce PDF'lerden görüntü çıkarıyorsa, o tüm hattı tek bir IronBarcode çağrısıyla değiştirin:

Öncesi (Cloudmersive — ayrı PDF çıkarma gerektirir):

// Requires a separate PDF library to extract pages as images,
// then one Cloudmersive API call per extracted page image.
var scanApi = new BarcodeScanApi();
foreach (var pageImagePath in ExtractPdfPages("document.pdf"))
{
    using var stream = File.OpenRead(pageImagePath);
    var result = await scanApi.BarcodeScanImageAsync(stream);
    if (result.Successful == true)
    {
        Console.WriteLine($"Found: {result.RawText}");
    }
}

Sonrası (IronBarcode):

using IronBarCode;

IronBarCode.License.LicenseKey = "YOUR-LICENSE-KEY";

// One call — all pages, all barcodes, no image extraction step
var results = BarcodeReader.Read("document.pdf");
foreach (var result in results)
{
    Console.WriteLine($"Page {result.PageNumber}: {result.Value}");
}

Çoklu-Barcode Algılama

Birden fazla barkod tarayan kodunuz varsa:

Öncesi (Cloudmersive — birçok çağrı gerekli):

// Cloudmersive returns one barcode per scan — multiple calls for multiple barcodes
var scanApi = new BarcodeScanApi();
var barcodeValues = new List<string>();

foreach (var croppedRegion in CropBarcodeRegions("invoice.png"))
{
    using var stream = new MemoryStream(croppedRegion);
    var result = await scanApi.BarcodeScanImageAsync(stream);
    if (result.Successful == true)
        barcodeValues.Add(result.RawText);
}

Sonrası (IronBarcode):

using IronBarCode;

IronBarCode.License.LicenseKey = "YOUR-LICENSE-KEY";

var options = new BarcodeReaderOptions
{
    Speed = ReadingSpeed.Balanced,
    ExpectMultipleBarcodes = true,
};

// One call — returns all barcodes in the image
var results = BarcodeReader.Read("invoice.png", options);
var barcodeValues = results.Select(r => r.Value).ToList();

Artık Gerekli Olmayan Altyapıyı Kaldırma

Geçişin bu kısmında yazdığınızdan daha fazla kodu silersiniz.

HTTP İstisna Yönetimini Kaldır

Cloudmersive işlemleri ağ hataları, HTTP 4xx/5xx yanıtları ve zaman aşımı istisnaları ile başarısız olabilir. Bu genellikle IronBarcode'un ihtiyacı olmayan try/catch altyapısı üretir:

// Remove all of this
try
{
    var result = await scanApi.BarcodeScanImageAsync(stream);
    // ...
}
catch (ApiException ex) when (ex.ErrorCode == 429)
{
    // Rate limited — wait and retry
    await Task.Delay(TimeSpan.FromSeconds(2));
    // retry logic...
}
catch (ApiException ex) when (ex.ErrorCode == 503)
{
    // Service unavailable — Cloudmersive is down
    _logger.LogError("Cloudmersive unavailable: {Message}", ex.Message);
    throw;
}
catch (HttpRequestException ex)
{
    // Network error
    _logger.LogError("Network failure: {Message}", ex.Message);
    throw;
}
catch (TaskCanceledException)
{
    // Timeout
    _logger.LogError("Cloudmersive request timed out");
    throw;
}

IronBarcode ağ istisnaları atmaz. Girdi verilerinden bir barkodun çözülememesi durumunda BarcodeException fırlatır, bu bir altyapı değil içerik sorunudur. Basitleştirilmiş hata yönetimi:

using IronBarCode;

var results = BarcodeReader.Read("barcode.png");
if (!results.Any())
{
    _logger.LogWarning("No barcode detected in image");
}

Yeniden Deneme Mantığını Kaldır

Cloudmersive entegrasyonunuz yeniden deneme politikaları, Polly, özel yeniden deneme döngüleri veya üstel yedekleme içeriyorsa, bunları tamamen kaldırın:

// Remove retry infrastructure
// var retryPolicy = Policy
//     .Handle<ApiException>()
//     .WaitAndRetryAsync(3, retryAttempt =>
//         TimeSpan.FromSeconds(Math.Pow(2, retryAttempt)));

// IronBarcode — no retry needed
var results = BarcodeReader.Read("barcode.png");

Oran Sınırlama İzlemeyi Kaldır

Kodu, Cloudmersive'ın aylık kotasına uymak için API çağrı sayılarını izliyorsa:

// Remove quota tracking
// private static int _monthlyCallCount = 0;
// private const int MonthlyLimit = 30000;
//
// if (Interlocked.Increment(ref _monthlyCallCount) > MonthlyLimit)
//     throw new InvalidOperationException("Monthly Cloudmersive quota exceeded");

// IronBarcode — no quota
var results = BarcodeReader.Read("barcode.png");

Ağ Zaman Aşımı Yapılandırmasını Kaldır

Cloudmersive istemcileri sıklıkla zaman aşımı yapılandırması içerir. Bunu kaldırın:

// Remove timeout configuration
// Configuration.Default.Timeout = 30000; // 30 second timeout
// Configuration.Default.ConnectionTimeout = 5000;

// IronBarcode has no network timeout — no network

API Anahtar Dönüşümünü Kaldır

Uygulamanız bir takvimde API anahtarlarını döndürüyorsa veya gizli yönetiminde saklıyorsa:

// Simplify this pattern
// private string GetCloudmersiveApiKey() =>
//     _secretManager.GetSecret("cloudmersive-api-key-current");
//
// Configuration.Default.ApiKey["Apikey"] = GetCloudmersiveApiKey();

// IronBarcode — set once at startup
IronBarCode.License.LicenseKey = _configuration["IronBarcode:LicenseKey"];
// or literal: "YOUR-LICENSE-KEY"

Yaygın Geçiş Sorunları

Cloudmersive Üretim için byte[] Döndürdü

Cloudmersive'ın üretim yöntemleri doğrudan byte[] döndürür. IronBarcode size daha fazla seçenek sunan bir GeneratedBarcode nesnesi döndürür:

// Cloudmersive returned byte[] directly
byte[] cloudmersiveResult = apiInstance.GenerateBarcodeQRCode("data");

// IronBarcode — call ToPngBinaryData() for the equivalent byte[]
byte[] ironBarcodeResult = BarcodeWriter.CreateBarcode("data", BarcodeEncoding.QRCode)
    .ToPngBinaryData();

// Or save directly (often simpler)
BarcodeWriter.CreateBarcode("data", BarcodeEncoding.QRCode)
    .SaveAsPng("output.png");

// Or get other formats
byte[] jpegBytes = BarcodeWriter.CreateBarcode("data", BarcodeEncoding.QRCode)
    .ToJpegBinaryData();

Cloudmersive Okuma JSON Yanıt Modeli Döndürdü

Cloudmersive'ın tarama sonucu, Successful, RawText ve BarcodeType gibi özelliklere sahip bir yanıt modelidir. IronBarcode, yazılı sonuç nesneleri döndürür:

// Cloudmersive result model
if (cloudmersiveResult.Successful == true)
{
    string value = cloudmersiveResult.RawText;
    string type = cloudmersiveResult.BarcodeType;
}

// IronBarcode result — use .Value and .Format directly
var results = BarcodeReader.Read("barcode.png");
if (results.Any())
{
    string value = results.First().Value;
    string format = results.First().Format.ToString();
}

Birkaç Cloudmersive API Örnek Türü

Cloudmersive, üretim ve taramayı GenerateBarcodeApi ve BarcodeScanApi örneklerinde ayırır. IronBarcode statik sınıflar kullanır — örneklere gerek yoktur:

// Cloudmersive — two separate API instances
var generateApi = new GenerateBarcodeApi();
var scanApi = new BarcodeScanApi();

// IronBarcode — static, no instances
// BarcodeWriter for generation
// BarcodeReader for reading
// QRCodeWriter for QR codes specifically

Geçiş Kontrol Listesi

Tüm Cloudmersive referanslarını yakaladığınızdan emin olmak için geçişten önce ve sonra kod tabanınızda bu aramaları yapın:

# Find all Cloudmersive references
grep -r "Cloudmersive" --include="*.cs" .
grep -r "GenerateBarcodeApi" --include="*.cs" .
grep -r "BarcodeScanApi" --include="*.cs" .
grep -r "Configuration.Default.ApiKey" --include="*.cs" .
grep -r '"Apikey"' --include="*.cs" .
grep -r "GenerateBarcodeQRCode" --include="*.cs" .
grep -r "GenerateBarcodeCode128" --include="*.cs" .
grep -r "BarcodeScanImage" --include="*.cs" .
grep -r "cloudmersive" --include="*.csproj" .
grep -r "cloudmersive" --include="*.json" .
SHELL

Geçişten sonra, tüm aramaların sıfır sonuç döndürmesi gerekir. Daha sonra IronBarcode'un doğru bir şekilde atıfta bulunduğunu doğrulayın:

grep -r "IronBarCode" --include="*.cs" .
grep -r "BarcodeReader" --include="*.cs" .
grep -r "BarcodeWriter" --include="*.cs" .
SHELL

Yapılandırma Kontrol Listesi

  • Tüm .csproj dosyalarından Cloudmersive.APIClient.NET.Barcode kaldırın
  • Cloudmersive API anahtarını, ortam değişkenlerinden ve gizli depolardan kaldırın
  • IronBarcode NuGet paketini ekleyin
  • Uygulama başlangıcında IronBarCode.License.LicenseKey başlatmasını ekleyin
  • Cloudmersive çağrıları için yeniden deneme politikalarını ve devre kesicileri kaldırın
  • Oran sınırlama izleme kodunu kaldırın
  • Ağ zaman aşımı yapılandırmasını kaldırın

Test Kontrol Listesi

Geçişi tamamladıktan sonra:

  • QR kod üretiminin geçerli, taranabilir çıktıyı ürettiğini doğrulayın
  • Code128 ve diğer lineer barkod üretimini doğrulayın
  • Yaygın görüntü formatlarından (PNG, JPEG, BMP) barkod okuma doğrulayın
  • PDF belgeleri işliyorsanız PDF okuma test edin
  • Uygulanabilir ise çoklu barkod algılamayı test edin
  • Ağ trafiğinde Cloudmersive API çağrılarının görünmediğini doğrulayın
  • Uygulamanın internet bağlantısı olmadan doğru çalıştığını doğrulayın

Geçişten Sonra Kazançlarınız

Maliyet tasarruflarının ötesinde, geçiş bir dizi operasyonel endişeyi ortadan kaldırır:

Ağ bağımlı barkod işleme artık yok. Belge işleme hattınız Cloudmersive'un erişilebilirliği, internet bağlantınızın kalitesi veya ağ gecikmeleri nedeniyle çalışmaz.

Kota yönetimi artık yok. Ay sonunda belge hacmindeki artışlar, beklenmedik aşım ücretleri veya işleme hataları ortaya çıkarmaz.

Ağınızı terk eden veri artık yok. Müşteri, mali veya sağlık bilgilerini içeren barkod görüntüleri kendi altyapınızda kalır.

Daha basit kod. Üretim Cloudmersive entegrasyonlarının gerektirdiği yeniden deneme altyapısı, zaman aşımı yönetimi ve HTTP istisna yönetimi kaldırılmıştır. Yerine doğrudan bir yöntem çağrısı gelir.

Geçiş mekaniktir. Kazançlar yapısaldır — bir iş akışının gerektirmediği harici bir ağ servisine olan bağımlılığı ortadan kaldırmak.

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