MessagingToolkit BarcodeとIronBarcodeの比較:C#バーコードライブラリの比較
MessagingToolkit.Barcodeは、対象プラットフォームとしてSilverlight 5とWindows Phone 7を挙げている。 どちらも何年も前に製造中止になっている。 このライブラリがあなたのコードベースに含まれている場合、問題はそれを置き換えるかどうかではなく、何を待っているかということです。
MessagingToolkit.Barcode について理解する
MessagingToolkit.Barcodeは、JavaのZXingバーコードライブラリを.NETに移植したもので、追加のメッセージング統合機能が組み込まれています。 このライブラリは2011年頃に公開され、2012年から2013年にかけて活発な開発が行われました。最終リリースであるバージョン1.7.0.2は2014年に公開されました。GitHubリポジトリはアクセス可能ですが、コミット、問題への応答、プルリクエストのレビューなど、活動は一切見られません。 このプロジェクトは維持管理ではなく、保存されている。
このライブラリは、.NET Framework時代と、その時代を特徴づけたモバイルプラットフォーム向けに設計されました。 インスタンスベースのAPIを通じてバーコードのデコードとエンコードを提供し、System.Drawing.Bitmap@入力を受け入れ、.Textおよび.BarcodeFormatプロパティを持つ結果オブジェクトを返す。 2012年当時、Windows上で動作する.NET Framework 4.xアプリケーションにとって、この方法は実用的で広く用いられていた。
MessagingToolkit.BarcodeはZXingの移植版として、そのJavaライブラリの基盤となるデコードエンジンを共有しつつ、独自のAPIサーフェスとメッセージング指向の拡張ポイントをその上に構築した。このライブラリは.NET Frameworkを基盤としており、その基盤から逸脱することはなかった。 .NET Standard のターゲットは公開されず、.NET Coreのサポートも追加されず、2014 年のリリース以降、いかなる種類のアップデートも行われなかった。
MessagingToolkit.Barcodeの主な特徴:
最終リリース年: 2014年、バージョン1.7.0.2、以降のアップデートなし
- ZXingの伝統: .NET固有の拡張機能を備えたJava ZXingライブラリの移植版
- インスタンスベースのAPI: 各操作に
BarcodeDecoderおよびBarcodeEncoderオブジェクトをインスタンス化する必要があります。 - System.Drawing依存性:
System.Drawing.Bitmapを受け入れ、返します。 -デコード呼び出しごとに単一の結果:コレクションではなく、1つの結果オブジェクト(またはnull)を返します - PDFはサポートされていません。入力はビットマップオブジェクトに限定されます。 ネイティブドキュメントの読み込みなし -自動フォーマット検出なし:フォーマットは事前に設定するか、ライブラリが画像のみから検出する必要があります -サポート終了プラットフォーム対象: Silverlight 3、4、5 をリストします。 NuGetメタデータ内のWindows Phone 7.0、7.5、7.8、および8.0 -最新の.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向けの商用バーコード読み取りおよび生成ライブラリです。 静的APIモデルで動作します:デコードにはBarcodeReader.Read()、エンコードにはBarcodeWriter.CreateBarcode()を使用し、インスタンス化されたリーダオブジェクトやライタオブジェクトを必要としません。 このライブラリは、独自の画像処理パイプラインをバンドルしており、System.Drawing@に依存しないため、Windows、Linux、macOS、コンテナ環境で互換性があります。
IronBarcodeはファイルパス、オブジェクト、バイト配列、PDFドキュメントのパスなど複数の入力タイプを読み込むことができます。 結果は単一のnull許容オブジェクトではなくコレクションとして返されるため、個別の設定なしに複数のバーコード画像を処理できます。 フォーマット検出は自動で行われます。ライブラリは、呼び出し元が事前に指定する必要なく、画像コンテンツからバーコードの種類を識別します。
IronBarcodeはPNG、JPEG、SVG、PDF、base64エンコードされた文字列など複数の出力形式をサポートする流暢な結果オブジェクトを返します。 このライブラリは定期的に更新され、新しいNuGetリリースを積極的に公開しています。
IronBarcodeの主な特徴:
- 静的API設計:@--CODE-38912--@@および@--CODE-38913--@@は、インスタンス化されたオブジェクトを必要としません。 -クロスプラットフォーム: Windows、Linux、macOS、Dockerコンテナ、クラウド機能で動作します
- System.Drawingへの依存関係なし:すべての最新の.NETプラットフォームと互換性のある内部イメージパイプラインを使用します -複数結果読み取り:デコード呼び出しごとにコレクションを返し、複数のバーコード画像をサポートします。
- PDF読み取り:外部抽出手順なしでPDF文書から直接バーコードを読み取ります -自動フォーマット検出:呼び出し側の設定なしで画像コンテンツからバーコードの種類を識別します -流暢な生成出力:単一の結果オブジェクトから PNG、JPEG、SVG、PDF、またはバイト配列として保存 -積極的なメンテナンス:セキュリティパッチと新機能を含む定期的なNuGetリリース -商用ライセンス:製品版での使用にはライセンスキーが必要です。 トライアルモードで動作します。
機能比較
以下の表は、MessagingToolkit.BarcodeとIronBarcodeの基本的な違いを概説したものです。
| フィーチャー | MessagingToolkit.Barcode | IronBarcode |
|---|---|---|
| 最終更新日 | 2014 | 2026年(アクティブ) |
| 最新の.NETサポート | なし | はい(.NET 6、7、8、9) |
| クロスプラットフォーム | いいえ(Windowsのみ) | はい(Windows、Linux、macOS) |
| PDFバーコード読み取り | なし | はい |
| 自動フォーマット検出 | なし | はい |
| 有効なセキュリティパッチ | なし | はい |
| 商用サポート | なし | プロフェッショナルサポート |
詳細な機能比較
| フィーチャー | MessagingToolkit.Barcode | IronBarcode |
|---|---|---|
| メンテナンス | ||
| 最終更新日 | 2014 | 2026年(アクティブ) |
| NuGetバージョン | 1.7.0.2(最終版) | 最新の情報、定期的に更新 |
| アクティブな開発 | なし | はい |
| セキュリティパッチ | 2014年以降はなし | 定期的なパッチ |
| プラットフォーム | ||
| .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 | なし | はい |
| ドッカー/コンテナ | なし | はい |
| 読む | ||
| 入力タイプ | ビットマップのみ | パス、ストリーム、バイト配列、PDF |
| PDFを読む | なし | はい(ネイティブ) |
| 自動フォーマット検出 | なし | はい |
| 画像ごとに複数のバーコード | なし | はい |
| System.Drawing の依存関係 | 必須 | なし |
| 世代 | ||
| 出力形式 | ビットマップのみ | PNG、JPEG、SVG、PDF、バイト配列 |
| Fluent出力API | なし | はい |
| System.Drawing の依存関係 | 必須 | なし |
| ライセンスについて | ||
| 商用サポート | なし | プロフェッショナルサポート |
| コンプライアンス監査結果 | 放棄されたとフラグ付けされています | 標準監査に合格する |
プラットフォームおよびフレームワークのサポート
これら2つのライブラリのプラットフォームストーリーは、12年の空白期間によって特徴づけられます。MessagingToolkit.Barcodeは、 .NETの歴史における特定の瞬間のために設計されました。 IronBarcodeは現代のために設計された。
MessagingToolkit.バーコードアプローチ
MessagingToolkit.Barcodeは、 .NET Framework 3.5、4.0、および4.5のみを対象としています。 .NET Standard名称はなく、 .NET Coreをターゲットとすることもなく、最新のランタイムとの互換性のためのシムもありません。 プロジェクトファイルがこのパッケージを参照し、最新の.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はフレームワークの近代化を阻害する要因として機能します。 CODE-38914--@@をターゲットとし、このパッケージを参照しているプロジェクトファイルは、最初にパッケージを削除しない限り、net8.0に変更することはできません。 このパッケージは単に時代遅れなだけでなく、プロジェクトが最新の.NET機能にアクセスできるようにするはずのターゲットフレームワークの変更を積極的に阻害している。
サポートされているフレームワークとデプロイメントターゲットの全リストについては、 IronBarcodeプラットフォームのドキュメントを参照してください。
IronBarcodeのアプローチ
IronBarcodeは.NET Framework 4.6.2から.NET 9までをサポートしており、従来のWindowsアプリケーションと最新のクロスプラットフォーム展開の両方に対応しています。 単一のNuGetパッケージで、個別のグラフィックライブラリやプラットフォーム固有の設定を必要とせずに、サポートされているすべてのプラットフォームにインストールできます。
クロスプラットフォームのサポートは、実際に有意義なものです。IronBarcodeの内部イメージパイプラインは.NET 6でWindows専用となったSystem.Drawingに依存していません。Dockerコンテナ、Linux上のAzure App Service、AWS Lambdaで実行されるものを含む、LinuxやmacOSをターゲットにしたアプリケーションは、Windowsのデプロイメントと同じIronBarcode APIと動作を使用します。
API設計
MessagingToolkit.BarCodeのAPIサーフェスは、インスタンスベースのオブジェクトとSystem.Drawing.Bitmap@入力を中心に設計されています。 IronBarcodeのAPIは静的で、複数の入力タイプに対応しています。どちらのライブラリもバーコードのエンコードとデコードを行いますが、呼び出し方法は大きく異なります。
MessagingToolkit.バーコードアプローチ
MessagingToolkit.BarCodeで読み取るには、BarcodeDecoderインスタンスを作成し、画像ファイルからBitmapを構築し、ビットマップを@@--CODE-38920--@に渡し、@@--CODE-38921--@にアクセスする前に結果がNULLであるかどうかをチェックする必要がありました。 CODE-38922--@@を作成し、その.Formatプロパティを設定し、@@--CODE-38924--@を呼び出して@@--CODE-38925--@を受け取り、そのビットマップで@@--CODE-38926--@を呼び出す。
// Only compiles on.NET Framework 4.5or earlier
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");
// Only compiles on.NET Framework 4.5or earlier
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")
CODE-38927--@@@の依存関係は偶発的なものではありません。 WindowsではGDI+が必要です。 .NET 6以降では、LinuxまたはmacOSでSystem.Drawingを使用しようとすると、実行時にPlatformNotSupportedExceptionがスローされます。たとえ、MessagingToolkit.BarCodeアセンブリを最新の.NETプロジェクトでロードできたとしても(フレームワーク・ターゲットがないためロードできません)、Bitmap依存関係は関係なくクロスプラットフォーム展開を妨げます。
IronBarcodeのアプローチ
IronBarcodeは全体を通して静的メソッドを使用しています。 CODE-38932--@@は、ファイルパス、@@--CODE-38933--@、バイト配列、またはPDFファイルパスを受け付けます。 結果として得られるのは、nullを許容する単一のオブジェクトではなく、コレクションです。 生成は、パラメータとして渡されたエンコード・タイプでBarcodeWriter.CreateBarcode()を使用し、結果オブジェクトは保存メソッドを直接公開します。
// Works on .NET 6, 7, 8, 9 — Windows, Linux, macOS, Docker
using IronBarCode;
IronBarCode.License.LicenseKey = "YOUR-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");
// Works on .NET 6, 7, 8, 9 — Windows, Linux, macOS, Docker
using IronBarCode;
IronBarCode.License.LicenseKey = "YOUR-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
' Works on .NET 6, 7, 8, 9 — Windows, Linux, macOS, Docker
IronBarCode.License.LicenseKey = "YOUR-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は2014年以降更新されていません。それ以降に発見された脆弱性(ライブラリ自体の画像解析ロジック、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 | ノート |
|---|---|---|
| コード-38936 | 静的 - @--コード-38937--@@@。 | インスタンスは不要です |
| コード-38938 | コード-38939 | パス、ストリーム、またはバイト配列を受け入れます |
| コード-38940 | コード-38941 | 物件名が変更されました |
| コード-38942 | コード-38943 | 物件名が変更されました |
| コード-38944 | 静的 - @--コード-38945--@@@。 | インスタンスは不要です |
| コード-38946 | CODE-38947--@@ (パラメータ) | フォーマットはプロパティではなく、パラメータとして渡されます。 |
| CODE-38948--@@は@@--CODE-38949--@を返します。 | コード-38950 | Bitmapではなく、fluentの結果を返します。 |
| コード-38951 | コード-38952 | 結果オブジェクトに対する流暢なメソッド |
| コード-38953 | コード-38954 | 列挙型の名前空間と値の名前が変更されました |
| コード-38955 | コード-38956 | 同じシンボル名 |
| 見つからない場合は null を返します | 空のコレクションを返します | CODE-38957--@@または.FirstOrDefault()をチェックしてください。 |
| .NET Framework 3.5~4.5のみ | .NET 4.6.2 から.NET 9 | 最新の.NETを完全にサポート |
チームがMessagingToolkit.BarcodeからIronBarcodeへの移行を検討する場合
チームがこの移行を検討するきっかけとなるシナリオには共通の構造がある。それは、プロジェクトの要件が2014年当時のフレームワークのライブラリでは対応できないレベルに達したということだ。
フレームワークの近代化要件
最も一般的な原因は、計画中または進行中の.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 の読み取りは不可能です。 ウェブ配信用にバーコードを生成するアプリケーションでは、SVGまたはbase64出力が必要です。MessagingToolkit.BarCodeはBitmapを返したため、追加の変換ステップとSystem.Drawing.Imaging依存関係が必要です。 製品要件がこれらの領域にまで拡大すると、従来のライブラリの制約が、そのAPIサーフェス内では回避できない技術的な制約となってしまう。
プラットフォームの目標成長
4つ目のシナリオは、新たな配備対象の追加です。 当初はWindowsのみのアプリケーションを構築し、Linuxホスティング、macOS開発環境、Dockerコンテナ、Linuxランタイム上のクラウド機能へと拡張しているチームは、System.Drawing@依存性がブロック問題として発生します。 MessagingToolkit.BarCodeは、すべての入出力操作にSystem.Drawing.Bitmapが必要で、System.Drawingは、.NET 6以降のWindows専用です。 Windows以外のデプロイメントターゲットでは、この依存関係は単なる互換性の問題ではなく、実行時エラーとなります。 IronBarcodeへの移行により、System.Drawing@の要件が完全に取り除かれ、チームが達成しようとしているクロスプラットフォームの展開が可能になります。
一般的な移行の考慮事項
MessagingToolkit.BarcodeからIronBarcodeに移行するチームは、移行の仕組みに影響を与えるいくつかの技術的な違いを認識しておく必要があります。
名前空間の置換
CODE-38965--@@を含むすべてのファイルには、@--CODE-38966--@@への更新が必要です。 コードベース全体で古い名前空間文字列を検索することが、移行範囲を特定するための最も確実な出発点となります。 MessagingToolkit.BarCodeで使用されるSystem.DrawingをBitmap型のためだけにインポートしているファイルは、IronBarcodeがそれを必要としないため、IronBarcodeが導入された時点でそのインポートを完全に削除することができます。
ターゲットフレームワークの変更
プロジェクトファイルから MessagingToolkit.Barcode を削除すると、ターゲットフレームワークのモニカーが更新されます。 CODE-38969--@@から<TargetFramework>net8.0</TargetFramework>への変更は、ブロック依存関係が取り除かれた時点で可能になります。 IronBarcodeは、この変更の両方の側面( .NET Framework 4.6.2と.NET 8の両方)をサポートしているため、フレームワークのアップグレードが完了する前にインストールすることができ、移行を一度に実行するのではなく、段階的に行うことができます。
BarcodeWriter 名前空間の違い
MessagingToolkit.BarCodeは、BarcodeEncoderを生成クラスとして使用し、@@--CODE-38973--@を呼び出す前に、フォーマットをプロパティとして設定しました(@@--CODE-38972--@)。 IronBarcodeはBarcodeWriter.CreateBarcode()を静的メソッドとして使用し、エンコードタイプをパラメータとして渡します。 列挙名は異なります:CODE-38975--@@はBarcodeEncoding.QRCodeに、@@--CODE-38977--@はBarcodeEncoding.Code128になります。 CODE-38979--@@の結果は、@@--CODE-38980--@、@@--CODE-38981--@、@@--CODE-38982--@、およびその他の出力メソッドを持つ流暢なオブジェクトです。
IronBarcodeの追加機能
IronBarcodeは、上記のセクションで説明した機能セットを超える機能を提供します。
- PDFバーコード読み取り: @--CODE-38984--@ PDF文書の各ページからバーコードを読み取り、ページ番号メタデータを含む結果を返します。 外部からのPDF抽出手順は不要です。 -バッチ処理:画像ファイルとPDFファイルが混在する複数のファイルを、一度に読み込むことができます。 自動フォーマット検出は、ファイル形式だけでなく、バーコードの種類にも適用されます。
- QRコードのカスタマイズ:生成されたQRコードには、
QRCodeWriterAPIを通じて、埋め込みロゴ、カスタムカラー、調整可能なクワイエットゾーンを含めることができます。 - 非同期マルチスレッド:@--CODE-38986--@ASP.NET Coreやその他の非同期.NETアプリケーションでasync/awaitパターンと統合するためのネイティブasyncオーバーロードを提供します。 -複数の出力形式に対応:生成されたバーコードは、PNG、JPEG、SVG、PDFとして保存したり、base64エンコードされた文字列として取得して、HTMLレスポンスやデータベースに直接埋め込むことができます。
.NETの互換性と将来の準備
IronBarcodeは、 .NET Framework 4.6.2から.NET 9までのすべての現行.NETバージョンをサポートしており、新しい.NETリリースが利用可能になると、それに対応したアップデートを受け取ります。 ライブラリの内部イメージパイプラインは、System.Drawingやその他のプラットフォーム固有のグラフィックスAPIへの依存を回避します。 .NET 10以降のリリースが公開されるにつれ、IronBarcodeの積極的な開発サイクルにより、ライブラリの制約のためにチームが.NETのアップグレードを延期する必要なく、互換性が維持されます。
結論
MessagingToolkit.BarcodeとIronBarcodeは、 .NETライブラリ開発における全く異なる2つの段階を象徴している。 MessagingToolkit.Barcodeは、 .NET Framework 4.xと2011年から2014年のモバイルプラットフォーム向けに開発されました。IronBarcodeは、2026年時点の.NET向けに開発されており、クロスプラットフォーム対応、コンテナ対応、そして活発なメンテナンスが行われています。 両者の技術的な差は、機能の同等性の問題ではない。 これは実行時の互換性の問題です。 MessagingToolkit.Barcode は最新の.NETプロジェクトではコンパイルされないため、ほとんどの実用的なシナリオでは、比較対象は 2 つの競合するオプションではありません。
MessagingToolkit.Barcode は、限定された正当な使用例に該当します。すなわち、 .NET Framework 4.x のみを対象とし、Windows 上でのみ動作し、より新しいランタイムにアップグレードされることはなく、セキュリティ監査要件が適用されない環境で動作するプロジェクトです。 その特定の構成では、ライブラリは出力を生成し、技術的な阻害要因は適用されません。 この構成は2026年に活動しているプロジェクトをほとんど示しておらず、12年間パッチが適用されていないというセキュリティ上の懸念は、どの構成にも当てはまる。
IronBarcodeは、 .NET 6、7、8、9といった最新の.NET環境でバーコード機能が必要なチームに適しています。 LinuxまたはmacOSへの展開。 Dockerまたはクラウドホスティング環境。 ASP.NET Coreアプリケーション またはPDFを処理するプロジェクトや、Windowsビットマップを超える出力形式のBarCodeを必要とするプロジェクト。静的APIは、インスタンスベースのモデルのインスタンス化のオーバーヘッドを削減し、System.Drawing依存性がないため、クロスプラットフォームの制約がなくなります。
基本的な評価は単純明快だ。 変更の予定がない.NET Framework 4.xを使用しているチームの場合、MessagingToolkit.Barcodeは引き続きその制約内で機能します。 その他のあらゆるシナリオ(近代化、コンプライアンス、クロスプラットフォーム展開、機能拡張など)においては、MessagingToolkit.Barcodeは適切な選択肢ではなく、 IronBarcodeは小規模で明確な移行パスを備えた直接的な代替手段となります。
よくある質問
MessagingToolkitバーコードとは何ですか?
MessagingToolkit BarCodeは、C#アプリケーションでバーコードを生成して読み取るための.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 はどの.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()でサポートされています。

