GrapeCity BarcodeとIronBarcodeの比較:C#バーコードライブラリの比較
MessagingToolkit.Barcode vs IronBarcode: 放棄された.NETライブラリの移行
MessagingToolkit.Barcodeは、対象プラットフォームとしてSilverlight 5とWindows Phone 7を挙げている。 どちらも何年も前に製造中止になっている。 このライブラリがコードベースに含まれている場合、代替品の導入が実質的な次のステップです。
MessagingToolkit.Barcode について理解する
MessagingToolkit.Barcodeは、JavaのZXingバーコードライブラリを.NETに移植したもので、追加のメッセージング統合機能が組み込まれています。 ライブラリは2011年に開始され2012年から2013年にかけて活発に開発されました。その最終リリース—バージョン1.7.0.2—は2013年4月27日に公開されました。プロジェクトページはもはや積極的に維持されていませんし、それ以来公開のメンテナーも現れていません。
このライブラリは、.NET Framework時代と、その時代を特徴づけたモバイルプラットフォーム向けに設計されました。 それは、インスタンスベースのAPIを通じてバーコードのデコードとエンコードを提供し、.BarcodeFormatプロパティと共に返します。 2012年当時、Windows上で動作する.NET Framework 4.xアプリケーションにとって、この方法は実用的で広く用いられていた。
MessagingToolkit.BarcodeはZXingの移植版として、そ for Javaライブラリの基盤となるデコードエンジンを共有しつつ、独自のAPIサーフェスとメッセージング指向の拡張ポイントをその上に構築した。このライブラリは.NET Frameworkを基盤としており、その基盤から逸脱することはなかった。 .NET Standardターゲットは公開されず、.NET Coreサポートの追加もされず、2013年4月のリリース以降は一切の更新がありませんでした。
MessagingToolkit.Barcodeの主な特徴:
- 最終リリース: 2013年4月、バージョン1.7.0.2、以降の更新なし
- ZXingの伝統: .NET固有の拡張機能を備えたJava ZXingライブラリの移植版
- インスタンスベースのAPI: 各操作のために
BarcodeEncoderオブジェクトをインスタンス化する必要があります。 - System.Drawing 依存性:
System.Drawing.Bitmapを受け入れおよび返すため、現代 for .NETではWindows専用です。 -デコード呼び出しごとに単一の結果:コレクションではなく、1つの結果オブジェクト(またはnull)を返します - PDFはサポートされていません。入力はビットマップオブジェクトに限定されます。 ネイティブドキュメントの読み込みなし -自動フォーマット検出なし:フォーマットは事前に設定するか、ライブラリが画像のみから検出する必要があります -サポート終了プラットフォーム対象: Silverlight 3、4、5 をリストします。 NuGetメタデータ内のWindows Phone 7.0、7.5、7.8、および8.0 -最新 for .NETターゲット フレームワークのモニケがありません: .NET Core、 .NET 5、またはそれ以降のバージョンをターゲットとするプロジェクトではコンパイルされません
プラットフォームとメンテナンス記録
MessagingToolkit.Barcode のNuGetパッケージのメタデータには、その対象とするターゲットが記載されています。 以下の表の各項目は、ライブラリの開発時点で最新またはそれに近いプラットフォームを表しています。
| プラットフォーム | 2026年の状況 |
|---|---|
| シルバーライト3 | 提供終了 — ブラウザプラグインは2021年に削除されました |
| シルバーライト4 | 提供終了 — ブラウザプラグインは2021年に削除されました |
| シルバーライト5 | 提供終了 — ブラウザプラグインは2021年に削除されました |
| Windows Phone 7.0 | 販売終了 — サポート終了日 2014年 |
| Windows Phone 7.5 | 販売終了 — サポート終了日 2014年 |
| Windows Phone 7.8 | 販売終了 — サポート終了日 2014年 |
| Windows Phone 8.0 | 販売終了 — サポート終了日 2017年 |
| .NET Framework 3.5 | セキュリティパッチのみで、新機能はありません。 |
| .NET Framework 4.0 | セキュリティパッチのみで、新機能はありません。 |
| .NET Framework 4.5 | セキュリティパッチのみで、新機能はありません。 |
このライブラリには、 .NET Core、 .NET 5、 .NET 6、 .NET 7、 .NET 8、 .NET 9 に対応するターゲットフレームワークがありません。これらのランタイムをターゲットとするプロジェクトでは、パッケージが互換性のあるフレームワークモニカーを解決できない場合、ビルド時にエラーが発生します。これはランタイム警告ではなく、コンパイルエラーです。
IronBarcodeを理解する
IronBarcodeは、 Iron Softwareによって開発および保守されている、 .NET向けの商用バーコード読み取りおよび生成ライブラリです。 それは、デコーディング用のBarcodeWriter.CreateBarcode()を用いた静的APIモデルで動作し、インスタンス化されたリーダーまたはライターオブジェクトは不要です。 このライブラリは独自のイメージ処理パイプラインをバンドルしSystem.Drawingに依存しないため、Windows、Linux、macOS、およびコンテナ環境全体で互換性があります。
IronBarcodeは、ファイルパス、Streamオブジェクト、バイト配列、PDFドキュメントパスなど、複数の入力タイプを読み取りに受け入れます。 結果は単一のnull許容オブジェクトではなくコレクションとして返されるため、個別の設定なしに複数のバーコード画像を処理できます。 フォーマット検出は自動で行われます。ライブラリは、呼び出し元が事前に指定する必要なく、画像コンテンツからバーコードの種類を識別します。
生成の場合、IronBarcodeは、PNG、JPEG、SVG、PDF、ベース64エンコードされた文字列など、複数の出力形式をサポートするBarcodeWriter.CreateBarcode()からの流暢な結果オブジェクトを返します。 このライブラリは定期的に更新され、新しいNuGetリリースを積極的に公開しています。
IronBarcodeの主な特徴:
- 静的API設計:
BarcodeWriter.CreateBarcode()はインスタンス化されたオブジェクトを必要としません。 -クロスプラットフォーム: Windows、Linux、macOS、Dockerコンテナ、クラウド機能で動作します - System.Drawingへの依存関係なし:すべての最新 for .NETプラットフォームと互換性のある内部イメージパイプラインを使用します -複数結果読み取り:デコード呼び出しごとにコレクションを返し、複数のバーコード画像をサポートします。
- PDF読み取り:外部抽出手順なしでPDF文書から直接バーコードを読み取ります -自動フォーマット検出:呼び出し側の設定なしで画像コンテンツからバーコードの種類を識別します -流暢な生成出力:単一の結果オブジェクトから PNG、JPEG、SVG、PDF、またはバイト配列として保存 -積極的なメンテナンス:セキュリティパッチと新機能を含む定期的なNuGetリリース -商用ライセンス:製品版での使用にはライセンスキーが必要です。 トライアルモードで動作します。
機能比較
以下の表は、MessagingToolkit.BarcodeとIronBarcodeの基本的な違いを概説したものです。
| フィーチャー | MessagingToolkit.Barcode | IronBarcode |
|---|---|---|
| 最終更新日 | 2013年4月 | 2026年(アクティブ) |
| 最新 for .NETサポート | なし | はい(.NET 6、7、8、9) |
| クロスプラットフォーム | いいえ(Windowsのみ) | はい(Windows、Linux、macOS) |
| PDFバーコード読み取り | なし | はい |
| 自動フォーマット検出 | なし | はい |
| 有効なセキュリティパッチ | なし | はい |
| 商用サポート | None | プロフェッショナルサポート |
詳細な機能比較
| フィーチャー | MessagingToolkit.Barcode | IronBarcode |
|---|---|---|
| メンテナンス | ||
| 最終更新日 | 2013年4月 | 2026年(アクティブ) |
| NuGetバージョン | 1.7.0.2(最終版) | 最新の情報、定期的に更新 |
| アクティブな開発 | なし | はい |
| セキュリティパッチ | 2013年以来なし | 定期的なパッチ |
| プラットフォーム | ||
| .NET Framework 3.5~4.5 | はい | なし |
| .NET Framework 4.6.2以降 | なし | はい |
| .NET Core | なし | はい |
| .NET 5 / 6 / 7 / 8 / 9 | なし | はい |
| .NET Core | なし | はい |
| .NET 修正済み | なし | はい |
| Blazor | なし | はい |
| Linux / macOS | なし | はい |
| Docker/コンテナ | なし | はい |
| 読む | ||
| 入力タイプ | ビットマップのみ | パス、ストリーム、バイト配列、PDF |
| PDFを読む | なし | はい(ネイティブ) |
| 自動フォーマット検出 | なし | はい |
| 画像ごとに複数のバーコード | なし | はい |
| System.Drawing の依存関係 | 必須 | None |
| 世代 | ||
| 出力形式 | ビットマップのみ | PNG、JPEG、SVG、PDF、バイト配列 |
| Fluent出力API | なし | はい |
| System.Drawing の依存関係 | 必須 | None |
| ライセンスについて | ||
| 商用サポート | None | プロフェッショナルサポート |
| 監査のためのメンテナンス状況 | アクティブなメンテナーやリリースプロセスなし | アクティブなメンテナーと定期的なリリース |
プラットフォームおよびフレームワークのサポート
これら2つのライブラリのプラットフォームストーリーは、12年の空白期間によって特徴づけられます。MessagingToolkit.Barcodeは、 .NETの歴史における特定の瞬間のために設計されました。 IronBarcodeは現代のために設計された。
MessagingToolkit.バーコードアプローチ
MessagingToolkit.Barcodeは、 .NET Framework 3.5、4.0、および4.5のみを対象としています。 .NET Standard名称はなく、 .NET Coreをターゲットとすることもなく、最新のランタイムとの互換性のためのシムもありません。 プロジェクトファイルがこのパッケージを参照し、最新 for .NETバージョンをターゲットとしている場合、 NuGetの復元操作はフレームワークの互換性エラーで失敗し、ビルドは実行されません。
NuGetメタデータのプラットフォームテーブルがこれを具体的に示しています。 シルバーライト3、4、5は標的としてリストされている。 3機種とも2021年以降は販売終了となっている。Windows Phone 7.0、7.5、7.8、8.0がリストされている。 いずれも2014年から2017年の間にサポートが終了しました。残りの対象である.NET Framework 3.5、4.0、および4.5は、Windows上で技術的には引き続き機能しますが、Microsoftからはセキュリティパッチのみが提供され、新機能の開発は行われません。
実際的な影響は、MessagingToolkit.Barcodeがフレームワークのアップグレードを妨げることです。 このパッケージを参照するnet8.0に変更できません。 パッケージは単に古いだけでなく、最新のターゲットフレームワークを持たないため、プロジェクトが最新 for .NET機能にアクセスするためのターゲットフレームワークの変更が妨げられています。
サポートされているフレームワークとデプロイメントターゲットの全リストについては、 IronBarcodeプラットフォームのドキュメントを参照してください。
IronBarcodeのアプローチ
IronBarcodeは.NET Framework 4.6.2から.NET 9までをサポートしており、従来のWindowsアプリケーションと最新のクロスプラットフォーム展開の両方に対応しています。 単一のNuGetパッケージで、個別のグラフィックライブラリやプラットフォーム固有の設定を必要とせずに、サポートされているすべてのプラットフォームにインストールできます。
クロスプラットフォームサポートは実際に意味があります。IronBarcodeの内部イメージパイプラインはSystem.Drawingに依存しません。これは.NET 6でWindows専用になりました。LinuxやmacOSをターゲットとするアプリケーション(Dockerコンテナ内のもの、Azure App Service on Linux、AWS Lambda上で実行されるものを含む)は、Windows配備と同じIronBarcode APIと動作を使用します。
API設計
MessagingToolkit.BarcodeのAPIサーフェスはインスタンスベースのオブジェクトとSystem.Drawing.Bitmapの入力を中心にデザインされました。 IronBarcodeのAPIは静的で、複数の入力タイプに対応しています。どちらのライブラリもバーコードのエンコードとデコードを行いますが、呼び出し方法は大きく異なります。
MessagingToolkit.バーコードアプローチ
MessagingToolkit.Barcodeでの読み取りは、.Textにアクセスする前に結果をnullでないかチェックする必要がありました。 生成も同じインスタンスパターンに従います: .Save()を呼び出します。
// MessagingToolkit.Barcode — .NET Framework target frameworks
using MessagingToolkit.Barcode;
using System.Drawing;
// Reading
var barcodeReader = new BarcodeDecoder();
var bitmap = new Bitmap("barcode.png");
var result = barcodeReader.Decode(bitmap);
string value = result?.Text;
string format = result?.BarcodeFormat.ToString();
// Writing
var barcodeWriter = new BarcodeEncoder();
barcodeWriter.Format = BarcodeFormat.QrCode;
var outputBitmap = barcodeWriter.Encode("Hello World");
outputBitmap.Save("output.png");
// MessagingToolkit.Barcode — .NET Framework target frameworks
using MessagingToolkit.Barcode;
using System.Drawing;
// Reading
var barcodeReader = new BarcodeDecoder();
var bitmap = new Bitmap("barcode.png");
var result = barcodeReader.Decode(bitmap);
string value = result?.Text;
string format = result?.BarcodeFormat.ToString();
// Writing
var barcodeWriter = new BarcodeEncoder();
barcodeWriter.Format = BarcodeFormat.QrCode;
var outputBitmap = barcodeWriter.Encode("Hello World");
outputBitmap.Save("output.png");
Imports MessagingToolkit.Barcode
Imports System.Drawing
' Reading
Dim barcodeReader As New BarcodeDecoder()
Dim bitmap As New Bitmap("barcode.png")
Dim result = barcodeReader.Decode(bitmap)
Dim value As String = result?.Text
Dim format As String = result?.BarcodeFormat.ToString()
' Writing
Dim barcodeWriter As New BarcodeEncoder()
barcodeWriter.Format = BarcodeFormat.QrCode
Dim outputBitmap = barcodeWriter.Encode("Hello World")
outputBitmap.Save("output.png")
Bitmapの依存性は偶然ではありません。 System.Drawing.BitmapはWindowsでGDI+を必要とします。 .NET 6以降、LinuxまたはmacOSでBitmapの依存性はクロスプラットフォーム展開をこのままでは不可能にします。
IronBarcodeのアプローチ
IronBarcodeは全体を通して静的メソッドを使用しています。 Bitmapは不要です。 結果として得られるのは、nullを許容する単一のオブジェクトではなく、コレクションです。 生成は、エンコーディングタイプをパラメータとして渡し、その結果オブジェクトが直接的に保存メソッドを公開するBarcodeWriter.CreateBarcode()を使用します。
// IronBarcode — .NET Framework 4.6.2 through .NET 9
using IronBarCode;
IronBarCode.License.LicenseKey = "YOUR-LICENSE-KEY";
// Reading
var results = BarcodeReader.Read("barcode.png");
string value = results.FirstOrDefault()?.Value;
string format = results.FirstOrDefault()?.Format.ToString();
// Writing
BarcodeWriter.CreateBarcode("Hello World", BarcodeEncoding.QRCode)
.SaveAsPng("output.png");
// IronBarcode — .NET Framework 4.6.2 through .NET 9
using IronBarCode;
IronBarCode.License.LicenseKey = "YOUR-LICENSE-KEY";
// Reading
var results = BarcodeReader.Read("barcode.png");
string value = results.FirstOrDefault()?.Value;
string format = results.FirstOrDefault()?.Format.ToString();
// Writing
BarcodeWriter.CreateBarcode("Hello World", BarcodeEncoding.QRCode)
.SaveAsPng("output.png");
Imports IronBarCode
IronBarCode.License.LicenseKey = "YOUR-LICENSE-KEY"
' Reading
Dim results = BarcodeReader.Read("barcode.png")
Dim value As String = results.FirstOrDefault()?.Value
Dim format As String = results.FirstOrDefault()?.Format.ToString()
' Writing
BarcodeWriter.CreateBarcode("Hello World", BarcodeEncoding.QRCode) _
.SaveAsPng("output.png")
画像からバーコードを読み取る詳細な手順については、 "画像からバーコードを読み取る方法"を参照してください。 Code 128、EAN-13、UPC形式を含む1次元バーコードを生成する方法については、 "1次元バーコードの作成方法"を参照してください。
セキュリティとメンテナンス
メンテナンスされていないライブラリは、積極的にメンテナンスされているものとは異なるセキュリティ姿勢を持ちます。 本質ではなくCVEが提出されているかどうかの違いです—CVEが提出されている場合、対応できるかどうかです。
MessagingToolkit.バーコードアプローチ
MessagingToolkit.Barcodeは2013年4月以来更新を受けていません。その日以降に発見された、ライブラリ自体の画像解析ロジックの脆弱性、ZXing由来のデコード実装、またはそのトランジティブな依存にある脆弱性は未修正のままです。 通知する公開メンテナーがおらず、監視するセキュリティアドバイザリープロセス、修正がユーザーに届くリリースメカニズムはなく、仮に開発されたとしても、どのようにしても修正に到達できません。
セキュリティスキャンツール—Snyk, WhiteSource, GitHub Dependabot, NuGet audit—は通常、メンテナンスされていないパッケージを高リスクとして常にフラグします。 このフラグ付けは、CVEが確認されているかどうかに左右されるものではありません。 これは、確認された脆弱性を修復するためのプロセスが全く存在しないことを反映している。 アクティブなメンテナーと文書化されたセキュリティ応答プロセスを持つライブラリとは異なるリスクプロファイルです。
PCI DSS、HIPAA、SOC 2、ISO 27001といったコンプライアンスフレームワークに基づいて業務を行うチームにとって、これは監査上の実際的な影響を及ぼします。 これらのフレームワークはサードパーティソフトウェアの積極的なパッチ管理を期待しており、脆弱性に反応するメカニズムがないメンテナンスされていないパッケージは、特定のCVEが提出されているかどうかに関わらず、監査レビューで通常、どのようにしてもフラグされます。 その発見は、既知のエクスプロイトの存在ではなく、その依存関係のメンテナンス姿勢に関連しています。
IronBarcodeのアプローチ
IronBarcodeは、セキュリティパッチ、依存関係の更新、新機能などを含むNuGetの定期的なアップデートを受け取っています。 このライブラリはIron Software社によって開発されており、同社は文書化されたサポートプロセスを維持し、各アップデートごとにリリースノートを公開しています。 セキュリティ勧告は、該当する場合、パッチリリースで対応されます。
IronBarcodeは、MessagingToolkit.Barcodeが扱っていたすべての形式(QRコード、Code 128、EAN-13、EAN-8、UPC-Aなど)を含む50種類以上のバーコード形式をサポートしています。さらに、従来のライブラリではサポートされていなかった形式(DataMatrix、Aztec、PDF417、および最新の2Dシンボル体系全般)もサポートしています。
APIマッピングリファレンス
以下の表は、MessagingToolkit.Barcode APIの要素と、それに対応するIronBarcodeの要素を対応付けたものです。
| MessagingToolkit.Barcode | IronBarcode | ノート |
|---|---|---|
new BarcodeDecoder() |
静的 — BarcodeReader.Read() |
インスタンスは不要です |
barcodeReader.Decode(bitmap) |
BarcodeReader.Read(path) |
パス、ストリーム、またはバイト配列を受け入れます |
result.Text |
result.Value |
物件名が変更されました |
result.BarcodeFormat |
result.Format |
物件名が変更されました |
new BarcodeEncoder() |
静的 — BarcodeWriter.CreateBarcode() |
インスタンスは不要です |
barcodeWriter.Format = BarcodeFormat.QrCode |
BarcodeEncoding.QRCode (パラメータ) |
フォーマットはプロパティではなく、パラメータとして渡されます。 |
Bitmapを返す |
BarcodeWriter.CreateBarcode("data", BarcodeEncoding.QRCode) |
Bitmapではなく、fluentの結果を返します。 |
bitmap.Save("path.png") |
.SaveAsPng("path.png") |
結果オブジェクトに対する流暢なメソッド |
BarcodeFormat.QrCode |
BarcodeEncoding.QRCode |
列挙型の名前空間と値の名前が変更されました |
BarcodeFormat.Code128 |
BarcodeEncoding.Code128 |
同じシンボル名 |
| 見つからない場合は null を返します | 空のコレクションを返します | .FirstOrDefault()を確認してください |
| .NET Framework 3.5~4.5のみ | .NET 4.6.2 から.NET 9 | 最新 for .NETを完全にサポート |
チームがMessagingToolkit.BarcodeからIronBarcodeへの移行を検討する場合
この移行を評価するチームを促すシナリオは、共通の構造を持っています:プロジェクト要件が初期.NETフレームワーク時代のライブラリが対応可能になりました。
フレームワークの近代化要件
最も一般的な原因は、計画中または進行中 for .NETアップグレードです。 チームがプロジェクトを.NET Framework 4.xから.NET 6以降に移行することを決定した場合、最新のフレームワークをサポートしていないパッケージがないか、依存関係グラフを監査する必要があります。 MessagingToolkit.Barcode は、その監査において、最新のターゲットフレームワークのモニカーに対して解決できない、ブロッキング依存関係として表示されます。 したがって、 IronBarcodeへの移行は、より広範な.NETアップグレードの前提条件であり、独立した取り組みではありません。アプリケーションの近代化に取り組むチームは、通常、アップグレード分析フェーズの早い段階でこの依存関係を発見します。
セキュリティおよびコンプライアンス義務
2つ目のシナリオは、セキュリティレビューとコンプライアンス監査に関するものです。 PCI DSS、HIPAA、SOC 2、またはISO 27001のフレームワークに基づいて運営されているチームは、第三者との依存関係の健全性を検証する定期的な監査を受けます。 セキュリティ応答メカニズムのないメンテナンスされていないパッケージは、特定の脆弱性が特定されているかどうかに関わらず、プロセスの理由から監査発見として通常表面化します。 セキュリティチームがMessagingToolkit.Barcodeを非準拠な依存関係としてフラグされたとき、解決策は置換です—適用されるパッチはなく、アップグレードするバージョンもなく、セキュリティアドバイザリーのために連絡を取るメンテナーもありません。 IronBarcodeへの移行は、メンテナンスパスのない依存関係を定期的にセキュリティ更新を受けるものに置き換えることで、監査発見に対応します。
能力拡張
3つ目のシナリオは、新たな要件がMessagingToolkit.Barcodeで提供できる範囲を超える場合に発生します。 スキャンされた文書や PDF ファイルを処理するアプリケーションは、これらの形式からバーコードを読み取る必要があります。MessagingToolkit.Barcode はビットマップ入力のみを受け入れるため、別途抽出レイヤーがないと PDF の読み取りは不可能です。 Web配信のためにバーコードを生成するアプリケーションはSVGまたはベース64出力を必要とします。MessagingToolkit.BarcodeはSystem.Drawing.Imagingの依存性が必要です。 製品要件がこれらの領域にまで拡大すると、従来のライブラリの制約が、そのAPIサーフェス内では回避できない技術的な制約となってしまう。
プラットフォームの目標成長
4つ目のシナリオは、新たな配備対象の追加です。 Windows専用アプリケーションを初期に開発し、Linuxホスティング、macOS開発環境、Dockerコンテナ、またはLinuxランタイムでのクラウド関数へ拡張しているチームは、System.Drawingの依存性をブロック要因として直面します。 MessagingToolkit.Barcodeは、すべての入力と出力操作にSystem.Drawingは.NET 6以降ではWindows専用です。 Windows以外のデプロイメントターゲットでは、この依存関係は単なる互換性の問題ではなく、実行時エラーとなります。 IronBarcodeへの移行は、System.Drawingの要求を完全に取り除き、チームが達成しようとしているクロスプラットフォーム展開を可能にします。
一般的な移行の考慮事項
MessagingToolkit.BarcodeからIronBarcodeに移行するチームは、移行の仕組みに影響を与えるいくつかの技術的な違いを認識しておく必要があります。
名前空間の置換
using IronBarCode;への更新を必要とします。 コードベース全体で古い名前空間文字列を検索することが、移行範囲を特定するための最も確実な出発点となります。 MessagingToolkit.Barcodeで使用されるSystem.Drawingをインポートするファイルは、IronBarcodeが導入された場合、そのインポートを完全に削除できます。IronBarcodeはそれを必要としないためです。
ターゲットフレームワークの変更
プロジェクトファイルから MessagingToolkit.Barcode を削除すると、ターゲットフレームワークのモニカーが更新されます。 <TargetFramework>net8.0</TargetFramework>への変更は、ブロッキング依存性が取り除かれた後で可能です。 IronBarcodeは、この変更の両方の側面( .NET Framework 4.6.2と.NET 8の両方)をサポートしているため、フレームワークのアップグレードが完了する前にインストールすることができ、移行を一度に実行するのではなく、段階的に行うことができます。
BarcodeWriter 名前空間の違い
MessagingToolkit.Barcodeは、生成クラスとしてBarcodeEncoderを使用し、その形式はプロパティ (コード 1666) として設定され、.Encode()を呼び出す前に設定されます。 IronBarcodeは、静的方法としてBarcodeWriter.CreateBarcode()を使用し、エンコーディングタイプがパラメータとして渡されます。 enumの名前は異なり: BarcodeFormat.QrCode は BarcodeEncoding.QRCode になり、BarcodeFormat.Code128 は BarcodeEncoding.Code128 になります。 Bitmapを返しません。
IronBarcodeの追加機能
IronBarcodeは、上記のセクションで説明した機能セットを超える機能を提供します。
- PDFバーコードの読み取り:
BarcodeReader.Read("document.pdf")はPDFドキュメントの各ページからバーコードを読み取り、ページ番号のメタデータを含む結果を返します。 外部からのPDF抽出手順は不要です。 -バッチ処理:画像ファイルとPDFファイルが混在する複数のファイルを、一度に読み込むことができます。 自動フォーマット検出は、ファイル形式だけでなく、バーコードの種類にも適用されます。 - QRコードのカスタマイズ: 生成されたQRコードには、埋め込まれたロゴ、カスタムカラー、
QRCodeWriterAPIを通じて調整可能な余白を含めることができます。 - 非同期フレンドリーな使用法:
Streamの入力を受け入れ、ASP.NET Coreやその他の非同期.NETアプリケーション内でのasyncリクエストパイプラインとクリーンに統合されます。 -複数の出力形式に対応:生成されたバーコードは、PNG、JPEG、SVG、PDFとして保存したり、base64エンコードされた文字列として取得して、HTMLレスポンスやデータベースに直接埋め込むことができます。
.NETの互換性と将来の準備
IronBarcodeは、 .NET Framework 4.6.2から.NET 9までのすべての現行.NETバージョンをサポートしており、新しい.NETリリースが利用可能になると、それに対応したアップデートを受け取ります。 このライブラリの内部画像パイプラインは、System.Drawingや他のプラットフォーム固有のグラフィックAPIに依存せず、同じパッケージとAPIがWindows、Linux、macOS、およびコンテナ環境全体で一貫して動作します。 .NET 10以降のリリースが公開されるにつれ、IronBarcodeの積極的な開発サイクルにより、ライブラリの制約のためにチームが.NETのアップグレードを延期する必要なく、互換性が維持されます。
結論
MessagingToolkit.BarcodeとIronBarcodeは、 .NETライブラリ開発における全く異なる2つの段階を象徴している。 MessagingToolkit.Barcodeは.NET Framework 4.xと2010年代初期のモバイルプラットフォーム向けに構築されていました。 IronBarcodeは、2026年 for .NET用、クロスプラットフォーム、コンテナフレンドリー、活発にメンテナンスされています。 両者の技術的な差は、機能の同等性の問題ではない。 これは実行時の互換性の問題です。 MessagingToolkit.Barcode は最新 for .NETプロジェクトではコンパイルされないため、ほとんどの実用的なシナリオでは、比較対象は 2 つの競合するオプションではありません。
MessagingToolkit.Barcodeは正当な狭い用途があります:プロジェクトが.NET Framework 4.xを専用ターゲットとし、Windowsのみで実行される場合、より新しいランタイムへのアップグレードは全く行わず、第三者のパッチ管理が厳しくない環境で使用します。 特定の構成では、ライブラリは出力を生成し、フレームワークターゲットのブロッカーはありません。 メンテナンスギャップ—パッチがない10年以上—すべての構成に適用されます。
IronBarcodeは、 .NET 6、7、8、9といった最新 for .NET環境でバーコード機能が必要なチームに適しています。 LinuxまたはmacOSへの展開。 Dockerまたはクラウドホスティング環境。 ASP.NET Coreアプリケーション またはPDFを処理したり、Windowsビットマップを超えた出力形式でバーコードを必要とするプロジェクトに適しています。静的APIはインスタンスベースのモデルのインスタンス化オーバーヘッドを削減し、System.Drawing依存性がないことで、重要なクロスプラットフォーム制約が取り除かれます。
基本的な評価は単純明快だ。 変更の予定がない.NET Framework 4.xを使用しているチームの場合、MessagingToolkit.Barcodeは引き続きその制約内で機能します。 その他のあらゆるシナリオ(近代化、コンプライアンス、クロスプラットフォーム展開、機能拡張など)においては、MessagingToolkit.Barcodeは適切な選択肢ではなく、 IronBarcodeは小規模で明確な移行パスを備えた直接的な代替手段となります。
よくある質問
MessagingToolkitバーコードとは何ですか?
MessagingToolkit BarCodeは、C#アプリケーションでバーコードを生成して読み取るため for .NETバーコードライブラリです。これは、開発者が.NETプロジェクト用のバーコードソリューションを選択する際に評価するいくつかの選択肢の1つです。
MessagingToolkit BarCodeとIronBarcodeの主な違いは何ですか?
IronBarcodeはインスタンス管理を必要としない静的でステートレスなAPIを使用します。一方、MessagingToolkit BarCodeは通常、使用前にインスタンスの作成と設定が必要です。IronBarcodeはまた、ネイティブPDFサポート、自動フォーマット検出、すべての環境でのシングルキーライセンスを提供します。
IronBarcodeはMessagingToolkit BarCodeよりライセンスが簡単ですか?
IronBarcodeは単一のライセンスキーで開発環境と本番環境の両方をカバーします。これは、SDKキーとランタイムキーを分離するライセンスシステムと比較して、CI/CDパイプラインとDocker構成を簡素化します。
IronBarcode はMessagingToolkit 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はMessagingToolkit 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インストーラーやランタイムファイルは必要ありません。
MessagingToolkitとは異なり、購入前にIronBarcodeを評価することはできますか?
IronBarcodeのトライアルモードでは、完全なデコードされたバーコード値を返します。購入を決定する前に、ご自身のドキュメントで読み取り精度をベンチマークすることができます。
MessagingToolkit BarcodeとIronBarcodeの価格の違いは何ですか?
IronBarcodeは、開発および量産をカバーする永続的なシングルデベロッパーライセンスで749ドルからご利用いただけます。価格の詳細とボリュームオプションはIronBarcodeのライセンスページでご覧いただけます。別途ランタイムライセンスは必要ありません。
MessagingToolkit BarcodeからIronBarcodeへの移行は簡単ですか?
MessagingToolkit BarCodeからIronBarcodeへの移行は主にインスタンスベースのAPIコールをIronBarcodeのスタティックメソッドに置き換えること、ライセンスの定型文を削除すること、結果のプロパティ名を更新することを含みます。ほとんどの移行はコードを追加するのではなく、コードを削減します。
IronBarcodeはロゴ入りQRコードを生成できますか?
はい。QRCodeWriter.CreateQrCode().AddBrandLogo("logo.png")は、設定可能なエラー修正機能付きで、ブランド画像をネイティブにQRコードに埋め込みます。カラーQRコードもChangeBarCodeColor()でサポートされています。

