IRONSOFTWAREHOME
MIT ANDEREN KOMPONENTEN VERGLEICHEN

DevExpress BarCodevs IronBarcode: UI-Steuerelement vs Selbstständige Bibliothek

Curtis Chau
Curtis Chau
Updated: 26. April 2026

DevExpress ist ein angesehenes .NET UI-Toolkit. Die Raster-, Planungs-, Diagramm- und Pivot-Tabelle-Steuerelemente werden häufig von Enterprise-Teams verwendet. Die Barcode-Unterstützung ist jedoch eine andere Geschichte. DevExpress liefert ein BarCodeControl — eine WinForms-Steuerung und ein Blazor-DxBarCode-Tag — mit dem Sie einen Barcode auf ein Formular rendern können. DevExpress Support hat bestätigt, dass keine Lesefähigkeit existiert und es keine aktuellen Pläne gibt, sie hinzuzufügen. Wenn sich Ihre Barcodes in einem Hintergrundprozess, einer Web-API, einem PDF-Dokument oder einer Umgebung ohne Benutzeroberfläche befinden, ist diese Regelung nicht anwendbar.

Diese Einschränkung beschränkt das Barcode-Angebot von DevExpress auf eine spezifische Nische: die visuelle Darstellung eines Barcodes innerhalb einer DevExpress WinForms- oder Blazor -Benutzeroberfläche. Für diesen speziellen Anwendungsfall funktioniert es einwandfrei. Für alles andere – serverseitige Generierung, Einlesen von Bildern oder PDFs, Headless-Verarbeitung in Azure Functions oder Docker-Containern – benötigen Sie ein anderes Tool.

DevExpress Barcode-Steuerelemente verstehen

DevExpress BarCodeControl befindet sich in DevExpress.XtraEditors, mit seinen Symbologie-Generator-Klassen in DevExpress.XtraPrinting.BarCode. Es handelt sich nicht um eine eigenständige Bibliothek. Es ist im DXperience-Paket gebündelt, das bei 1.699,99 $ pro Jahr beginnt (Universal-Abonnements sind 2.299,99 $). Es gibt kein separates NuGet -Paket, das ausschließlich Barcodes enthält und das Sie installieren können.

Das BarCodeControl ist eine WinForms-Steuerung. Man konfiguriert es mit einem Symbolisierungsobjekt, legt Eigenschaften fest, und es wird auf dem Bildschirm gerendert. Um diese Wiedergabe in eine Datei zu speichern, muss DrawToBitmap aufgerufen werden, das erwartet, dass ein vorab zugewiesenes Bitmap der richtigen Größe bereitgestellt wird:

// DevExpress WinForms: UI control, not a library
using DevExpress.XtraEditors;              // BarCodeControl
using DevExpress.XtraPrinting.BarCode;     // Code128Generator, etc.
using System.Drawing;
using System.Drawing.Imaging;

var barCode = new BarCodeControl();
var symbology = new Code128Generator();
symbology.CharacterSet = Code128CharacterSet.CharsetAuto;
barCode.Symbology = symbology;
barCode.Text = "ITEM-12345";
barCode.Module = 0.02f;  // document units, not pixels
barCode.ShowText = true;

// File output requires DrawToBitmap — you must size the Bitmap manually
barCode.Width = 400;
barCode.Height = 100;
var bitmap = new Bitmap(barCode.Width, barCode.Height);
barCode.DrawToBitmap(bitmap, new Rectangle(0, 0, barCode.Width, barCode.Height));
bitmap.Save("barcode.png", ImageFormat.Png);
bitmap.Dispose();

Beachten Sie hier mehrere Reibungspunkte. Erstens ist barCode.Module in Dokumenteinheiten und nicht in Pixeln, was zu einem Missverhältnis führt, wenn Sie in Pixelmaßen denken. Zweitens müssen Sie die endgültige Pixelgröße kennen, bevor das Bitmap zugewiesen wird. Drittens erfordert das Steuerelement das Laden der WinForms-Assemblys – das bedeutet, dass eine minimale ASP.NET Core -API oder ein Konsolen-Hintergrunddienst die Windows Forms-Infrastruktur laden muss, nur um ein Barcode-Bild zu generieren.

Das Blazor-DxBarCode-Tag ist konzeptionell ähnlich, ist jedoch eine Razor-Komponente für die UI-Darstellung und keine serverseitige Generierungs-API.

Keine Lesefähigkeit

DevExpress vertritt offiziell die Position, dass sie keine Barcode-Erkennungs- oder Scanfunktionen anbieten. Das DevExpress Support Center erklärt: "DevExpress BarCode-Steuerelement ist nur für die Barcode-Generierung ausgelegt. Wir bieten keine Barcode-Erkennungs-/Scan-Funktionalität an." Es gibt keine aktuellen Pläne, dies hinzuzufügen.

Für Teams, die mit einer DevExpress WinForms-Anwendung beginnen und später die Anforderung erhalten, einen Barcode aus einem hochgeladenen Bild zu scannen oder einen QR-Code aus einem PDF-Anhang zu lesen, bietet die DevExpress-Toolbox keine ausreichende Unterstützung. Sie benötigen eine separate Bibliothek zum Lesen dieser Daten, was die Frage aufwirft, ob die Generierungsseite aus Gründen der API-Konsistenz ebenfalls auf diese Bibliothek umsteigen sollte.

IronBarcode verarbeitet beide Richtungen:

// IronBarcode reading — works on images, PDFs, and byte arrays
// NuGet: dotnet add package IronBarcode
using IronBarCode;

var results = BarcodeReader.Read("scanned-label.png");
foreach (var result in results)
{
    Console.WriteLine($"Format: {result.Format}");
    Console.WriteLine($"Value: {result.Value}");
}

Zum Lesen einer PDF-Datei werden keine zusätzlichen Bibliotheken benötigt:

// Reading barcodes from a PDF — no PdfiumViewer or similar required
var pdfResults = BarcodeReader.Read("shipping-manifest.pdf");
foreach (var result in pdfResults)
{
    Console.WriteLine($"Page barcode: {result.Value}");
}

Das Problem der Suite -Bundling

Die Barcode-Komponenten von DevExpress werden nicht als eigenständiges Produkt verkauft. Um BarCodeControl in einem beliebigen Projekt zu verwenden, benötigt Ihr Team ein DevExpress-Abonnement — die ASP.NET & Blazor-Stufe beginnt bei $1.099,99/Jahr, DXperience (WinForms + WPF) kostet $1.699,99/Jahr und Universal kostet $2.299,99/Jahr. Die Suite umfasst Grid, Chart, Scheduler, Pivot und viele weitere Steuerelemente – was sinnvoll ist, wenn Sie eine vollständige DevExpress WinForms- oder Blazor -Anwendung erstellen. Wenn Sie die Barcode-Generierung nur für einen Backend-Service benötigen, bezahlen Sie für ein komplettes UI-Toolkit, das der Service nie nutzen wird.

IronBarcode ist ein eigenständiges Paket:

dotnet add package IronBarcode
SHELL

Die unbefristete Lite Lizenz ist ab 749 US-Dollar für einen Entwickler erhältlich. Es ist kein UI-Toolkit enthalten. Sie erhalten Barcode-Generierung und -Lesung, plattformübergreifende Unterstützung und nichts anderes, was Sie nicht angefordert haben.

Einschränkung der Nutzung im Headless-Modus

Das grundlegende Problem mit BarCodeControl in serverseitigen Szenarien ist, dass es sich um eine WinForms-Steuerung handelt. In einem .NET 6+ ASP.NET Core Minimal-API-Projekt werden WinForms-Assemblys nicht standardmäßig referenziert. Um BarCodeControl zu instanziieren, muss Ihr API-Projekt entweder Windows explizit anvisieren und die Windows Forms-Laufzeit laden, oder Umgehungsverweise hinzufügen, die UI-Infrastrukturen einbeziehen, die Ihre API nie rendern wird.

Bei einem Azure Functions-Verbrauchsplan gibt es überhaupt keine Benutzeroberfläche. In einem Docker-Container, der ein Linux-Basisimage ausführt, können die Windows Forms GDI+-Abhängigkeiten vollständig fehlen. DevExpress unterstützt die Nutzung von BarCodeControl in diesen kopflosen Umgebungen nicht offiziell.

IronBarcode verwendet eine vollständig programmatische, statische API:

// IronBarcode: works in WinForms, ASP.NET Core, Azure Function, console — same code
// NuGet: dotnet add package IronBarcode
using IronBarCode;

BarcodeWriter.CreateBarcode("ITEM-12345", BarcodeEncoding.Code128)
    .SaveAsPng("barcode.png");

Dieser Aufruf funktioniert in einer Konsolenanwendung, einem ASP.NET Core -Controller, einer Azure-Funktion, die durch eine Service Bus-Nachricht ausgelöst wird, oder einem Docker-Container, der unter Linux ausgeführt wird. Die API ändert sich nicht zwischen verschiedenen Umgebungen. Es besteht keine Abhängigkeit von der UI-Assembly.

Ein ASP.NET Core Endpunkt, der einen Barcode als PNG-Datei zurückgibt, sieht folgendermaßen aus:

app.MapGet("/barcode/{sku}", (string sku) =>
{
    var bytes = BarcodeWriter.CreateBarcode(sku, BarcodeEncoding.Code128)
        .ResizeTo(400, 100)
        .ToPngBinaryData();

    return Results.File(bytes, "image/png");
});

Es gibt kein gleichwertiges Muster für BarCodeControl ohne wesentliche Umgehungen.

IronBarcode verstehen

IronBarcode ist eine eigenständige .NET Bibliothek zum Generieren und Lesen von Barcodes. Die API ist vollständig statisch – keine zu verwaltenden Instanzen, kein Lebenszyklus der Steuerung, keine Abhängigkeit von der Benutzeroberfläche. Generierung und Lesen erfolgen im selben Anruf:

// NuGet: dotnet add package IronBarcode
using IronBarCode;

// Generate Code 128
BarcodeWriter.CreateBarcode("ORDER-9921", BarcodeEncoding.Code128)
    .ResizeTo(450, 120)
    .SaveAsPng("order-label.png");

// Generate and get bytes (for HTTP responses, blob storage, etc.)
byte[] pngBytes = BarcodeWriter.CreateBarcode("ORDER-9921", BarcodeEncoding.Code128)
    .ResizeTo(450, 120)
    .ToPngBinaryData();

// Read from an image file
var results = BarcodeReader.Read("order-label.png");
Console.WriteLine(results.First().Value); // ORDER-9921

Die Lizenzaktivierung erfolgt in einer einzigen Zeile beim Start:

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

Kein Netzwerkanruf. Kein Standardcode für die Fehlerbehandlung. Lokale Validierung.

QR-Code nebeneinander

QR-Codes veranschaulichen die API-Lücke zwischen einem UI-Steuerelement und einer programmatischen Bibliothek.

DevExpress QR-Code – WinForms-Steuerelement:

// DevExpress: QR via BarCodeControl + QRCodeGenerator symbology
using DevExpress.XtraEditors;              // BarCodeControl
using DevExpress.XtraPrinting.BarCode;     // QRCodeGenerator + QRCodeErrorCorrectionLevel

var barCode = new BarCodeControl();
var symbology = new QRCodeGenerator();
symbology.ErrorCorrectionLevel = QRCodeErrorCorrectionLevel.H;
symbology.CompactionMode = QRCodeCompactionMode.AlphaNumeric;
barCode.Symbology = symbology;
barCode.Text = "https://example.com";
barCode.Width = 500;
barCode.Height = 500;

var bitmap = new Bitmap(barCode.Width, barCode.Height);
barCode.DrawToBitmap(bitmap, new Rectangle(0, 0, barCode.Width, barCode.Height));
bitmap.Save("qr.png", ImageFormat.Png);
bitmap.Dispose();

IronBarcode QR-Code – gleiches Ergebnis, keine UI-Zusammenstellung erforderlich:

// IronBarcode: QR in one method chain
QRCodeWriter.CreateQrCode("https://example.com", 500, QRCodeWriter.QrErrorCorrectionLevel.Highest)
    .SaveAsPng("qr.png");

Hinzufügen eines Markenlogos in der Mitte des QR-Codes:

QRCodeWriter.CreateQrCode("https://example.com", 500, QRCodeWriter.QrErrorCorrectionLevel.Highest)
    .AddBrandLogo("company-logo.png")
    .SaveAsPng("qr-branded.png");

DevExpress bietet keine vergleichbare Funktion für eingebettete Logos. Das Steuerelement erzeugt einen Standard-QR-Code und nichts weiter.

Funktionsvergleich

FeatureDevExpress BarCodeIronBarcode
Barcode-GenerierungJa (WinForms-Steuerelement, Blazor Tag)Ja (programmatische API, alle Umgebungen)
Barcode-Lesen / ScannenNein – offiziell bestätigtJa – Bilder, PDFs, Byte-Arrays
PDF-Barcode-LesenNeinJa – nativ, keine zusätzliche Bibliothek
Eigenständiges NuGet PaketNein – DXperience- Suite erforderlichJa — nur IronBarcode
Suite KostenVon 1.099,99 $/Jahr (ASP.NET & Blazor) bis zu 2.299,99 $/Jahr (Universal)Nicht verfügbar — eigenständige
LizenzkostenNur AbonnementUnbefristet ab $999
ASP.NET Core / Minimale APIErfordert WinForms-WorkaroundsNative Unterstützung
Azure FunctionsNicht unterstützt kopflosVolle Unterstützung
Docker / LinuxGDI+-Probleme auf Linux-Basis-ImagesVolle Unterstützung
KonsolenanwendungenErfordert das Laden der WinForms-Assembly.Native Unterstützung
QR-Code-GenerierungJa (mittels QRCodeGenerator-Symbologie)Ja (QRCodeWriter)
QR-Code mit eingebettetem LogoNeinJa — .AddBrandLogo()
QR-FehlerkorrekturebenenH, Q, M, LHöchste, Hoch, Mittel, Niedrige
Code 128JaJa
DatenmatrixJaJa
PDF417JaJa
aztekischJaJa
DateiausgabeDrawToBitmap – manuelle Bitmap-Zuweisung.SaveAsPng(), .SaveAsGif(), .SaveAsSvg()
Binäre Ausgabe (HTTP-Antwort)Manuelle Bitmap → MemoryStream.ToPngBinaryData()
Multithread-LesenN/A — keine LesungMaxParallelThreads = 4
Mehrfach-Barcode-LesungN/A — keine LesungExpectMultipleBarcodes = true
PlattformenWindows (WinForms / Blazor)Windows, Linux, macOS, Docker, Azure, AWS Lambda
.NET -Versionsunterstützung.NET Framework + modernes .NET (Windows).NET Framework 4.6.2 bis aktuelles .NET

API-Mapping-Referenz

Teams, die mit dem DevExpress-BarCodeControl-Muster vertraut sind, werden diese Entsprechungen nützlich finden:

DevExpress BarCodeIronBarcode
new BarCodeControl()Statisch – keine Instanz erforderlich
new Code128Generator() + barCode.Symbology = symbologyBarcodeEncoding.Code128 als Parameter übergeben
new QRCodeGenerator() + QRCodeErrorCorrectionLevel.HQRCodeWriter.CreateQrCode("data", 500, QRCodeWriter.QrErrorCorrectionLevel.Highest)
new DataMatrixGenerator() + DataMatrixSize.Matrix26x26BarcodeWriter.CreateBarcode("data", BarcodeEncoding.DataMatrix)
new PDF417Generator()BarcodeWriter.CreateBarcode("data", BarcodeEncoding.PDF417)
new AztecGenerator()BarcodeWriter.CreateBarcode("data", BarcodeEncoding.Aztec)
barCode.Module = 0.02f (Dokumenteinheiten).ResizeTo(width, height) (Pixel)
barCode.ShowText = true.AddBarcodeText()
DrawToBitmap(bitmap, rect) — manuelle Bitmap-Zuweisung.SaveAsPng(path) — handhabt die Größenanpassung automatisch
Manuelles BitmapMemoryStream für HTTP-Antwort.ToPngBinaryData()
Keine Lese-APIBarcodeReader.Read(imagePath)
Kein Leseergebnistyp.Value (String), .Format (BarcodeEncoding)
UI-Assembly wird in jedem Projekt benötigtFunktioniert in jedem .NET Projekttyp
Nur in Suite (ab 1.099,99 $/Jahr)Einzelnutzung (ab 749 $ unbefristet)

Wenn die Teams wechseln

Mehrere spezifische Szenarien lösen üblicherweise den Wechsel von DevExpress-Barcode-Steuerelementen zu IronBarcode aus.

Eine neue Leseanforderung kommt hinzu. Das häufigste Szenario ist eine WinForms-Anwendung, die seit Jahren Barcodes generiert, und nun kommt eine neue Funktionsanforderung: Die Anwendung muss jetzt Barcodes von hochgeladenen Bildern oder Kameraaufnahmen scannen oder überprüfen. DevExpress verfügt über keine Lese-API. Das Team benötigt ohnehin eine neue Bibliothek, und es macht Sinn, die Generierung in derselben Bibliothek zu konsolidieren.

Ein Team entwickelt einen Microservice, der Barcode-Etiketten bedarfsgesteuert generiert – aufgerufen von einem Web-Frontend, einer mobilen App oder einem anderen Dienst. Das ASP.NET ASP.NET Core Projekt hat keine WinForms-Abhängigkeit, und das Team möchte auch keine hinzufügen. Die statische API von IronBarcode lässt sich ohne zusätzlichen UI-Aufbau in einen HTTP-Endpunkt integrieren.

Azure Function- oder Lambda-Bereitstellung. Serverlose Bereitstellungen verwenden häufig Linux-Basisimages und minimale Laufzeitumgebungen. BarCodeControl ist nicht für diese Umgebung ausgelegt. IronBarcode läuft auf Linux, in Docker-Containern, in Azure Functions und in AWS Lambda ohne Konfigurationsänderungen.

Kosten für die Suite-Verlängerung für ein einzelnes Feature. Wenn die Verlängerung ansteht und ein Team überprüft, was es tatsächlich von der DXperience-Suite verwendet, führt das Entdecken, dass die einzige DevExpress-Komponente in einem bestimmten Dienst BarCodeControl ist, zu einer Kostenkonversation. Eine volle DXperience-Abonnementgebühr ($1.699,99/Jahr neu, $849,99/Jahr bei Erneuerung) für die Barcode-Generierung zu zahlen, wenn eine eigenständige Bibliothek $999 dauerhaft kostet, ist schwer zu rechtfertigen.

Mehrfach-Barcode-Lesen aus PDFs. Dokumentenverarbeitungs-Workflows – das Lesen von Barcodes aus Rechnungs-PDFs, Versandmanifesten oder gescannten Formularen – erfordern sowohl PDF-Unterstützung als auch Lesefähigkeit. IronBarcode liest direkt aus PDF-Dateien ohne zusätzliche Bibliothek. DevExpress bietet keine dieser Funktionen.

Abschluss

DevExpress' Barcode-Angebot lässt sich am besten als UI-Rendering-Funktion verstehen, die in ein UI-Toolkit integriert ist. Wenn Ihre Anwendung eine WinForms- oder Blazor-Anwendung ist, die bereits DevExpress für ihre Gitter- und Diagrammsteuerelemente verwendet, und Ihr einziger Barcode-Bedarf darin besteht, einen Barcode visuell auf einem Formular anzuzeigen, ist das BarCodeControl eine vernünftige Wahl — Sie haben bereits die Lizenz.

In dem Moment, in dem Sie eines der folgenden benötigen, hört BarCodeControl auf, das richtige Werkzeug zu sein: Barcodes lesen, Barcodes in einem serverseitigen Kontext generieren, in einer kopflosen Umgebung arbeiten, unter Linux arbeiten oder ohne eine WinForms-Assembly-Referenz auskommen. Der DevExpress-Support hat bestätigt, dass keine Lesefunktion vorhanden ist und auch keine Pläne bestehen, diese hinzuzufügen. Die Einschränkung bei der Bildschirmausgabe ist architektonischer Natur und kein Konfigurationsproblem. Ein UI-Steuerelement ist ein UI-Steuerelement.

IronBarcode wurde für die programmatische Barcode-Verarbeitung entwickelt – Generierung und Auslesen über eine statische API, in jeder Umgebung und auf jeder Plattform. Die beiden Werkzeuge lösen unterschiedliche Probleme. DevExpress-Barcodes dienen der Darstellung innerhalb eines Formulars. IronBarcode dient der Verarbeitung von Barcodes im Code.

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.