IRONSOFTWAREHOME
MIT ANDEREN KOMPONENTEN VERGLEICHEN

MESCIUS ComponentOne C1BarCodevs IronBarcode

Curtis Chau
Curtis Chau
Updated: 26. April 2026

Die Barcode-Kontrolle von MESCIUS ComponentOne (früher GrapeCity, 2023 umbenannt) generiert Barcodes in Windows Forms, WPF, WinUI, Blazor und ASP.NET Core MVC-Anwendungen. Das gelingt ihm gut – die API ist übersichtlich, die Ausgabequalität ist solide und es integriert sich nahtlos in den WinForms-Designer. Der Umfang seiner Tätigkeiten ist jedoch begrenzt. Es kann keine Barcodes lesen. Die WinForms- und WPF-Ausgaben laufen auf einem windows-spezifischen Ziel-Framework. Und es ist kein eigenständiges Produkt — es wird als Teil von ComponentOne Studio Enterprise ausgeliefert, einem Abonnement von 1.299 USD pro Entwickler/Jahr, das über 100 UI-Steuerelemente umfasst. Wenn Sie Barcode-Optionen für ein .NET -Projekt evaluieren und ComponentOne in einer Vergleichsliste gefunden haben, erfahren Sie in diesem Artikel, was dieser Umfang in der Praxis bedeutet.

C1BarCode verstehen

C1BarCode ist ein visuelles Steuerelement. Der Erstellungs-Workflow erstellt eine Instanz, legt Eigenschaften fest und ruft GetImage() auf, um einen System.Drawing.Image abzurufen:

// 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);

Die Property-Setter-API ist WinForms-Entwicklern vertraut – sie ist direkt auf die Designeroberfläche abgebildet. CodeType, BarHeight, ModuleSize, ShowText, und CaptionPosition sind alle design-sichtbare Eigenschaften, die im Code identisch funktionieren.

C1BarCode unterstützt 38 Symbologien, die die gängigen 1D- und 2D-Formate abdecken: Code 39, Code 128, EAN-8, EAN-13, UPC-A, UPC-E, ITF, QR-Code, PDF417 und DataMatrix unter anderen. Für die Barcode-Generierung deckt es die gängigen Anwendungsfälle ab.

Keine Lese-API

Dies ist keine Lücke, die durch eine Konfigurationsoption geschlossen werden kann. Es gibt keine C1BarCodeReader-Klasse. Es gibt keine Decode()-Methode in C1BarCode. Die Barcode-Steuerung von ComponentOne ist systembedingt nur auf die Generierung beschränkt.

Wenn Ihre Anwendung Barcodes aus hochgeladenen Bildern scannen, gedruckte Etiketten überprüfen, Dokumente mit eingebetteten Codes verarbeiten oder Daten aus QR-Codes in einer Web-API extrahieren muss – nichts davon ist mit C1BarCode möglich. Sie bräuchten eine separate Bibliothek zum Lesen, was die Frage aufwirft, warum man für eine Komponente bezahlen sollte, die nur Barcodes generiert, innerhalb einer Enterprise Suite mit über 100 Steuerelementen, wenn eigenständige Barcode-Bibliotheken beide Operationen abdecken.

Das Fehlen einer Lese-API ist bei WinForms-Barcode-Steuerelementen, die für die Druckausgabe konzipiert sind, nicht ungewöhnlich. Zum Entscheidungspunkt wird es, wenn sich die Anforderungen erweitern – und die Anforderungen an Barcodes erweitern sich fast immer.

Beschränkung auf Windows

Die WinForms- und WPF-Ausgaben von C1BarCode erfordern eine windows-spezifische Ziel-Framework-Konfiguration:

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

Das net8.0-windows-Ziel-Framework-Moniker und UseWindowsForms sind keine optionalen Präferenzen. C1.Win.BarCode hängt von System.Windows.Forms-Typen ab — UserControl, PaintEventArgs, Graphics — die nur auf Windows existieren. Das Entfernen von net8.0-windows bricht den Build. ComponentOne liefert jedoch Blazor- und ASP.NET Core MVC-Ausgaben der Barcode-Kontrolle, die plattformübergreifende TFMs ansprechen, aber die WinForms- und WPF-Pakete sind an Windows gebunden.

Im Gegensatz dazu zielt IronBarcode auf net8.0 (oder ein beliebiges unterstütztes TFM) ohne Plattformbeschränkungen:

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

Dies ist in mehreren praktischen Szenarien von Bedeutung:

  • Azure App Service unter Linux: Standardplan für neue App Service-Bereitstellungen. net8.0-windows kann es nicht anvisieren.
  • Docker-Container: Linux-Container sind der Standard. Ein Windows-Container ist größer, teurer und in vielen Cloud-Tarifen nicht verfügbar.
  • ASP.NET Core Web API: Ein Barcode-Generierungsendpunkt, der nur unter Windows bereitgestellt werden kann, ist eine Bereitstellungseinschränkung, die das Team irgendwann beseitigen muss.
  • Azure Functions: Der Verbrauchsplan läuft unter Linux. Eine Barcode-generierende Funktion mit einem net8.0-windows-Ziel kann nicht auf dem Consumption-Plan bereitgestellt werden.
  • macOS-Entwicklung: Entwickler auf macOS können ein net8.0-windows-Projekt nicht lokal ausführen, selbst für Testzwecke der Erstellungslogik.

Die Plattformbeschränkung stellt kein Problem dar, wenn es sich bei Ihrer Anwendung um ein WinForms-Desktop-Tool handelt, das ausschließlich unter Windows ausgeführt wird. Es wird zum Problem, sobald die Bereitstellungsanforderungen irgendeine Linux- oder Cloud-Umgebung umfassen.

Suite -Bundling

Die C1BarCode-Steuerung wird als Teil von ComponentOne Studio Enterprise verkauft, das die vollständige ComponentOne-Steuerungssuite für WinForms, WPF, Blazor und ASP.NET enthält. Die Preisgestaltung für ComponentOne Studio Enterprise beträgt 1.299 USD pro Entwickler pro Jahr (Abonnement); Einzelplattform-Ausgaben (WinForms oder WPF) kosten 799 USD pro Entwickler pro Jahr.

Diese Suite umfasst über 100 Komponenten: Raster, Diagramme, Terminplaner, Eingabesteuerelemente, Berichtsdesigner, Kartensteuerelemente, Messinstrumente und vieles mehr. Wenn Sie eine datenintensive Anwendung entwickeln und viele dieser Steuerelemente benötigen, kann sich die Suite-Preisgestaltung lohnen. Wenn Sie Barcode-Generierung benötigen und auf ComponentOne gestoßen sind, weil es bei einer Suche aufkam, kaufen Sie hauptsächlich für ein Steuerelement eine Enterprise-UI-Suite.

Das NuGet-Paket ist C1.Win.BarCode für WinForms (mit C1.WPF.BarCode, C1.WinUI.BarCode, und C1.Blazor.BarCode für andere Plattformen) und wird über das ComponentOne Studio-Abonnement lizenziert. Für Entwickler, die Barcode-Funktionalität ohne die vollständige Suite möchten, gibt es keine separate Lizenzstufe nur für Barcodes.

IronBarcode's Preisstruktur ist anders: Es ist eine eigenständige Barcode-Bibliothek mit unbefristeter Lizenzierung, beginnend bei 749 USD für einen einzelnen Entwickler (Lite), 1.499 USD für drei (Plus), 2.999 USD für zehn (Professional) und 5.999 USD für unbegrenzte Entwickler. Es gibt keine Rastersteuerung, keine Diagrammbibliothek, keinen Berichtsdesigner – nur die Barcode-Funktionalität, die Sie suchen.

QR-Code-Anpassung

Beide Bibliotheken unterstützen die QR-Code-Generierung mit Anpassungsoptionen. Der API-Stil unterscheidet sich deutlich.

ComponentOne-Eigenschaftssetter-Ansatz:

// 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 Fluent Chain:

// 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");

Der ComponentOne-Ansatz erfordert die Instanziierung eines C1BarCode-Objekts und das Setzen mehrerer Eigenschaften, bevor GetImage() aufgerufen wird. IronBarcodes QRCodeWriter nutzt eine fließende Kette — jede Operation gibt das Barcode-Objekt zurück, und Sie rufen am Ende .SaveAsPng() auf. Es gibt keine zu verwaltende Instanz.

IronBarcode unterstützt außerdem das Einbetten von Logos in QR-Codes, was C1BarCode nicht bietet:

// 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 verstehen

IronBarcode ist eine eigenständige .NET Barcode-Bibliothek, die sowohl die Generierung als auch das Lesen von Barcodes abdeckt. Es wird von NuGet (dotnet add package IronBarcode) installiert, zielt auf jedes unterstützte .NET TFM ohne Plattformbeschränkungen und läuft auf Windows, Linux, macOS, Docker, Azure und AWS Lambda.

Die Lesefunktion unterstützt PDF-Dokumente nativ:

// 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}");
}

Für Szenarien mit hohem Durchsatz kontrolliert BarcodeReaderOptions den Trade-off zwischen Geschwindigkeit und Genauigkeit sowie die Mehrfach-Barcodedetektion:

// 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);

Die Generation deckt die Standardformate mit einer einheitlichen statischen API ab:

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

// QR-Code-Generierung to byte array (for HTTP response)
byte[] qrBytes = QRCodeWriter.CreateQrCode("https://example.com/order/7734", 400)
    .ToPngBinaryData();

Unterstützte Plattformen: Windows, Linux, macOS, Docker, Azure (App Service und Functions), AWS Lambda. Unterstützte .NET-Versionen: .NET Framework 4.6.2+, .NET Core 3.1+, und .NET 5/6/7/8.

Funktionsvergleich

FeatureMESCIUS ComponentOne C1BarCodeIronBarcode
Barcode-GenerierungJaJa
Barcode-LesungNeinJa
QR-Code-GenerierungJaJa
QR-Logo-EinbettungNeinJa
PDF-Eingabe zum LesenNicht anwendbar (kein Messwert)Ja (Muttersprachler)
.NET-Plattformziel (WinForms/WPF-Ausgaben)net8.0-windowsJedes TFM (net8.0, etc.)
UseWindowsForms erforderlich (WinForms-Ausgabe)JaNein
Linux-/Docker-BereitstellungNur Blazor/ASP.NET MVC-AusgabenJa
macOS-BereitstellungNur Blazor/ASP.NET MVC-AusgabenJa
Azure Functions (Linux)Nur Blazor/ASP.NET MVC-AusgabenJa
Serverseitiger ASP.NET CoreASP.NET Core MVC-AusgabeJa
Eigenständiges NuGet PaketLizenzierte Suite-PaketeJa
EinzelpreisgestaltungNicht anwendbarAb 749 $ (Lite)
Suite -Preise1.299 USD/Entwickler/Jahr Enterprise; 799 USD/Entwickler/Jahr EinzelplattformNicht anwendbar
Fluent-Generierungs-APINein (Eigenschaftssetter)Ja
BarcodeReader.Read()NeinJa
BarcodeWriter.CreateBarcode()NeinJa
QRCodeWriter.CreateQrCode()NeinJa
Unterstützte .NET -Versionen.NET 6+ (Windows for WinForms/WPF).NET Framework 4.6.2+, .NET Core 3.1+, .NET 5–8
Option für eine unbefristete LizenzNein (Abonnement)Ja

API-Mapping-Referenz

Für Teams, die von C1BarCode zu IronBarcode migrieren, gelten folgende direkte Entsprechungen:

ComponentOne C1BarCodeIronBarcode
C1.C1License.Key = "..."IronBarCode.License.LicenseKey = "YOUR-LICENSE-KEY"
new C1BarCode()Statisch – keine Instanz erforderlich
barcode.CodeType = CodeType.Code128BarcodeEncoding.Code128 (als Parameter übergeben)
barcode.Text = "data"Erstes Argument von BarcodeWriter.CreateBarcode()
barcode.BarHeight = 100.ResizeTo(width, 100) im Barcode-Writer
barcode.ModuleSize = 2.ResizeTo() steuert die Größenanpassung in Pixeln
barcode.ForeColor = Color.DarkBlue.ChangeBarCodeColor(Color.DarkBlue)
barcode.BackColor = Color.White.ChangeBackgroundColor(Color.White)
barcode.GetImage().SaveAsPng() / .ToPngBinaryData()
barcode.QRCodeErrorCorrectionLevelQRCodeWriter.QrErrorCorrectionLevel Aufzählung
barcode.QRCodeVersionAutomatisch (oder Versionsparameter)
Keine Lese-APIBarcodeReader.Read(path)
net8.0-windows erforderlichnet8.0 (oder jedes TFM)
UseWindowsForms = true erforderlichNicht erforderlich

Wenn die Teams wechseln

Es entsteht eine Leseanforderung. Dies ist der häufigste Auslöser. Ein Team entwickelt mit C1BarCode eine Barcode-Etikettengenerierung und erhält anschließend die Anforderung, Scans zu überprüfen, eingehende Versanddokumente zu verarbeiten oder QR-Codes aus hochgeladenen Bildern zu dekodieren. C1BarCode kann hier nicht weiterhelfen. Die Alternativen sind: Entweder eine zweite Barcode-Bibliothek zum Lesen hinzufügen oder C1BarCode durch eine Bibliothek ersetzen, die beides unterstützt.

Bei der Bereitstellung unter Linux oder Docker besteht diese Einschränkung nicht. Eine WinForms-Desktopanwendung, die für Windows-Desktops ausgeliefert wird, unterliegt dieser Einschränkung nicht. Eine ASP.NET Core API, die Barcode-Bilder generiert, tut dies – insbesondere wenn sie in einem Linux-Container ausgeführt oder in Azure App Service unter Linux bereitgestellt werden muss. Das net8.0-windows-Ziel-Framework blockiert sofort diese Bereitstellungsoptionen.

Microservice- oder serverlose Architektur. Azure Functions, AWS Lambda und containerisierte Microservices sind Linux-first. Ein Barcode-Generierungsdienst, der nicht unter Linux bereitgestellt werden kann, ist kein praktikabler Microservice.

Kosten des Suite -Abonnements im Vergleich zum Anforderungsumfang. Teams, die für ComponentOne Studio Enterprise bezahlen und bereits dessen Raster, Diagramme und andere Steuerelemente nutzen, haben das Abonnement bereits gerechtfertigt. Teams, die hauptsächlich oder ausschließlich für die Barcode-Generierung abonniert haben, zahlen für mehr als 100 Kontrollfunktionen, die sie nicht nutzen. Die Abonnementkosten pro Entwickler steigen mit der Teamgröße.

Bevorzugt wird eine unbefristete Lizenz. ComponentOne Studio ist nur im Abonnement erhältlich. Eine unbefristete Lizenzoption gibt es nicht. Für Teams, die es vorziehen, die Software zu besitzen, die sie ausliefern – insbesondere aus Compliance- oder langwierigen Wartungsgründen – ist IronBarcode's unbefristete Lizenzierung (beginnt bei 749 USD Lite) strukturell anders.

Abschluss

C1BarCode generiert Barcodes sauber im WinForms-Kontext. Genau das kann es gut, und für eine WinForms-Desktopanwendung, die nur die Generierung von Labels unter Windows benötigt, ist es eine funktionale Wahl innerhalb der ComponentOne- Suite.

Der Umfang endet hier. Kein Lesezugriff, Bereitstellung nur unter Windows, kein eigenständiges Paket, Abonnementlizenzierung. Wenn die Anforderungen eines Projekts über die WinForms-Generierung unter Windows hinausgehen – z. B. eine Leseanforderung, ein Linux-Bereitstellungsziel, eine Web-API, ein Docker-Container, eine Cloud-Funktion –, kann C1BarCode diese nicht abdecken. IronBarcode deckt sowohl die Generierung als auch das Lesen von Barcodes ab, läuft auf jeder von .NET unterstützten Plattform und ist als eigenständiges Paket ohne Abonnement einer Enterprise Suite mit 100 Steuerelementen erhältlich.

Curtis Chau
Technischer Autor

Curtis Chau hat einen Bachelor-Abschluss in Informatik von der Carleton University und ist spezialisiert auf Frontend-Entwicklung mit Expertise in Node.js, TypeScript, JavaScript und React. Leidenschaftlich widmet er sich der Erstellung intuitiver und ästhetisch ansprechender Benutzerschnittstellen und arbeitet gerne mit modernen Frameworks sowie der Erstellung gut strukturierter, optisch ansprechender Handbücher.

...
Weiterlesen

Verwandte Artikel

Key in blue circle

Holen Sie sich sofort Ihren kostenlosen 30-Tage-Testschlüssel.

Your trial license will be sent to your email address

Keine Einschränkungen. 100 % freigeschaltet. Keine Kreditkarte.

bullet_checkedIhr Testlizenzschlüssel wurde Ihnen per E-Mail gesendet.Keine Einschränkungen. 100 % freigeschaltet. Keine Kreditkarte.
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
AWS-Logo
Booking Badge

Von Millionen von Ingenieur*innen weltweit vertraut

Azure (WebApps, Funktionen v3)
Erhalten Sie Ihre unverbindliche Beratung
Füllen Sie das Formular unten aus oder senden Sie eine E-Mail an sales@ironsoftware.com
Ihre Daten werden immer vertraulich behandelt.
Von Millionen von Ingenieur*innen weltweit vertraut
Azure (WebApps, Funktionen v3)
Erhalten Sie sofort Ihren kostenlosen 30-Tage-Testschlüssel.
Ihr Testlizenzschlüssel wurde Ihnen per E-Mail gesendet.