フッターコンテンツにスキップ
他のコンポーネントと比較する

BarcodeScanning.MAUI vs IronBarcode:C#バーコードライブラリの比較

DevExpress バーコード vs IronBarcode: UI制御 vs スタンドアロンライブラリ

DevExpressは、高く評価されている.NET UIツールキットです。 グリッド、スケジューラ、チャート、ピボットテーブルコントロールはエンタープライズチームによって広く使用されています。 しかし、バーコードのサポートに関しては話は別です。 DevExpressはDxBarCodeタグを提供しており、フォームにバーコードをレンダリングすることができます。 DevExpressサポートは、読み取り機能が存在しないことを確認しており、それを追加する計画は現在ありません。 バーコードがバックグラウンドジョブ、Web API、PDFドキュメント、またはUIフォームが使用されていない環境に存在する場合、この制御は適用されません。

この制約により、DevExpressのバーコード関連製品は、DevExpressのWinFormsまたはBlazorのUI内でバーコードを視覚的に表示するという特定のニッチな分野に限定される。 そのニッチな用途であれば問題なく機能します。しかし、それ以外の用途、例えばサーバーサイドでの生成、画像やPDFからの読み込み、Azure FunctionsやDockerコンテナでのヘッドレス処理などには、別のツールが必要です。

DevExpressバーコードコントロールの理解

DevExpress DevExpress.XtraPrinting.BarCodeにあります。 これは単体で動作するライブラリではありません。 この製品はDXperienceスイートにバンドルされており、価格は年間$1,699.99からです(ユニバーサルサブスクリプションは$2,299.99です)。 バーコード専用のNuGetパッケージは別途提供されていません。

BarCodeControlはWinFormsコントロールです。 シンボルオブジェクトを設定してプロパティを設定すると、画面に表示されます。 そのレンダリングをファイルに保存するにはBitmapが必要です。

// 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();
// 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();
Imports DevExpress.XtraEditors
Imports DevExpress.XtraPrinting.BarCode
Imports System.Drawing
Imports System.Drawing.Imaging

Dim barCode As New BarCodeControl()
Dim symbology As 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
Dim bitmap As 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()
$vbLabelText   $csharpLabel

ここにはいくつかの摩擦点があることに注目してください。 まず、barCode.Moduleはドキュメント単位であり、ピクセル単位で考えると不一致が生じます。 次に、Bitmapを割り当てる前に最終的なピクセルサイズを知る必要があります。 第三に、このコントロールはWinFormsアセンブリの読み込みを必要とします。つまり、 ASP.NET Coreの最小限のAPIまたはコンソールのバックグラウンドサービスは、バーコード画像を生成するためだけにWindows Formsインフラストラクチャを読み込む必要があるということです。

BlazorのDxBarCodeタグは概念的には類似していますが、UIレンダリングのためのRazorコンポーネントであって、サーバーサイド生成APIではありません。

読解機能なし

DevExpressの公式見解は、バーコード認識機能やスキャン機能は提供していないというものです。 DevExpressサポートセンターは"DevExpress BarCodeコントロールはバーコード生成専用に設計されています。"と述べています。 "バーコードの認識/スキャン機能は提供していません。"それを追加する計画は現時点でありません。

DevExpress WinFormsアプリケーションから開発を開始したチームが、後からアップロードされた画像からバーコードをスキャンしたり、PDF添付ファイルからQRコードを読み取ったりする必要が生じた場合、DevExpressツールボックスでは対応できません。読み取り処理には別のライブラリを導入する必要があり、APIの一貫性を保つために生成側もそのライブラリに移行すべきかどうかという疑問が生じます。

IronBarcodeは双方向に対応しています。

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

' IronBarcode reading — works on images, PDFs, and byte arrays
' NuGet: dotnet add package IronBarcode

Dim results = BarcodeReader.Read("scanned-label.png")
For Each result In results
    Console.WriteLine($"Format: {result.Format}")
    Console.WriteLine($"Value: {result.Value}")
Next
$vbLabelText   $csharpLabel

PDFファイルの読み込みには、追加のライブラリは一切必要ありません。

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

' Reading barcodes from a PDF — no PdfiumViewer or similar required
Dim pdfResults = BarcodeReader.Read("shipping-manifest.pdf")
For Each result In pdfResults
    Console.WriteLine($"Page barcode: {result.Value}")
Next
$vbLabelText   $csharpLabel

Suiteバンドルの問題

DevExpressのバーコードコンポーネントは、単体製品としては販売されていません。 任意のプロジェクトでBarCodeControlを使用するには、DevExpressのサブスクリプションが必要です。ASP.NET & Blazorティアは年額$1,099.99から始まり、DXperience(WinForms + WPF)は年額$1,699.99、Universalは年額$2,299.99です。 このSuiteには、グリッド、チャート、スケジューラー、ピボット、その他多くのコントロールが含まれています。これは、DevExpress WinFormsまたはBlazorアプリケーションを本格的に構築する場合に妥当な構成です。 バックエンドサービスでのみバーコード生成が必要な場合、そのサービスでは決して使用されないUIツールキット全体に料金を支払うことになります。

IronBarcodeはスタンドアロンパッケージです。

dotnet add package IronBarcode
dotnet add package IronBarcode
SHELL

永久ライセンスのLite版は、開発者1名につき749ドルからとなっています。 UIツールキットは同梱されていません。 バーコードの生成と読み取り、クロスプラットフォーム対応、そしてあなたが要求していないその他の機能は一切含まれていません。

ヘッドレス使用の制限

サーバーサイドシナリオでのBarCodeControlの根本的な問題は、WinFormsコントロールであるということです。 .NET 6以降のASP.NET Coreの最小限のAPIプロジェクトでは、WinFormsアセンブリはデフォルトでは参照されません。 BarCodeControlをインスタンス化するには、APIプロジェクトが明示的にWindowsをターゲットにしてWindows Formsランタイムをロードするか、APIが決してレンダリングしないUIインフラストラクチャを引き込む回避策の参照を追加する必要があります。

Azure Functionsの従量課金プランでは、UIレイヤーは一切存在しません。 Linuxベースイメージを実行するDockerコンテナでは、Windows Forms GDI+の依存関係が完全に欠落している場合があります。 DevExpressはこれらのヘッドレス環境でのBarCodeControlの使用を公式にサポートしていません。

IronBarcodeは、完全にプログラム可能な静的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");
// 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");
Imports IronBarCode

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

BarcodeWriter.CreateBarcode("ITEM-12345", BarcodeEncoding.Code128) _
    .SaveAsPng("barcode.png")
$vbLabelText   $csharpLabel

この呼び出しは、コンソールアプリケーション、 ASP.NET Coreコントローラー、Service BusメッセージによってトリガーされるAzure Functions、またはLinux上で実行されるDockerコンテナのいずれでも正常に動作します。 APIは環境間で変更されません。 UIアセンブリへの依存関係はありません。

ASP.NET Coreのエンドポイントで、バーコードをPNGファイルとしてレスポンスとして返す例は次のようになります。

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

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

    return Results.File(bytes, "image/png");
});
Imports Microsoft.AspNetCore.Builder
Imports Microsoft.AspNetCore.Http

app.MapGet("/barcode/{sku}", Function(sku As String)
                                Dim bytes = BarcodeWriter.CreateBarcode(sku, BarcodeEncoding.Code128) _
                                    .ResizeTo(400, 100) _
                                    .ToPngBinaryData()

                                Return Results.File(bytes, "image/png")
                             End Function)
$vbLabelText   $csharpLabel

大幅な回避策なしではBarCodeControlと同等のパターンはありません。

IronBarcodeを理解する

IronBarcodeは、バーコードの生成と読み取りを行うためのスタンドアロン for .NETライブラリです。 APIは完全に静的です。管理すべきインスタンスはなく、制御ライフサイクルもなく、UIへの依存もありません。 生成と読み込みはどちらも同じ呼び出しで行われます。

// 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
// 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
Imports 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.)
Dim pngBytes As Byte() = BarcodeWriter.CreateBarcode("ORDER-9921", BarcodeEncoding.Code128) _
    .ResizeTo(450, 120) _
    .ToPngBinaryData()

' Read from an image file
Dim results = BarcodeReader.Read("order-label.png")
Console.WriteLine(results.First().Value) ' ORDER-9921
$vbLabelText   $csharpLabel

ライセンス認証は起動時に1行で行います。

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

IronBarCode.License.LicenseKey = "YOUR-LICENSE-KEY"
$vbLabelText   $csharpLabel

ネットワーク呼び出しなし。 エラー処理の定型コードは一切不要です。 ローカル検証。

QRコード並列表示

QRコードは、UIコントロールとプログラムライブラリ間のAPIのギャップを象徴的に示している。

DevExpress QRコード - WinFormsコントロール:

// 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();
// 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();
Imports DevExpress.XtraEditors ' BarCodeControl
Imports DevExpress.XtraPrinting.BarCode ' QRCodeGenerator + QRCodeErrorCorrectionLevel
Imports System.Drawing
Imports System.Drawing.Imaging

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

Dim bitmap As 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()
$vbLabelText   $csharpLabel

IronBarcode QRコード — 同じ結果が得られ、UIアセンブリは不要です。

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

QRコードの中央にブランドロゴを追加する:

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

DevExpressには、埋め込みロゴに相当する機能はありません。 このコントロールは標準的なQRコードを表示するだけで、それ以上の機能は提供しません。

機能比較

フィーチャー DevExpress バーコード IronBarcode
バーコード生成 はい(WinFormsコントロール、 Blazorタグ) はい(プログラムによるAPI、全環境)
バーコードの読み取り/スキャン いいえ、公式に確認済みです はい、画像、PDF、バイト配列
PDFバーコード読み取り なし はい、ネイティブで、追加ライブラリは不要です。
スタンドアロンNuGetパッケージ いいえ — DXperienceSuiteは不要です はい、IronBarcodeのみ
Suite料金 $1,099.99/年(ASP.NET & Blazor)〜$2,299.99/年(ユニバーサル)から 該当なし — スタンドアロン
ライセンス費用 サブスクリプションのみ 永久翻訳 $749より
ASP.NET Core / 最小限のAPI WinFormsの回避策が必要です ネイティブサポート
Azureファンクション ヘッドレスモードではサポートされていません フルサポート
Docker(Docker)/ Linux(リナックス) LinuxベースイメージにおけるGDI+の問題 フルサポート
コンソールアプリケーション WinFormsアセンブリの読み込みが必要です ネイティブサポート
QRコード生成 はい(QRコードジェネレーターのシンボル体系による) はい(QRコードライター)
ロゴが埋め込まれたQRコード なし はい — .AddBrandLogo()
QRコードのエラー訂正レベル H、Q、M、L 最高、高、中、低
コード128 はい はい
データマトリックス はい はい
PDF417 はい はい
アステカ はい はい
ファイル出力 DrawToBitmap — 手動ビットマップ割り当て .SaveAsPng()、.SaveAsGif()、.SaveAsSvg()
バイナリ出力(HTTPレスポンス) 手動ビットマップ → メモリストリーム .ToPngBinaryData()
マルチスレッド読み取り 該当なし — 読書なし MaxParallelThreads = 4
複数バーコード読み取り 該当なし — 読書なし ExpectMultipleBarcodes = true です。
プラットフォーム Windows (WinForms / Blazor) Windows、Linux、macOS、Docker、Azure、AWS Lambda
.NETバージョンのサポート .NET Framework + 最新 for .NET (Windows) .NET Framework 4.6.2から現在 for .NET

APIマッピングリファレンス

DevExpress BarCodeControl パターンに精通したチームにとって、これらの等価性は有用です。

DevExpress バーコード IronBarcode
new BarCodeControl() 静的 — インスタンスは不要
new Code128Generator() + barCode.Symbology = symbology BarcodeEncoding.Code128 パラメータとして渡される
new QRCodeGenerator() + QRCodeErrorCorrectionLevel.H QRCodeWriter.CreateQrCode("data", 500, QRCodeWriter.QrErrorCorrectionLevel.Highest)
new DataMatrixGenerator() + DataMatrixSize.Matrix26x26 BarcodeWriter.CreateBarcode("data", BarcodeEncoding.DataMatrix)
new PDF417Generator() BarcodeWriter.CreateBarcode("data", BarcodeEncoding.PDF417)
new AztecGenerator() BarcodeWriter.CreateBarcode("data", BarcodeEncoding.Aztec)
barCode.Module = 0.02f (文書単位) .ResizeTo(width, height) (ピクセル)
barCode.ShowText = true .AddBarcodeText()
DrawToBitmap(bitmap, rect) — 手動のBitmap割り当て .SaveAsPng(path) — サイズを自動的に処理
手動のBitmapMemoryStreamをHTTP応答のために .ToPngBinaryData()
読み取りAPIはありません BarcodeReader.Read(imagePath)
読み取り結果型なし .Value (文字列), .Format (BarcodeEncoding)
すべてのプロジェクトでUIアセンブリが必要です あらゆるタイプ for .NETプロジェクトで動作します
スイート専用($1,099.99/年から) 単体版(永久ライセンス749ドル~)

チームが切り替わるとき

DevExpressのバーコード制御からIronBarcodeへの移行を促す具体的なシナリオはいくつかあります。

読み取り要件が発生します。最も一般的なシナリオは、長年バーコードを生成してきたWinFormsアプリケーションに、新しい機能要求が届く場合です。アプリケーションは、アップロードされた画像やカメラで撮影した画像からバーコードをスキャンまたは検証する必要があります。 DevExpressには読み取りAPIがありません。 いずれにせよ、チームには新しいライブラリが必要であり、生成処理を同じライブラリに統合するのは理にかなっている。

Web APIエンドポイントの必要性。チームは、Webフロントエンド、モバイルアプリ、または他のサービスから呼び出されるオンデマンドでバーコードラベルを生成するマイクロサービスを構築しています。ASP.NET ASP.NET CoreプロジェクトにはWinFormsへの依存関係はなく、チームはWinFormsへの依存関係を追加したくありません。 IronBarcodeの静的APIは、UIアセンブリの余計な要素を一切含まず、HTTPエンドポイントに統合されます。

Azure FunctionsまたはLambdaのデプロイ。サーバーレスのデプロイでは、多くの場合、Linuxベースのイメージと最小限のランタイムが使用されます。 BarCodeControlはこの環境向けに設計されていません。 IronBarcodeは、設定変更なしでLinux、Dockerコンテナ、Azure Functions、およびAWS Lambda上で動作します。

単一機能のためのスイート更新コスト。 更新の際にチームがDXperienceスイートから実際に使用しているものを監査し、特定のサービス内で唯一のDevExpressコンポーネントがBarCodeControlであることが明らかになると、コストが問題になります。 独立したライブラリが$749の永続的なものである場合、バーコード生成に対して年間$1,699.99のDXperienceサブスクリプションを支払うのは難しい議論です。

PDFファイルからの複数バーコード読み取り。請求書PDF、出荷明細書、スキャンされたフォームなどからバーコードを読み取る文書処理ワークフローでは、PDFのサポートと読み取り機能の両方が必要です。 IronBarcodeは、追加のライブラリなしでPDFファイルを直接読み取ります。 DevExpressはどちらの機能も提供していません。

結論

DevExpressのバーコード機能は、UIツールキットに組み込まれたUIレンダリング機能として理解するのが最も適切でしょう。 アプリケーションが既にDevExpressをグリッドとチャートコントロールに使用しているWinFormsまたはBlazorアプリケーションで、バーコードをフォーム上に視覚的に表示するのが唯一の目的である場合、BarCodeControlは合理的な選択です — 既にライセンスがあります。

次のいずれかが必要になった瞬間、BarCodeControlは適切なツールではなくなります。バーコードの読み取り、サーバーサイドコンテキストでのバーコード生成、ヘッドレス環境での実行、Linuxでの作業、またはWinFormsアセンブリ参照なしでの操作。 DevExpressのサポート担当者は、読み取り機能は存在せず、今後も追加する予定はないと確認しました。 ヘッドレスモードの制限はアーキテクチャ上の問題であり、設定上の問題ではありません。 UIコントロールはUIコントロールです。

IronBarcodeは、あらゆる環境、あらゆるプラットフォームにおいて、静的APIを介したバーコードの生成と読み取りといった、プログラムによるバーコード処理のために構築されています。 これら2つのツールは、それぞれ異なる問題を解決する。 DevExpressのバーコードは、フォーム内に表示するためのものです。 IronBarcodeは、バーコードをコード化して処理するためのツールです。

よくある質問

DevExpress BarCodeとは?

DevExpress BarCode は、C# アプリケーションでバーコードを生成および読み取るための .NET バーコードライブラリです。これは、開発者が.NETプロジェクト用のバーコードソリューションを選択する際に評価するいくつかの選択肢の1つです。

DevExpress BarCodeとIronBarcodeの主な違いは何ですか?

IronBarcodeはインスタンス管理を必要としない静的でステートレスなAPIを使用しています。IronBarcodeはまた、ネイティブPDFサポート、自動フォーマット検出、およびすべての環境にわたるシングルキーライセンスを提供します。

IronBarcodeはDevExpress Barcodeよりもライセンスが簡単ですか?

IronBarcodeは単一のライセンスキーで開発環境と本番環境の両方をカバーします。これは、SDKキーとランタイムキーを分離するライセンスシステムと比較して、CI/CDパイプラインとDocker構成を簡素化します。

IronBarcode は、DevExpress Barcode がサポートしているすべてのバーコードフォーマットをサポートしていますか?

IronBarcodeはQRコード、Code 128、Code 39、DataMatrix、PDF417、Aztec、EAN-13、UPC-A、GS1など30以上のバーコードシンボロジーをサポートしています。フォーマットの自動検出は、明示的なフォーマットの列挙が不要であることを意味します。

IronBarcodeはネイティブPDFバーコード読み取りをサポートしていますか?

IronBarcodeは、別のPDFレンダリングライブラリを必要とせず、BarCodeReader.Read("document.pdf")を使用してPDFファイルから直接バーコードを読み取ります。ページごとの結果には、ページ番号、バーコードフォーマット、値、信頼度スコアが含まれます。

IronBarcode はDevExpress BarCodeと比べてどのようにバッチ処理を行いますか?

IronBarcodeの静的メソッドはステートレスで当然スレッドセーフであり、スレッドごとのインスタンス管理なしにParallel.ForEachを直接使用できます。どの価格帯でもスループットの上限はありません。

IronBarcode はど for .NETバージョンをサポートしていますか?

IronBarcodeは.NET Framework 4.6.2+、.NET Core 3.1、.NET 5、6、7、8、9を単一のNuGetパッケージでサポートしています。プラットフォーム・ターゲットには、Windows x64/x86、Linux x64、macOS x64/ARMが含まれます。

.NETプロジェクトにIronBarcodeをインストールするには?

NuGet経由でIronBarcodeをインストールする:パッケージマネージャーコンソールで'Install-Package IronBarCode'を実行するか、CLIで'dotnet add package IronBarCode'を実行する。追加のSDKインストーラーやランタイムファイルは必要ありません。

DevExpressとは異なり、購入前にIronBarcodeを評価することはできますか?

IronBarcodeのトライアルモードでは、完全なデコードされたバーコード値を返します。購入を決定する前に、ご自身のドキュメントで読み取り精度をベンチマークすることができます。

DevExpress BarCodeとIronBarcodeの価格の違いは何ですか?

IronBarcodeは、開発および量産をカバーする永続的なシングルデベロッパーライセンスで749ドルからご利用いただけます。価格の詳細とボリュームオプションはIronBarcodeのライセンスページでご覧いただけます。別途ランタイムライセンスは必要ありません。

DevExpress BarCodeからIronBarcodeへの移行は簡単ですか?

DevExpress BarCodeからIronBarcodeへの移行は、主にインスタンスベースのAPIコールをIronBarcodeのスタティックメソッドに置き換え、ライセンスの定型文を削除し、結果のプロパティ名を更新します。ほとんどの移行はコードを追加するのではなく、コードを削減します。

IronBarcodeはロゴ入りQRコードを生成できますか?

はい。QRCodeWriter.CreateQrCode().AddBrandLogo("logo.png")は、設定可能なエラー修正機能付きで、ブランド画像をネイティブにQRコードに埋め込みます。カラーQRコードもChangeBarCodeColor()でサポートされています。

Curtis Chau
テクニカルライター

Curtis Chauは、カールトン大学でコンピュータサイエンスの学士号を取得し、Node.js、TypeScript、JavaScript、およびReactに精通したフロントエンド開発を専門としています。直感的で美しいユーザーインターフェースを作成することに情熱を持ち、Curtisは現代のフレームワークを用いた開発や、構造の良い視覚的に魅力的なマニュアルの作成を楽しんでいます。

開発以外にも、CurtisはIoT(Internet of Things)への強い関心を持ち、ハードウェアとソフトウェアの統合方法を模索しています。余暇には、ゲームをしたりDiscordボットを作成したりして、技術に対する愛情と創造性を組み合わせています。

アイアンサポートチーム

私たちは週5日、24時間オンラインで対応しています。
チャット
メール
電話してね