Barkoder SDKとIronBarcodeの比較:C#バーコードライブラリの比較
Barkoder SDKは、ほぼすべての"2026年最高のバーコードSDK"特集記事に登場し、比較表の中でZXing、Dynamsoft、Scandit、 IronBarcodeと並んで挙げられています。 .NETプロジェクト向けのバーコードソリューションを評価する開発者は、調査の初期段階でMatrixSight、DeBlurモード、マルチバーコード検出、DPMサポートについて知り、その真価に感銘を受ける。 次に、 NuGet を検索します。 検索結果なし。 Barkoder SDKには、 .NETパッケージも、C# APIも、 .NETプロジェクトへの公式な導入方法もありません。 この比較では、Barkoderが実際にはどのようなものなのか、その本来の分野で何が優れているのか、そしてIronBarcodeが.NET開発者にとって同じ要件をどのように満たしているのかを説明します。
Barkoder SDKについて理解する
Barkoderは、C/C++処理コアをベースに構築された商用バーコードスキャンSDKであり、iOSおよびAndroid向けのネイティブSDKでラップされています。 この製品は、リアルタイムのカメラスキャンを必要とするモバイル開発者を対象としています。倉庫作業員がスマートフォンで行うようなスキャンや、現場技術者がタブレットで行うようなスキャンです。 流通モデルはその目標を完全に反映している。
SDKは、iOS向けにはCocoaPods経由でSwiftおよびObjective-C API、Android向けにはMaven経由でKotlinおよびJava API、ハイブリッドモバイル向けにはReact Native、Flutter、Cordova、Capacitor用の公式プラグインを通じて配布されます。 NuGetパッケージは存在しません。 C# バインディングはありません。 .NETプロジェクトへのサポートされているパスはありません。
同社はコミュニティがメンテナンスするXamarinおよびMAUIバインディングプロジェクトを提供していますが、これらは公式製品ではなく、Barkoderによる製品サポートも提供されておらず、メインSDKと並行して更新されることもありません。 本番環境の.NETアプリケーションにおいて、重要なバーコードワークフローにコミュニティバインディングを使用することは、重大な技術的リスクを伴います。 本格的な.NET導入においては、これらは現実的な選択肢とは言えません。
Barkoder SDKの主なアーキテクチャ特性:
-モバイルファーストアーキテクチャ: iOSおよびAndroidのカメラパイプライン専用に設計されています。 すべての処理はデバイス上でC/C++コアを介して行われます。
- .NET SDK がありません: NuGetパッケージが存在しません。 NuGetで"barkoder"を検索しても結果はゼロです。 -バーコード生成機能なし: Barkoderは読み取り専用のSDKです。 バーコードの生成やエンコード機能はありません。
- PDF処理機能なし: SDKには、PDF文書からのバーコード読み取り、ファイルシステムからの画像読み取り、サーバーサイドの文書ワークフローといった概念は含まれていません。 -サーバー展開不可: SDKは、 ASP.NET Core、Azure Functions、Dockerコンテナ、またはサーバーサイドの.NET実行環境では実行できません。 -コミュニティ限定の.NETバインディング: MAUIバインディングプロジェクトは実験的なものであり、SDKの一部のみを公開しており、本番環境でのサポートは提供されていません。
バーコダー・アーキテクチャーの外観
SDKのC/C++コアは画像処理を担います。 iOSとAndroidのラッパーは、プラットフォームネイティブのAPIを通じてそのコアを公開します。以下のいずれも.NETコンテキストでは実行されません。どのC#プロジェクトにもusing Barkoder;@文はありません:
// iOS — Swift only, no C# equivalent
let barkoderView = BarkoderView(frame: frame)
barkoderView.config = BarkoderConfig(licenseKey: "LICENSE_KEY") { config in
config.decoder.decoderType = .code128
config.decoder.deblurEnabled = true
}
barkoderView.startScanning { result in
print(result.textualData ?? "No result")
}
// Android — Kotlin only, no C# equivalent
val barkoderView = BarkoderView(context)
barkoderView.config = BarkoderConfig("LICENSE_KEY")
barkoderView.config.decoder.decoderType = DecoderType.Code128
barkoderView.config.decoder.deblurEnabled = true
barkoderView.startScanning { result ->
println(result.textualData)
}
Barkoderを完全に無視する前に、その優れた点を認めておく価値はあるだろう。 この製品がランキング入りする理由は、実際に優れた性能を備えているからだ。 MatrixSightとDeBlur Modeは、物理的に損傷したバーコード、印刷状態が悪いバーコード、または照明条件が悪い状況で撮影されたバーコードを読み取るための独自の損傷回復技術を提供します。 マルチバーコード検出機能は、 1つのカメラフレーム内の複数のバーコードを同時にデコードするため、倉庫作業員は棚全体を一度にスキャンできます。 DPM(ダイレクト・パーツ・マーキング)スキャンは、レーザーエッチングやドットピーニング処理された構成におけるDataMatrixなどのフォーマットをサポートしており、これは一般的なライブラリではうまく処理できないものです。 高密度フォーマットのサポートには、PDF417、Aztec、およびモバイルカメラで高い精度を実現するその他の2Dフォーマットが含まれます。
IronBarcodeを理解する
IronBarcodeは、あらゆる.NET環境において、バーコードの読み取りと生成というワークフロー全体を網羅するネイティブ.NETライブラリです。 これは、 .NETプラットフォームにおけるBarkoderの機能と同等の機能を持ち、サーバーおよびデスクトップ環境でのみ意味を持つ追加機能を備えています。
IronBarcodeはNuGet経由でインストールされ、完全にローカルで動作します。 バーコード処理中はネットワーク呼び出しは行われません。 エアギャップ環境、Azure Functions、Dockerコンテナ、AWS Lambda、そして.NET Framework 4.6.2から.NET 9までのすべての.NETランタイムで動作します。静的APIモデルを採用しているため、管理すべきスキャナインスタンスがなく、ライフサイクルを追跡する必要もなく、同時呼び出しによるスレッドセーフティの問題もありません。
IronBarcodeの主な特徴:
- .NETを完全にサポート: .NET Framework 4.6.2 以降、 .NET 6、7、8、および 9 をサポートします。 Windows、Linux、macOS、Docker、Azure、AWSで動作します -読み取りと生成:ファイル、ストリーム、PDFからのバーコード読み取りと、50種類以上のフォーマットでのバーコード生成の両方に対応
- 静的API設計: @--CODE-38485--@@および@--CODE-38486--@@は、管理するステートフル・インスタンスを持たない静的呼び出しです。
- 機械学習を活用したエラー訂正:機械学習に基づく画像前処理パイプラインにより、破損、劣化、低品質のバーコードを処理します。 -ネイティブPDFサポート:中間的な画像抽出なしに、PDFドキュメントから直接バーコードを読み取ります
- .NETエコシステムとの完全な統合: ASP.NET Coreの依存性注入、async/await、ミドルウェア、ホスティングパターンと互換性があります。
機能比較
以下の表は、Barkoder SDKとIronBarcodeの基本的な違いをまとめたものです。
| フィーチャー | Barkoder SDK | IronBarcode |
|---|---|---|
| .NET / C# サポート | なし | フル — すべての.NETランタイム |
| NuGetパッケージ。 | なし | はい - --コード-38487--@@@。 |
| バーコード読み取り | はい、モバイルカメラです | はい、ファイル、ストリーム、PDFなど。 |
| バーコード生成 | なし | フルバージョン — 50種類以上のフォーマット |
| PDF処理 | なし | ネイティブ |
| サーバーサイドデプロイメント | なし | フル — ASP.NET Core、Azure、Lambda、Docker |
| 価格について | モバイルSDKライセンス | 749ドルから(1回限りの永久ライセンス) |
詳細な機能比較
| フィーチャー | Barkoder SDK | IronBarcode |
|---|---|---|
| 読む | ||
| 破損したバーコードの復旧 | MatrixSight / DeBlur | MLエラー訂正、--CODE-38488--@@。 |
| 複数バーコード検出 | はい、カメラのフレームです | コード-38489 |
| DataMatrix / DPM のサポート | はい | はい - @--コード-38490--@@@。 |
| QRコードの読み取り | はい | はい |
| PDF417 | はい | はい |
| アステカ | はい | はい |
| Code128、Code39、EAN | はい | はい、50種類以上のフォーマットに対応しています。 |
| 自動フォーマット検出 | はい | はい |
| 世代 | ||
| バーコード生成 | なし | フルバージョン - 全フォーマット |
| QRコード生成 | なし | コード-38491 |
| QRコード上のロゴ/ブランディング | なし | コード-38492 |
| プラットフォーム | ||
| .NET / C# | なし | フル |
| iOS(ネイティブ) | はい(プライマリ) | .NET MAUI経由 |
| Android(ネイティブ) | はい(プライマリ) | .NET MAUI経由 |
| Windows / Linux / macOS | なし | フル |
| ドッカー/コンテナ | なし | フル |
| Azure Functions | なし | フル |
| AWSラムダ | なし | フル |
| エアギャップ/オフライン | はい(端末上) | はい(完全地元産) |
| APIデザイン。 | ||
| Async/await のサポート | 該当なし | フル |
| 依存性注入 | なし | .NET DIとの完全な統合 |
| PDF文書入力 | なし | コード-38493 |
| ライセンスについて | ||
| ライセンスモデル | モバイルSDKライセンス | 永久購入、一括購入 |
| 価格(エントリー価格) | 営業担当 | 749ドルから(Lite) |
.NET展開モデル
Barkoder SDKとIronBarcodeの最も根本的な違いは、機能ではなく、利用可能性にある。 Barkoder SDKは.NETエコシステムには存在しません。
Barkoder SDKのアプローチ
Barkoderの対応プラットフォームは以下のとおりです。iOSネイティブ(Swift / Objective-C)、Androidネイティブ(Kotlin / Java)、React Native、Flutter、Cordova、Capacitor。 .NET、C#、. .NET MAUI、Xamarin、Windows、Linux、およびASP.NET Coreは含まれていません。 SDKのアーキテクチャは、モバイルデバイス上のライブカメラパイプラインを中心に構築されています。ファイルベースの入力モード、ストリームAPI、バッチ処理パス、サーバーサイド実行モデルは搭載されていません。
.NET SDKがないことは、些細な不便さではなく、完全な障害となる。 インストールするNuGetパッケージはなく、非同期APIインターフェースもなく、依存性注入の統合もなく、AzureやAWS Lambdaのサポートもなく、PDF処理機能もありません。 コミュニティ版MAUIバインディングはSDKの一部の機能しか公開しておらず、本番環境でのサポートは提供されていません。
IronBarcodeのアプローチ
IronBarcodeはNuGetから単一のコマンドでインストールでき、起動時にライセンスキーを使用して初期化されます。
// NuGet: dotnet add package IronBarcode
using IronBarCode;
IronBarCode.License.LicenseKey = "YOUR-KEY";
// Read a barcode from an image
var results = BarcodeReader.Read("scan.png");
foreach (var result in results)
{
Console.WriteLine($"Format: {result.Format}");
Console.WriteLine($"Value: {result.Value}");
}
// NuGet: dotnet add package IronBarcode
using IronBarCode;
IronBarCode.License.LicenseKey = "YOUR-KEY";
// Read a barcode from an image
var results = BarcodeReader.Read("scan.png");
foreach (var result in results)
{
Console.WriteLine($"Format: {result.Format}");
Console.WriteLine($"Value: {result.Value}");
}
Imports IronBarCode
IronBarCode.License.LicenseKey = "YOUR-KEY"
' Read a barcode from an image
Dim results = BarcodeReader.Read("scan.png")
For Each result In results
Console.WriteLine($"Format: {result.Format}")
Console.WriteLine($"Value: {result.Value}")
Next
このライブラリは完全にローカルで動作し、ネットワーク呼び出しもデータ送信も外部依存関係もありません。 ASP.NET Coreの依存性注入と統合し、async/awaitをサポートし、変更なしでDocker、Azure Functions、AWS Lambdaにデプロイできます。 本番環境レベルのASP.NET Core統合については、 IronBarcodeのドキュメントを参照してください。
破損したバーコードの復旧
破損したバーコードの復元機能は、開発者がBarkoderを調査するきっかけとなる最も一般的な機能です。 BarkoderのMatrixSightとDeBlurモードは、物理的なラベルが摩耗したり、濡れたり、部分的に見えなくなったりする物流や製造現場のシナリオ向けに推奨されています。
Barkoder SDKのアプローチ
BarkoderのDeBlurモードでは、デコードを実行する前に、コントラスト強調、シャープ化、回転補正などの画像前処理が適用されます。 この機能はモバイルカメラのパイプライン内でのみ動作します。モードはスキャン開始前にSDKレベルで設定され、カメラフィードは継続的に処理されます。 同等のファイルベースのパスはありません。
// iOS Swift — not usable from C#
barkoderView.config = BarkoderConfig(licenseKey: "LICENSE_KEY") { config in
config.decoder.deblurEnabled = true
config.decoder.decoderType = .code128
}
barkoderView.startScanning { result in
print(result.textualData ?? "No result")
}
IronBarcodeのアプローチ
IronBarcodeは、デコードを試みる前に、MLベースの損傷回復、コントラスト強調、鮮明化、回転補正を適用するマルチパス画像解析パイプラインをアクティブにするReadingSpeed.ExtremeDetail@を通じて、同じ問題に対処する。 これは、ファイル、ストリーム、またはバイト配列の入力であればどれでも機能します。
using IronBarCode;
IronBarCode.License.LicenseKey = "YOUR-KEY";
var options = new BarcodeReaderOptions
{
Speed = ReadingSpeed.ExtremeDetail,
ExpectMultipleBarcodes = false,
};
var results = BarcodeReader.Read("worn-shipping-label.png", options);
if (results.Any())
{
Console.WriteLine($"Recovered: {results.First().Value}");
}
else
{
Console.WriteLine("Could not decode — image quality too low");
}
using IronBarCode;
IronBarCode.License.LicenseKey = "YOUR-KEY";
var options = new BarcodeReaderOptions
{
Speed = ReadingSpeed.ExtremeDetail,
ExpectMultipleBarcodes = false,
};
var results = BarcodeReader.Read("worn-shipping-label.png", options);
if (results.Any())
{
Console.WriteLine($"Recovered: {results.First().Value}");
}
else
{
Console.WriteLine("Could not decode — image quality too low");
}
Imports IronBarCode
IronBarCode.License.LicenseKey = "YOUR-KEY"
Dim options As New BarcodeReaderOptions With {
.Speed = ReadingSpeed.ExtremeDetail,
.ExpectMultipleBarcodes = False
}
Dim results = BarcodeReader.Read("worn-shipping-label.png", options)
If results.Any() Then
Console.WriteLine($"Recovered: {results.First().Value}")
Else
Console.WriteLine("Could not decode — image quality too low")
End If
CODE-38495--@@@は、ほとんどのきれいなバーコードまたは軽度の損傷を持つバーコードを処理し、より高速です。 CODE-38496--@@は、@@--CODE-38497--@が失敗した場合のために予約しておいてください。 読み取りが難しいバーコードに関する詳細なガイダンスについては、 IronBarcodeの読み取りに関するドキュメントを参照してください。
複数バーコード検出
マルチバーコード検出は、2つのプラットフォーム間で直接マッピングされます。Barkoderは、カメラフレーム内の複数のコードを処理します。 IronBarcodeは、文書または画像ファイル内の複数のコードを処理できます。
Barkoder SDKのアプローチ
Barkoderのマルチバーコードモードは、1枚のカメラフレームから複数のバーコードを同時に検出・デコードします。 倉庫の現場では、作業員が棚の上からスマートフォンをかざすと、すべてのバーコード値を一度に受信できる。 これは、スキャン開始前にSDKレベルで設定されます。
// Android Kotlin — not usable from C#
barkoderView.config.decoder.multicodingEnabled = true
barkoderView.startScanning { results ->
results.forEach { result ->
println("${result.barcodeType}: ${result.textualData}")
}
}
IronBarcodeのアプローチ
.NETサーバーサイドアプリケーションでは、マルチバーコードのシナリオは通常、出荷追跡バーコードと製品バーコードが記載された請求書、または1ページに複数のアイテムが記載された出荷マニフェストなどのドキュメントに関連しています。 IronBarcodeはExpectMultipleBarcodes = trueでこれを処理し、同じオプションは画像やPDFでも同じように機能します:
using IronBarCode;
IronBarCode.License.LicenseKey = "YOUR-KEY";
var options = new BarcodeReaderOptions
{
Speed = ReadingSpeed.Balanced,
ExpectMultipleBarcodes = true,
};
// Works on images and PDFs — single method call
var results = BarcodeReader.Read("shipping-manifest.pdf", options);
foreach (var barcode in results)
{
Console.WriteLine($"Page {barcode.PageNumber} | {barcode.Format} | {barcode.Value}");
}
using IronBarCode;
IronBarCode.License.LicenseKey = "YOUR-KEY";
var options = new BarcodeReaderOptions
{
Speed = ReadingSpeed.Balanced,
ExpectMultipleBarcodes = true,
};
// Works on images and PDFs — single method call
var results = BarcodeReader.Read("shipping-manifest.pdf", options);
foreach (var barcode in results)
{
Console.WriteLine($"Page {barcode.PageNumber} | {barcode.Format} | {barcode.Value}");
}
Imports IronBarCode
IronBarCode.License.LicenseKey = "YOUR-KEY"
Dim options As New BarcodeReaderOptions With {
.Speed = ReadingSpeed.Balanced,
.ExpectMultipleBarcodes = True
}
' Works on images and PDFs — single method call
Dim results = BarcodeReader.Read("shipping-manifest.pdf", options)
For Each barcode In results
Console.WriteLine($"Page {barcode.PageNumber} | {barcode.Format} | {barcode.Value}")
Next
ページ抽出なし、複数リクエストなし、バーコードごとのネットワークオーバーヘッドなし。 PDFファイルは、単一の呼び出しでネイティブに読み込まれます。 マルチバーコードおよびPDFの読み取りに関する詳細は、 IronBarcodeのドキュメントを参照してください。
DataMatrixおよび高密度フォーマットのサポート
DataMatrixは、産業およびDPMのユースケースにおいて中心的な役割を果たします。Barkoderは、製造、ヘルスケア、自動車といった業界向けに、これらのフォーマットを重視しています。
Barkoder SDKのアプローチ
Barkoderは、レーザーエッチングおよびドットピーニングされたマーキングに対応するDPM構成によるDataMatrix読み取りをサポートしています。 このSDKは、PDF417、Aztec、およびその他の高密度2Dフォーマットを、モバイルカメラ上で高い精度でサポートしています。 これらはすべて、iOSまたはAndroidのカメラパイプライン内で動作します。
// iOS Swift — not usable from C#
barkoderView.config = BarkoderConfig(licenseKey: "LICENSE_KEY") { config in
config.decoder.decoderType = .dataMatrix
}
barkoderView.startScanning { result in
print(result.textualData ?? "No result")
}
BarkoderはDataMatrixやその他のバーコード形式を生成しません。 これは読み取り専用のSDKです。
IronBarcodeのアプローチ
IronBarcodeは、DataMatrixをネイティブに読み込み、生成します。 読み取り側では、ReadingSpeed.ExtremeDetailは、レーザーエッチングされたDPMマークに典型的な低コントラストと粗いエッジを処理します。 生成側では、BarcodeWriter.CreateBarcode()が部品ラベル作成用のDataMatrixを生成します:
using IronBarCode;
IronBarCode.License.LicenseKey = "YOUR-KEY";
// Generate a DataMatrix barcode for a part label
BarcodeWriter.CreateBarcode("PART-ID-20240315-A42", BarcodeEncoding.DataMatrix)
.SaveAsPng("part-label.png");
// Generate a QR code with brand logo
QRCodeWriter.CreateQrCode("https://parts.example.com/A42", 500)
.AddBrandLogo("company-logo.png")
.SaveAsPng("branded-qr.png");
// Read auto-detects format — DataMatrix, QR, Code128, PDF417, etc.
var results = BarcodeReader.Read("etched-part.png");
using IronBarCode;
IronBarCode.License.LicenseKey = "YOUR-KEY";
// Generate a DataMatrix barcode for a part label
BarcodeWriter.CreateBarcode("PART-ID-20240315-A42", BarcodeEncoding.DataMatrix)
.SaveAsPng("part-label.png");
// Generate a QR code with brand logo
QRCodeWriter.CreateQrCode("https://parts.example.com/A42", 500)
.AddBrandLogo("company-logo.png")
.SaveAsPng("branded-qr.png");
// Read auto-detects format — DataMatrix, QR, Code128, PDF417, etc.
var results = BarcodeReader.Read("etched-part.png");
Imports IronBarCode
IronBarCode.License.LicenseKey = "YOUR-KEY"
' Generate a DataMatrix barcode for a part label
BarcodeWriter.CreateBarcode("PART-ID-20240315-A42", BarcodeEncoding.DataMatrix) _
.SaveAsPng("part-label.png")
' Generate a QR code with brand logo
QRCodeWriter.CreateQrCode("https://parts.example.com/A42", 500) _
.AddBrandLogo("company-logo.png") _
.SaveAsPng("branded-qr.png")
' Read auto-detects format — DataMatrix, QR, Code128, PDF417, etc.
Dim results = BarcodeReader.Read("etched-part.png")
サポートされているフォーマットと生成オプションの完全なリストについては、 IronBarcodeのバーコード生成ガイドを参照してください。
APIマッピングリファレンス
BarkoderのC#コードが存在しないため、この表はBarkoderがモバイル上で行うことと、 IronBarcodeが.NETで同じ結果を実現する方法との間の概念的な等価性を示しています。
| バーコダーコンセプト | IronBarcode相当品 |
|---|---|
| ライセンスキーを使用したSDKの初期化 | コード-38501 |
| コード-38502 | コード-38503 |
| コード-38504 | コード-38489 |
| コード-38506 | コード-38507(読み取り時に自動検出されます。) |
| コード-38508 | コード-38509 - 同期結果 |
| コード-38510 | コード-38511 |
| コード-38512 | コード-38513 |
| MatrixSightによる損傷回復 | CODE-38514--ML前処理付き |
| カメラフレーム分析 | ファイル/ストリーム/バイト配列入力 |
| デバイス上での処理 | 完全ローカル接続 - ネットワーク通話なし |
| 世代サポートなし | --コード-38515--@@ / @@--コード-38516--@@@。 |
| PDFはサポートされていません | コード-38517 - ネイティブ |
| サーバー展開なし | ASP.NET Core、Docker、Azure Functions、Lambdaで動作します。 |
チームがBarkoder SDKからIronBarcodeへの移行を検討する場合
.NETプロジェクトの要件
最も一般的なシナリオは単純明快です。開発者またはチームが.NETアプリケーション( ASP.NET Core、Windowsサービス、コンソールツール、デスクトップアプリなど)を構築している際に、調査中にBarkoderに出会うというものです。 彼らはMatrixSight、DeBlur、マルチバーコード検出について読み、その機能に魅力を感じるものの、それらのどれもC#からはアクセスできないことに気づく。 評価はNuGetで終了します。 このような状況にあるチームは、Barkoderから離れることはありません。 彼らは最初から自社のプラットフォームに最適なツールを特定している。 IronBarcodeは、Barkoderがモバイル向けに満たす要件に対する.NETのソリューションです。
サーバーサイドのバーコード処理ワークフロー
一部のチームは、まずモバイルスキャンアプリ(Barkoderやその他のモバイルSDKなど)を使用してバーコード処理ワークフローのプロトタイプを作成し、その後、そのワークフローをサーバー側で再現または拡張する必要が生じます。一般的な例としては、APIエンドポイントを介してアップロードされたバーコード画像を処理する、文書管理システム内のPDF文書からバーコードを読み取る、スキャンされたラベルアーカイブをバッチ処理するなどが挙げられます。 Barkoderにはサーバーサイドのデプロイメントモデルがないため、これらのワークフローはどれも実現できません。 IronBarcodeは、 ASP.NET Core、Azure Functions、Docker、AWS Lambdaといったすべてのプラットフォームで、同じ静的APIを使用してこれら全てに対応します。
バーコード生成要件
物流、在庫管理、コンプライアンス関連の.NETアプリケーションを開発するチームは、バーコードの読み取りがワークフローの半分に過ぎないことに気づくことが多い。 バーコードの生成(ラベルの印刷、書類へのQRコードの埋め込み、出荷明細書の作成など)も同様に重要です。 Barkoderは設計上、読み取り専用です。 発電能力はありません。 プロジェクトの範囲が単なる閲覧にとどまらず拡大する場合、ワークフローの両側面をカバーするライブラリを使用することで、2つ目の依存関係を統合する必要がなくなります。 IronBarcodeは、一貫したAPIを通じて、50種類以上のフォーマットに対応した読み取りと生成の両方を提供します。
PDF文書処理
.NETEnterpriseアプリケーションでは、請求書、出荷明細書、医療記録、コンプライアンス文書など、PDFドキュメントにバーコードが埋め込まれていることがよくあります。 Barkoderにはこのワークフローの概念がありません。 これはモバイルデバイスのカメラ入力用に設計されています。受信したPDF文書からバーコードを読み取り、ビジネスロジックのためにバーコードデータを抽出し、文書アーカイブ全体でバーコードの存在を確認する必要があるチームは、ネイティブPDFサポートを備えたライブラリを必要とします。 IronBarcodeは、中間的な画像抽出を行うことなく、PDFから直接バーコードを読み取ります。
価格設定と導入の予測可能性
BarkoderのモバイルSDKの価格設定は、モバイルアプリケーションと配信モデルに基づいて構成されています。 .NET環境向けのツールを評価しているチームにとって、その価格モデルは無関係です。なぜなら、SDKは.NET上で全く動作しないからです。 チームがIronBarcodeを自社のプラットフォームに適したツールと判断した場合、料金体系はシンプルです。処理するバーコードの数に関わらず、リクエストごとの料金やボリューム制限のない、一度限りの永久ライセンスとなります。
一般的な移行の考慮事項
モバイルカメラ入力からファイルベース入力へ
Barkoderベースのモバイルスキャンプロトタイプを実装済みで、その機能を.NETで再現する必要があるチームは、入力モデルがカメラフレームからファイル、ストリーム、またはバイト配列に変更されることに気づくでしょう。 IronBarcodeは、ファイルパス文字列、Stream、byte[]、@@--CODE-38520--@など、複数の形式で同じデータを受け入れることができます。 バーコード処理ロジックはそれ以外は同じです。
// All of these call the same underlying pipeline
var results1 = BarcodeReader.Read("scan.png");
var results2 = BarcodeReader.Read(imageStream);
var results3 = BarcodeReader.Read(imageBytes);
// All of these call the same underlying pipeline
var results1 = BarcodeReader.Read("scan.png");
var results2 = BarcodeReader.Read(imageStream);
var results3 = BarcodeReader.Read(imageBytes);
' All of these call the same underlying pipeline
Dim results1 = BarcodeReader.Read("scan.png")
Dim results2 = BarcodeReader.Read(imageStream)
Dim results3 = BarcodeReader.Read(imageBytes)
速度と精度のトレードオフ
BarkoderのDeBlurモードは、設定されると常にアクティブになり、モバイルカメラのループ内で実行されます。IronBarcodeは、精度対速度のトレードオフをReadingSpeedを通じて明示的に公開します。 ほとんどのファイルでは、ReadingSpeed.Balancedが適切です。 CODE-38523--@@がデコードに失敗した損傷または劣化した入力に対して、ReadingSpeed.ExtremeDetailは完全なマルチパスMLパイプラインを適用する。デフォルトでBalancedを使用し、失敗したときだけExtremeDetailにフォールバックするようにバッチ処理を構成することは、パフォーマンスに敏感なワークフローに推奨されるアプローチです。
ASP.NET Coreにおける非同期統合
IronBarcodeのBarcodeReader.Read()メソッドは同期型です。 同時リクエストを処理するASP.NET Coreエンドポイントでは、Task.Run()で呼び出しをラップして、リクエストスレッドのブロックを回避します:
var results = await Task.Run(() => BarcodeReader.Read(imageBytes, options));
var results = await Task.Run(() => BarcodeReader.Read(imageBytes, options));
Dim results = Await Task.Run(Function() BarcodeReader.Read(imageBytes, options))
パフォーマンスのフォーマット仕様
IronBarcodeはデフォルトでバーコード形式を自動検出します。 想定されるフォーマットが既知である高スループットのシナリオでは、フォーマットを指定することで、一致しないフォーマットテストが不要になり、処理時間を短縮できます。 事前に形式がわかっている場合は、BarcodeReaderOptions.ExpectedBarcodeFormatsを使用して検索を制限してください。
IronBarcodeの追加機能
IronBarcodeは、Barkoderのモバイル機能と直接同等の機能に加え、 .NETサーバーおよびデスクトップ環境に特化した機能も提供します。
- QRコードロゴ埋め込み:@--CODE-38530--@@生成されたQRコードの中心にブランドイメージを追加します。
- PDFバーコード読み取り:ネイティブPDF入力とは、中間画像抽出が不要であることを意味します。 複数ページのPDFファイルは1回の通話でスキャンされます
- PDFへのバーコード印字: IronBarcodeはバーコードを生成し、既存のPDF文書に印字することで、ラベルと文書のワークフローを自動化できます。
- 画像一括読み取り:@--CODE-38531--@は、高スループットのバッチ操作のために複数の画像を同時に処理します。 -スタイリッシュなQRコード生成: QRコードのカスタムカラー、余白、エラー訂正レベル
- GS1およびHIBCフォーマット:標準的な1Dおよび2Dフォーマットを超える、医療およびサプライチェーンのバーコード規格をサポート
.NETの互換性と将来の準備
IronBarcodeは、 .NET Framework 4.6.2および.NET 9までのすべての最新.NETバージョンをサポートしており、2026年にリリース予定の.NET 10との互換性を確保するために活発な開発が行われています。このライブラリはWindows、Linux、macOSで動作し、Docker、Azure Functions、AWS Lambdaのデプロイ環境でテストされています。 .NETエコシステムがクロスプラットフォームおよびクラウドネイティブのパターンへと進化を続ける中、クラウドへの依存、APIキー管理、ネットワーク遅延のないIronBarcodeの完全ローカル実行モデルは、最新の.NETアプリケーションアーキテクチャの方向性に合致しています。
結論
Barkoder SDKとIronBarcodeは、根本的に異なる領域で動作します。 Barkoderは、iOSおよびAndroid向けに構築されたモバイルカメラスキャンSDKであり、C/C++処理コアを備え、CocoaPods、 Maven、およびハイブリッドモバイルフレームワークを通じて配布されます。 IronBarcodeは、サーバー、デスクトップ、クラウド環境への展開向けに構築されたネイティブ.NETライブラリであり、 NuGetを通じて配布され、標準的なパターンを通じて.NETエコシステムに統合されています。 これら2つのライブラリは同じプラットフォーム上で競合するものではなく、全く異なる実行環境において、同じバーコード処理要件に対応している。
Barkoderは、リアルタイムのカメラスキャンを必要とするiOSまたはAndroid向けのモバイルアプリケーションを開発する際に最適な選択肢です。 そのMatrixSight機能とDeBlur機能は、画質を制御できない現場スキャンなどの場面において、非常に強力な性能を発揮します。 そのマルチバーコード検出機能とDPMサポートは、製造業や物流業におけるモバイルワークフローに最適です。 もしあなたのチームが、モバイルワーカーがデバイスのカメラで物理的なアイテムをスキャンするシステムをReact NativeまたはFlutterで開発しているなら、Barkoderは評価対象に含めるべきです。
IronBarcodeは、バーコードの読み取り、生成、またはその両方を必要とする.NETアプリケーション( ASP.NET Core API、Windowsサービス、ドキュメント処理パイプライン、デスクトップツール、クラウド関数など)を構築する際に最適な選択肢です。 これは、単一のNuGetパッケージからバーコードワークフロー全体を網羅し、ネットワーク依存なしで完全にローカルで動作し、依存性注入、async/await、クラウドホスティングなどの標準的な.NETパターンと統合されます。 比較記事をきっかけにBarkoderを知った.NET開発者にとって、 IronBarcodeは、損傷耐性のある読み取り、複数バーコードの検出、DataMatrix、高密度フォーマットのサポートといった、Barkoderと同じコア機能を.NETプラットフォーム向けにネイティブに実装した製品です。
実務的な結論は単純明快だ。C#でプログラミングをするなら、Barkoderは選択肢になり得ない。 機能一覧を評価するのに費やす時間は有益です。必要な機能が明確になるからです。そして、 IronBarcodeは、アプリケーションが実際に動作する環境において、必要な機能をすべて網羅しています。
よくある質問
Barkoder SDKとは?
BarCoder SDKは、C#アプリケーションでバーコードを生成および読み取るための.NETバーコードライブラリです。これは、開発者が .NET プロジェクト用のバーコードソリューションを選択する際に評価するいくつかの選択肢の 1 つです。
Barkoder SDKとIronBarcodeの主な違いは何ですか?
IronBarcodeはインスタンス管理を必要としない静的なステートレスAPIを使用していますが、Barkoder SDKは通常、使用前にインスタンスの作成と設定が必要です。IronBarcodeはまた、ネイティブPDFサポート、自動フォーマット検出、およびすべての環境でのシングルキーライセンスを提供します。
IronBarcodeはBarkoder SDKよりもライセンスが簡単ですか?
IronBarcodeは単一のライセンスキーで開発環境と本番環境の両方をカバーします。これは、SDKキーとランタイムキーを分離するライセンスシステムと比較して、CI/CDパイプラインとDocker構成を簡素化します。
IronBarcode はBarkoder SDKがサポートしているすべてのバーコードフォーマットをサポートしていますか?
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 はBarkoder SDKと比較してどのようにバッチ処理を処理しますか?
IronBarcodeの静的メソッドはステートレスで当然スレッドセーフであり、スレッドごとのインスタンス管理なしにParallel.ForEachを直接使用できます。どの価格帯でもスループットの上限はありません。
IronBarcode はどの.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インストーラーやランタイムファイルは必要ありません。
Barkoderとは異なり、購入前にIronBarcodeを評価することはできますか?
IronBarcodeのトライアルモードでは、完全なデコードされたバーコード値を返します。購入を決定する前に、ご自身のドキュメントで読み取り精度をベンチマークすることができます。
Barkoder SDKとIronBarcodeの価格の違いは何ですか?
IronBarcodeは、開発および量産をカバーする永続的なシングルデベロッパーライセンスで749ドルからご利用いただけます。価格の詳細とボリュームオプションはIronBarcodeのライセンスページでご覧いただけます。別途ランタイムライセンスは必要ありません。
Barkoder SDKからIronBarcodeへの移行は簡単ですか?
Barkoder SDKからIronBarcodeへの移行は、主にインスタンスベースのAPIコールをIronBarcodeの静的メソッドに置き換えたり、ライセンスの定型文を削除したり、結果のプロパティ名を更新したりします。ほとんどの移行はコードを追加するのではなく、コードを削減します。
IronBarcodeはロゴ入りQRコードを生成できますか?
はい。QRCodeWriter.CreateQrCode().AddBrandLogo("logo.png")は、設定可能なエラー修正機能付きで、ブランド画像をネイティブにQRコードに埋め込みます。カラーQRコードもChangeBarCodeColor()でサポートされています。

