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

MESCIUSComponentOne C1BarCodevs IronBarcode

Curtis Chau
Curtis Chau
Updated: 26 Nisan 2026

MESCIUSEnformer ComponentOne'ın barkod kontrolü (önceden GrapeCity, 2023'te yeniden markalanmıştır) Windows Forms, WPF, WinUI, Blazor ve ASP.NET Core MVC uygulamaları içinde barkodlar oluşturur. Bunu iyi yapar — API temizdir, çıktı kalitesi sağlamdır ve WinForms tasarımcısı ile doğal olarak bütünleşir. Ancak, yaptığı şeylerin kapsamı dardır. Barkod okuyamaz. WinForms ve WPF sürümleri yalnızca Windows hedef çerçeve üzerinde çalışır. Ve bağımsız bir ürün değil — ComponentOne Studio Enterprise'ın bir parçası olarak gönderilir, 1.299 $/geliştirici/yıl abonelik ile 100'den fazla UI kontrolü içerir. .NET projesi için barkod seçeneklerini değerlendiriyorsanız ve Bir karşılaştırma listesinde ComponentOne bulduysanız, bu makale bu kapsamın pratikte ne anlama geldiği hakkındadır.

C1BarCode'u Anlamak

C1BarCode, görsel bir kontroldür. Üretim iş akışı bir örnek oluşturur, özelliklerini ayarlar ve bir System.Drawing.Image almak için GetImage() çağrısı yapar:

// ComponentOne C1BarCode
using C1.Win.Barcode;
using C1.BarCode;
using System.Drawing;

// License must be set before first use
C1.C1License.Key = "YOUR-COMPONENTONE-KEY";

var barcode = new C1BarCode();
barcode.CodeType = CodeType.Code128;
barcode.Text = "ITEM-12345";
barcode.BarHeight = 100;
barcode.ModuleSize = 2;
barcode.ShowText = true;
barcode.CaptionPosition = CaptionPosition.Below;

using var image = barcode.GetImage();
image.Save("barcode.png", System.Drawing.Imaging.ImageFormat.Png);

Özellik-yazıcı API'si WinForms geliştiricilerine tanıdık gelir — çünkü doğrudan tasarımcı yüzeyine eşlenir. CodeType, BarHeight, ModuleSize, ShowText ve CaptionPosition hepsi kodda aynı şekilde çalışan, tasarımcıya görünebilir özelliklerdir.

C1BarCode, ana hat 1D ve 2D formatlarını kapsayan 38 sembolojiyi destekler: Code 39, Code 128, EAN-8, EAN-13, UPC-A, UPC-E, ITF, QR Code, PDF417 ve DataMatrix ve diğerleri. Barkod üretimi için yaygın kullanım durumlarını kapsar.

Okuma API'si Yok

Bu, bir yapılandırma seçeneğiyle dolacak bir boşluk değildir. C1BarCodeReader sınıfı yok. C1BarCode üzerinde Decode() yöntemi yok. ComponentOne'un barkod kontrolü tasarımla sadece üretim içindir.

Uygulamanızın yüklenen görüntülerden barkodlar taraması, basılı etiketleri doğrulaması, gömülü kodlarla belgeleri işlemesi veya bir web API'sinde QR kodlarından veri çıkarması gerekiyor ise — bunların hiçbiri C1BarCode ile mümkün değildir. Okuma için ayrı bir kütüphane gerekir, bu da aynı zamanda 100'den fazla kontrol içeren bir kurumsal pakette bir barkod üretim bileşeni için neden ödeme yapacağınızı sorusunu gündeme getirir — hem okuma hem de yazma işlemlerini kapsayan bağımsız barkod kütüphaneleri varken neden bir kontrol paketi için ödeme yapasınız?

Okuma API'sinin yokluğu, baskı çıktısı için tasarlanmış WinForms barkod kontrolleri için sıradışı değil. Bir karar noktası haline getiren şey, gereksinimlerin genişlemesi — ve barkod gereksinimleri neredeyse her zaman genişler.

Sadece Windows Kısıtlaması

WinForms ve WPF sürümleri, Windows'a özgü bir hedef çerçeve yapılandırması gerektirir:

<!-- ComponentOne WinForms edition target -->
<TargetFramework>net8.0-windows</TargetFramework>
<UseWindowsForms>true</UseWindowsForms>
XML

net8.0-windows hedef çerçeve takma adı ve UseWindowsForms isteğe bağlı tercihler değildir. C1.Win.BarCode, yalnızca Windows'ta var olan System.Windows.Forms türlerine — UserControl, PaintEventArgs, Graphics — bağlıdır. net8.0-windows kaldırılması, derlemeyi bozacaktır. ComponentOne, çapraz platform TFMar'ları hedefleyen Blazor ve ASP.NET Core MVC barkod kontrol sürümlerini gönderir, ancak WinForms ve WPF paketleri Windows'a bağımlıdır.

Buna karşılık,IronBarcode platform kısıtlamaları olmaksızın net8.0 (veya desteklenen herhangi bir TFM) hedefler:

<!--IronBarcode— standard cross-platform target -->
<TargetFramework>net8.0</TargetFramework>
<!--HayırUseWindowsForms required -->
<!-- Runs on Linux, macOS, Docker, Azure Functions -->
XML

Bu, çeşitli pratik senaryolar içinde önemlidir:

  • Linux üzerinde Azure Uygulama Hizmeti: Yeni Uygulama Hizmeti kurulumları için varsayılan plan. net8.0-windows onu hedefleyemez.
  • Docker konteynerları: Linux konteynerları standarttır. Windows konteyneri daha büyüktür, daha pahalıya mal olur ve birçok bulut katmanında mevcut değildir.
  • ASP.NET Core Web API: Sadece Windows'a dağıtılabilen bir barcode üretimi uç noktası, ekip sonunda kaldırmak zorunda kalacaktır.
  • Azure İşlevleri: Tüketim planı Linux'ta çalışır. Bir net8.0-windows hedefi olan bir barkod üreten İşlev, Tüketim planına dağıtılamaz.
  • macOS geliştirme: macOS üzerindeki geliştiriciler, oluşturma mantığını test etmek için bile yerel olarak bir net8.0-windows projesini çalıştıramaz.

Platform kısıtlaması, uygulamanız sadece Windows üzerinde çalışacak olan bir WinForms masaüstü aracıysa bir problem değildir. Linux veya bulut ortamını içeren herhangi bir dağıtım gereksinimi olan an bir problem haline geliyor.

Süit Paketlemesi

C1BarCode kontrolü, WinForms, WPF, Blazor ve ASP.NET için tam ComponentOne kontrol paketini içeren ComponentOne Studio Enterprise'ın bir parçası olarak satılmaktadır. ComponentOne Studio Enterprise fiyatlandırması, geliştirici başına yılda 1.299 dolar (abonelik); Tek platformlu sürümler (WinForms veya WPF) geliştirici başına yılda 799 dolardır.

Bu paket 100'den fazla bileşen içerir: ağlar, grafikler, zamanlayıcılar, giriş kontrolleri, rapor tasarımcıları, harita kontrolleri, göstergeler ve daha fazlası. Eğer veri yoğun bir uygulama oluşturuyorsanız ve bu kontrollerden birçoğuna ihtiyacınız varsa, paket fiyatlandırması mantıklı olabilir. Eğer barkod üretimine ihtiyacınız varsa ve buna rastgele geldiyseniz ve ComponentOne, arama sırasında ortaya çıktıysa, esas olarak bir kontrol için kurumsal bir UI paketi satın alıyorsunuz demektir.

NuGet paketi WinForms (C1.WPF.BarCode, C1.WinUI.BarCode ve diğer platformlar için C1.Blazor.BarCode ile) için C1.Win.BarCode olarak ve ComponentOne Studio aboneliği aracılığıyla lisanslanmıştır. Tüm paketin yanı sıra yalnızca barkod işlevselliği isteyen geliştiriciler için karışık bir barkod lisansi yoktur.

IronBarcode'un fiyat yapısı farklıdır: 749 $'dan başlayan süresiz lisanslamalı tek bir geliştirici (Lite), üç (Plus) için 1.499 $, on için (Professional) 2.999 $, sınırsız geliştirici (Team) için 5.999 $ olan bir bağımsız barkod kütüphanesindeki yerlerini buluyorlar. Hiçbir ağ kontrolü, hiçbir grafik kütüphanesi, hiçbir rapor tasarımcısı yoktur — sadece aradığınız barkod işlevi vardır.

QR Kod Özelleştirme

Her iki kütüphane de özelleştirme seçenekleriyle QR kod oluşturmayı destekler. API stili önemli ölçüde farklılık gösterir.

ComponentOne özellik ayarlayıcı yaklaşımı:

// ComponentOne — QR code with error correction and color
using C1.Win.Barcode;
using C1.BarCode;
using System.Drawing;

C1.C1License.Key = "YOUR-COMPONENTONE-KEY";

var barcode = new C1BarCode();
barcode.CodeType = CodeType.QRCode;
barcode.Text = "https://example.com/product/4821";
barcode.QRCodeVersion = QRCodeVersion.Version5;
barcode.QRCodeErrorCorrectionLevel = QRCodeErrorCorrectionLevel.High;
barcode.QRCodeModel = QRCodeModel.Model2;
barcode.ForeColor = Color.DarkBlue;
barcode.BackColor = Color.White;
barcode.ModuleSize = 4;

using var image = barcode.GetImage();
image.Save("product-qr.png", System.Drawing.Imaging.ImageFormat.Png);

IronBarcode akıcı zincir:

//IronBarcode— QR code with error correction and color
// NuGet: dotnet add package IronBarcode
using IronBarCode;
using System.Drawing;

QRCodeWriter.CreateQrCode(
        "https://example.com/product/4821",
        300,
        QRCodeWriter.QrErrorCorrectionLevel.Highest)
    .ChangeBarCodeColor(Color.DarkBlue)
    .SaveAsPng("product-qr.png");

ComponentOne yaklaşımı, bir C1BarCode nesnesi oluşturmayı ve GetImage() çağrılmadan önce bir dizi özelliği ayarlamayı gerektirir. IronBarcode'un QRCodeWriter bir akıcı zincir kullanır — her işlem barkod nesnesini döndürür ve sonunda .SaveAsPng() çağrısını yaparsınız. Yönetilecek bir örnek yoktur.

IronBarcode ayrıca QR kodlarına logo gömme işlemini destekler, C1BarCode ise desteklemez:

// QR code with embedded brand logo
QRCodeWriter.CreateQrCode("https://example.com/track/8821", 500)
    .AddBrandLogo("company-logo.png")
    .ChangeBarCodeColor(Color.DarkBlue)
    .SaveAsPng("branded-qr.png");

##IronBarcode Anlama

IronBarcode, üretim ve okuma işlemlerini kapsayan bağımsız bir .NET barkod kütüphanesidir. NuGet'den (dotnet add package IronBarcode) yüklenir, platform kısıtlamaları olmadan herhangi bir desteklenen .NET TFM hedefler ve Windows, Linux, macOS, Docker, Azure ve AWS Lambda üzerinde çalışır.

Okuma tarafı, PDF belgelerini yerel olarak kapsar:

// Read barcodes from a PDF — no image extraction needed
using IronBarCode;

var results = BarcodeReader.Read("invoice.pdf");
foreach (var barcode in results)
{
    Console.WriteLine($"Page {barcode.PageNumber}: {barcode.Format}{barcode.Value}");
}

Yüksek verimli senaryolar için, BarcodeReaderOptions hız ve doğruluk takasını ve çoklu barkod algılamayı kontrol eder.

// Multi-barcode read with performance options
using IronBarCode;

var options = new BarcodeReaderOptions
{
    Speed = ReadingSpeed.Balanced,
    ExpectMultipleBarcodes = true,
    ExpectBarcodeTypes = BarcodeEncoding.Code128 | BarcodeEncoding.QRCode
};

var results = BarcodeReader.Read("warehouse-manifest.jpg", options);

Üretim, tutarlı statik bir API ile standart formatları kapsar:

// Code 128 generation to file
BarcodeWriter.CreateBarcode("SHIP-20240312-7834", BarcodeEncoding.Code128)
    .SaveAsPng("shipping-label.png");

//QR kod üretimito byte array (for HTTP response)
byte[] qrBytes = QRCodeWriter.CreateQrCode("https://example.com/order/7734", 400)
    .ToPngBinaryData();
C#

Desteklenen platformlar: Windows, Linux, macOS, Docker, Azure (App Service ve Fonksiyonlar), AWS Lambda. Desteklenen .NET sürümleri: .NET Framework 4.6.2+, .NET Core 3.1+, ve .NET 5/6/7/8.

Özellik Karşılaştırması

ÖzellikMESCIUSComponentOne C1BarCodeIronBarcode
Barkod oluşturmaEvetEvet
Barkod okumaHayırEvet
QR kod üretimiEvetEvet
QR logo yerleştirmeHayırEvet
Okuma için PDF girişiGeçerli değil (okuma yok)Evet (yerel)
.NET platform hedefi (WinForms/WPF sürümleri)net8.0-windowsHerhangi bir TFM (net8.0 vb.)
UseWindowsForms gerekli (WinForms sürümü)EvetHayır
Linux / Docker dağıtımıSadece Blazor/ASP.NET MVC sürümleriEvet
macOS dağıtımıSadece Blazor/ASP.NET MVC sürümleriEvet
Azure Fonksiyonları (Linux)Sadece Blazor/ASP.NET MVC sürümleriEvet
ASP.NET Core sunucu tarafıASP.NET Core MVC sürümüEvet
Bağımsız NuGet paketiPaketler lisanslıEvet
Bağımsız fiyatlandırmaYok$999'dan başlayan süresiz (Lite)
Paket fiyatlandırması1.299 $/geliştirici/yıl Enterprise; 799 $/geliştirici/yıl tek platformYok
Akıcı üretim API'siHayır (özellik ayarlayıcı)Evet
BarcodeReader.Read()HayırEvet
BarcodeWriter.CreateBarcode()HayırEvet
QRCodeWriter.CreateQrCode()HayırEvet
Desteklenen .NET sürümleri.NET 6+ (WinForms/WPF için Windows).NET Framework 4.6.2+, .NET Core 3.1+, .NET 5–8
Süresiz lisans seçeneğiHayır (abonelik)Evet

API Eşleme Başvurusu

C1BarCode'dan IronBarcode'a geçiş yapan takımlar için bu doğrudan eşitlikler geçerlidir:

ComponentOne C1BarCodeIronBarcode
C1.C1License.Key = "..."IronBarCode.License.LicenseKey = "YOUR-LICENSE-KEY"
new C1BarCode()Statik — örnek gerekmez
barcode.CodeType = CodeType.Code128BarcodeEncoding.Code128 (parametre olarak geçildi)
barcode.Text = "data"BarcodeWriter.CreateBarcode() ilk argümanı
barcode.BarHeight = 100Barkod yazıcısında .ResizeTo(width, 100)
barcode.ModuleSize = 2.ResizeTo(), piksellerde boyutlandırmayı kontrol eder
barcode.ForeColor = Color.DarkBlue.ChangeBarCodeColor(Color.DarkBlue)
barcode.BackColor = Color.White.ChangeBackgroundColor(Color.White)
barcode.GetImage().SaveAsPng() / .ToPngBinaryData()
barcode.QRCodeErrorCorrectionLevelQRCodeWriter.QrErrorCorrectionLevel enum
barcode.QRCodeVersionOtomatik (veya sürüm parametresi)
Okuma API'si yokBarcodeReader.Read(path)
net8.0-windows gereklinet8.0 (veya herhangi bir TFM)
UseWindowsForms = true gerekliGerekli değil

Takımlar Geçiş Yaptığında

Okuma gereksinimi ortaya çıkar. Bu en yaygın tetikleyicidir. Bir ekip C1BarCode ile barkod etiketi üretimi yapar, ardından taramaları doğrulama, gelen sevkiyat belgelerini işleme veya yüklenen resimlerden QR kodlarını çözme gereksinimi ortaya çıkar. C1BarCode bu konuda yardımcı olamaz. Seçenekler, okuma için ikinci bir barkod kütüphanesi eklemek veya C1BarCode'u her ikisini de idare eden bir kütüphane ile değiştirmektir.

Linux veya Docker dağıtımı. Windows masaüstlerine gönderi yapan bir WinForms masaüstü uygulaması bu kısıtla karşılaşmaz. Barkod görüntüleri oluşturan bir ASP.NET Core API'si bunu yapar — özellikle Linux kabında çalışması veya Linux üzerindeki Azure App Service'e dağıtılması gerekiyorsa. net8.0-windows hedef çerçeve bu dağıtım seçeneklerini hemen engeller.

Mikro Hizmet veya sunucusuz mimari. Azure Fonksiyonları, AWS Lambda ve kapsayıcı mikro hizmetleri öncelikle Linux tabanlıdır. Linux'a dağıtılamayan bir barkod oluşturma hizmeti, geçerli bir mikro hizmet olamaz.

Paket abonelik maliyeti vs. gereksinim kapsamı. ComponentOne Studio Enterprise için ödeme yapan ve zaten ağlarını, grafiklerini ve diğer kontrollerini kullanan ekipler zaten aboneliklerini gerekçelendirmişlerdir. Yalnızca veya tamamen barkod üretimi amacıyla abone olan ekipler, kullanmadıkları 100'den fazla kontrol için ödeme yapıyorlar. Geliştirici başına düşen abonelik maliyeti, ekip büyüklüğü ile birleşir.

Süresiz lisans tercihi. ComponentOne Studio yalnızca aboneliktir. Süresiz lisans seçeneği yoktur. Yazılımı kendileri teslim etmeyi tercih eden ekipler için — özellikle uyumluluk veya uzun vadeli bakım nedenleriyle — IronBarcode'un süresiz lisanslaması (Lite 749 $'dan başlıyor) yapısal olarak farklıdır.

Sonuç

C1BarCode, WinForms bağlamında temiz bir şekilde barkod üretir. Gerçekten de bunu iyi yapar ve sadece Windows'ta etiket üretimine ihtiyaç duyan bir WinForms masaüstü uygulaması için ComponentOne paketinde işlevsel bir seçenektir.

Kapsam burada sona erer. Okuma yok, yalnızca Windows dağıtımı, bağımsız paket yok, abonelik lisanslaması. Bir projenin gereksinimleri Windows üzerinde WinForms üretiminin ötesine geçtiğinde — bir okuma gereksinimi, bir Linux dağıtım hedefi, bir web API, bir Docker konteyneri, bir bulut işlevi — C1BarCode bunları kapsayamaz. IronBarcode, üretim ve okumayı kapsar, .NET'in desteklediği herhangi bir platformda çalışır ve 100 kontrol içeren kurumsal pakete abone olmadan bağımsız bir paket olarak mevcuttur.

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