Neodynamic Barcode ProfessionalとIronBarcodeの比較:C#バーコードライブラリの比較
NeodynamicのバーコードリーダーSDKはQRコードを読み取ることができません。 Neodynamic SDKを両方購入しても、付属のジェネレーターが生成するQRコードを読み取ることができない場合があります。 QRコード、DataMatrix、PDF417、Aztecをサポートするジェネレーターと、それらのフォーマットを一切サポートしないリーダーという、このたった一つの矛盾こそが、Neodynamicのバーコードツールを実際に使用する際の体験を決定づけ、後述するIronBarcodeとの比較の枠組みとなっている。
Neodynamic Barcodeの理解
Neodynamicは、バーコード生成用のBarcode Professional SDKとバーコード読み取り用のBarcode Reader SDKという、完全に独立した2つの商用製品を通じてバーコード機能を提供しています。 各製品はそれぞれ独自のNuGetパッケージとして配布され、個別に購入が必要で、独自のライセンスキーが付属しています。 生成と読み込みの両方を必要とするプロジェクトでは、両方のパッケージを個別に統合し、それぞれを別々の更新サイクルで維持し、アプリケーション起動時に両方を設定する必要があります。
Barcode Professional SDKは、生成コンポーネントです。 線形形式(Code 128、Code 39、EAN-13、UPC-A、Codabar、ITF)および2D形式(QRコード、DataMatrix、PDF417、Aztec)を含む幅広いシンボル体系をサポートしています。 SDKはインスタンス・ベースのAPIを使用します。BarcodeInfoオブジェクトが構築され、そのプロパティが割り当てられ、GetImage()が呼び出されて、標準の@@--CODE-38992--@パイプラインを介して保存される@@--CODE-38991--@が生成されます。SDKはSystem.Drawingへの依存を持ち、これはクロスプラットフォーム展開を制約します。
バーコードリーダーSDKは、読み取りコンポーネントです。 これは、System.Drawing.Bitmapを受け付け、1Dシンボロジーのみの結果を返します。 QRコード、DataMatrix、PDF417、Aztec、およびその他の2次元フォーマットは、このリーダーではサポートされていません。 2次元バーコードが送信された場合、SDKは結果を返しません。例外をスローするのではなく、単に空の結果セットを生成します。 Neodynamic製品を使用しているチームが、生成ワークフローを構築した後にこの制限を発見した場合、2D読み取り機能を回復するには、Neodynamicエコシステム外の3つ目のライブラリを追加する必要があることがわかります。
ネオダイナミックバーコードの主なアーキテクチャ特性:
-生成用と読み取り用で別々の製品が必要です。両方の機能を使用するプロジェクトでは、2つのNuGetパッケージ、2回の購入、および2つのライセンスキーが必要です。
- 2D生成のみで2D読み取り機能なし: Barcode Professional SDKはQRコード、DataMatrix、PDF417、Aztecを生成しますが、付属のBarcode Reader SDKはこれらのフォーマットを読み取ることができません。
- インスタンスベースの生成API:生成には、
BarcodeInfoオブジェクトを構築し、GetImage()を呼び出す前にプロパティを割り当てる必要があります。 - System.Drawing依存性:どちらのSDKも
System.Drawingに依存しているため、追加設定なしでLinuxやコンテナ環境でのデプロイが制限されます。 - 1Dのみの読み取り範囲:バーコードリーダーSDKは、Code 128、EAN-13、UPC-A、Code 39、Codabar、Interleaved 2 of 5、およびMSI/Plesseyをサポートしています。 2Dフォーマットは含まれていません。 -ネイティブの PDF サポートなし:どちらの SDK も PDF ドキュメントから直接バーコードを読み取ることはできません。 別途、画像抽出の手順が必要です。 -自動フォーマット検出なし:リーダーは画像コンテンツからではなく、リーダーがサポートするフォーマットからフォーマットを推測します。
Split SDKアーキテクチャ
Neodynamic SDK を両方購入するプロジェクトでは、起動時に 2 つの別々のライセンス・ブロックを設定する必要があります。デュアル LicenseOwner と LicenseKey 割り当てでは、異なる名前空間と異なるクラス名が使用され、どちらのブロックも他方を意識しません:
// Neodynamic: two products, two license configurations
using Neodynamic.SDK.Barcode;
using Neodynamic.SDK.BarcodeReader;
// Generation license (Barcode Professional SDK)
BarcodeInfo.LicenseOwner = "Company";
BarcodeInfo.LicenseKey = "GEN-KEY";
// Reader license — separate purchase, separate key
Neodynamic.SDK.BarcodeReader.BarcodeReader.LicenseOwner = "Company";
Neodynamic.SDK.BarcodeReader.BarcodeReader.LicenseKey = "READ-KEY";
// Neodynamic: two products, two license configurations
using Neodynamic.SDK.Barcode;
using Neodynamic.SDK.BarcodeReader;
// Generation license (Barcode Professional SDK)
BarcodeInfo.LicenseOwner = "Company";
BarcodeInfo.LicenseKey = "GEN-KEY";
// Reader license — separate purchase, separate key
Neodynamic.SDK.BarcodeReader.BarcodeReader.LicenseOwner = "Company";
Neodynamic.SDK.BarcodeReader.BarcodeReader.LicenseKey = "READ-KEY";
Imports Neodynamic.SDK.Barcode
Imports Neodynamic.SDK.BarcodeReader
' Neodynamic: two products, two license configurations
' Generation license (Barcode Professional SDK)
BarcodeInfo.LicenseOwner = "Company"
BarcodeInfo.LicenseKey = "GEN-KEY"
' Reader license — separate purchase, separate key
Neodynamic.SDK.BarcodeReader.BarcodeReader.LicenseOwner = "Company"
Neodynamic.SDK.BarcodeReader.BarcodeReader.LicenseKey = "READ-KEY"
このパターンは、開発環境、ステージング環境、本番環境といったあらゆる環境で繰り返され、いずれかの製品がアップグレードまたは更新される際には必ず維持されなければなりません。
IronBarcodeを理解する
IronBarcodeは、 Iron Software社が開発した商用.NETバーコードライブラリで、単一のNuGetパッケージと単一のライセンスを通じてバーコードの生成と読み取り機能を提供します。 このライブラリは静的APIモデルを使用しています:生成はBarcodeWriter.CreateBarcode()を通して行われ、読み込みはBarcodeReader.Read()を通して行われます。 どちらの方法も、フォーマット固有のコードパスを必要とせず、サポートされているすべてのシンボル体系で動作します。
IronBarcodeはSystem.Drawing@に依存せずに構築されているため、Linux、macOS、Dockerコンテナでプラットフォーム固有の設定なしにデプロイ可能です。 このライブラリは、画像ファイル、画像ストリーム、およびPDFドキュメントからバーコードをネイティブに読み取ることができ、PDFソースの場合には別途画像抽出の手順を必要としません。
IronBarcodeの主な特徴:
-生成と読み取りのための単一パッケージ: 1つのNuGetパッケージ、1つのライセンスキー、および1つの構成ブロックで、すべてのバーコード操作をカバーします。
- 1Dと2Dの統合サポート:同じAPIで、Code 128、EAN-13、QRコード、DataMatrix、PDF417、Aztec、および50種類以上のシンボルを読み取り、生成できます。
- 静的フルエントAPI: @--CODE-39003--@@ 連鎖可能な結果を返します; ファイルパス、ストリーム、PDFドキュメントを受け付けます。 -自動フォーマット検出:リーダーは、呼び出し元が期待されるフォーマットを指定する必要なく、画像コンテンツからシンボルを識別します。
- System.Drawingへの依存関係なし: Linuxおよびコンテナ内でのクロスプラットフォーム展開は、追加のネイティブライブラリ設定なしで動作します。 -ネイティブPDF読み取り: PDF文書に埋め込まれたバーコードを直接読み取り、バーコード値とともにページ番号のメタデータを返します。
- 非同期およびバッチ処理--CODE-39005--@@および複数ページのバッチ処理は、高スループットのサーバー作業負荷をサポートします。
機能比較
以下の表は、Neodynamic製品とIronBarcodeの主な違いをまとめたものです。
| フィーチャー | ネオダイナミック バーコードProfessional | ネオダイナミックバーコードリーダー | IronBarcode |
|---|---|---|---|
| バーコード生成 | はい | なし | はい |
| 1次元バーコード読み取り | なし | はい | はい |
| 2次元バーコード読み取り | なし | なし | はい |
| 必要な製品 | 1(世代のみ) | 1(閲覧のみ) | 1(両方) |
| ライセンスキーが必要です | 購入商品1点につき1点 | 購入商品1点につき1点 | 合計1個 |
| ネイティブPDFバーコード読み取り | なし | なし | はい |
| System.Drawing の依存関係 | はい | はい | なし |
詳細な機能比較
| フィーチャー | ネオダイナミック バーコードProfessional | ネオダイナミックバーコードリーダー | IronBarcode |
|---|---|---|---|
| 世代 | |||
| コード128生成 | はい | 該当なし | はい |
| EAN-13 / UPC-A世代 | はい | 該当なし | はい |
| コード39世代 | はい | 該当なし | はい |
| QRコード生成 | はい | 該当なし | はい |
| データマトリックスの生成 | はい | 該当なし | はい |
| PDF417生成 | はい | 該当なし | はい |
| アステカ世代 | はい | 該当なし | はい |
| 読む | |||
| コード128の読み取り | 該当なし | はい | はい |
| EAN-13 / UPC-A 読み取り | 該当なし | はい | はい |
| コード39の読み取り | 該当なし | はい | はい |
| Codabarの読書 | 該当なし | はい | はい |
| QRコードの読み取り | 該当なし | いいえ | はい |
| データマトリックスの読み取り | 該当なし | いいえ | はい |
| PDF417の閲覧 | 該当なし | いいえ | はい |
| アステカ文字の読み方 | 該当なし | いいえ | はい |
| 自動フォーマット検出 | 該当なし | なし | はい |
| 入力ソース | |||
| 画像ファイル入力 | はい | はい | はい |
| PDF文書入力 | なし | なし | はい |
| ストリーム入力 | はい | はい | はい |
| プラットフォームとライセンス | |||
| System.Drawing の依存関係 | はい | はい | なし |
| Linux / Docker のサポート | 制限的 | 制限的 | はい |
| .NET Standard 2.0 | はい | はい | はい |
| .net 8 / .net 9 | はい | 制限的 | はい |
| 必要なNuGetパッケージ | 商品1点につき1点 | 商品1点につき1点 | 合計1個 |
| ライセンスキーが必要です | 商品1点につき1点 | 商品1点につき1点 | 合計1個 |
読み取りフォーマットのサポート
この比較において最も重要な技術的な違いは、2つのNeodynamic SDKとIronBarcode間の読み取りフォーマットの境界である。
ネオダイナミック・バーコードリーダー・アプローチ
Neodynamicバーコードリーダーは、直線型バーコードのみをサポートしています。 2次元バーコードがリーダーに送信されると、SDKは空またはnullの結果セットを返します。 例外は発生せず、何が起こったかを示すエラーメッセージも表示されません。 このSDKを使用するチームは、通常、QRコード画像に対してリーダーを呼び出すコードをデプロイした後、結果コレクションが常に空であることに気づき、この制限を発見します。
Neodynamic Readerを使用するコードベースでよく見られる防御パターンは、2Dフォーマットが想定される場合に例外を発生させる明示的なチェックです。
// ネオダイナミックバーコードリーダー SDK: QR code reading is not supported
using Neodynamic.SDK.BarcodeReader;
using System.Drawing;
public string ReadQrCode(string imagePath)
{
using var bitmap = new Bitmap(imagePath);
var results = BarcodeReader.Read(bitmap);
// Results will be null or empty — QR codes are not recognised by this SDK
if (results == null || !results.Any())
{
throw new NotSupportedException(
"Neodynamic Barcode Reader does not support QR codes");
}
return results.First().Value;
}
// ネオダイナミックバーコードリーダー SDK: QR code reading is not supported
using Neodynamic.SDK.BarcodeReader;
using System.Drawing;
public string ReadQrCode(string imagePath)
{
using var bitmap = new Bitmap(imagePath);
var results = BarcodeReader.Read(bitmap);
// Results will be null or empty — QR codes are not recognised by this SDK
if (results == null || !results.Any())
{
throw new NotSupportedException(
"Neodynamic Barcode Reader does not support QR codes");
}
return results.First().Value;
}
Imports Neodynamic.SDK.BarcodeReader
Imports System.Drawing
Public Function ReadQrCode(imagePath As String) As String
Using bitmap As New Bitmap(imagePath)
Dim results = BarcodeReader.Read(bitmap)
' Results will be null or empty — QR codes are not recognised by this SDK
If results Is Nothing OrElse Not results.Any() Then
Throw New NotSupportedException("Neodynamic Barcode Reader does not support QR codes")
End If
Return results.First().Value
End Using
End Function
このメソッドは、Neodynamic Reader SDK単体では完了できません。 CODE-39006は回避策ではなく、2D入力に対して読者が提供できる唯一の正直な応答です。
IronBarcodeのアプローチ
IronBarcodeは同じBarcodeReader.Read()呼び出しを通してサポートされているすべてのシンボルを読み取ります。 画像の内容からフォーマットが自動的に検出されます。 QRコード、Code 128、およびDataMatrixバーコードはすべて、同一の呼び出しコードを使用します。
using IronBarCode;
public string ReadQrCode(string imagePath)
{
// QR codes, DataMatrix, PDF417 — all handled automatically
var result = BarcodeReader.Read(imagePath).FirstOrDefault();
return result?.Value;
}
using IronBarCode;
public string ReadQrCode(string imagePath)
{
// QR codes, DataMatrix, PDF417 — all handled automatically
var result = BarcodeReader.Read(imagePath).FirstOrDefault();
return result?.Value;
}
Imports IronBarCode
Public Function ReadQrCode(imagePath As String) As String
' QR codes, DataMatrix, PDF417 — all handled automatically
Dim result = BarcodeReader.Read(imagePath).FirstOrDefault()
Return If(result?.Value, Nothing)
End Function
呼び出し元は、想定されるフォーマットを指定していません。 IronBarcodeはシンボルを識別し、値を返します。 マルチバーコード検出や画像前処理などの画像読み取りオプションの詳細については、 "画像からのバーコード読み取りガイド"を参照してください。
バーコード生成
Neodynamic Barcode ProfessionalとIronBarcodeはどちらも、1次元および2次元バーコードを生成できます。 違いは出力能力ではなく、APIのスタイルと依存関係の規模にある。
ネオダイナミック・バーコード・Professional・アプローチ
Neodynamicの生成APIはインスタンスベースです。 CODE-39008--@@オブジェクトが構築され、そのプロパティが個別に割り当てられ、@@--CODE-39009--@が呼び出されて@@--CODE-39010--@が返されます。 画像は、System.Drawing.Imaging.ImageFormat列挙を使用して保存されます:
using Neodynamic.SDK.Barcode;
// Configure license first
BarcodeInfo.LicenseOwner = "Your Company";
BarcodeInfo.LicenseKey = "YOUR-KEY";
// Build the barcode through property assignment
var barcode = new BarcodeInfo();
barcode.Value = "12345678";
barcode.Symbology = Symbology.Code128;
barcode.TextAlign = BarcodeTextAlignment.BelowCenter;
barcode.Dpi = 300;
// Get image and save via System.Drawing
System.Drawing.Image image = barcode.GetImage();
image.Save("output.png", System.Drawing.Imaging.ImageFormat.Png);
using Neodynamic.SDK.Barcode;
// Configure license first
BarcodeInfo.LicenseOwner = "Your Company";
BarcodeInfo.LicenseKey = "YOUR-KEY";
// Build the barcode through property assignment
var barcode = new BarcodeInfo();
barcode.Value = "12345678";
barcode.Symbology = Symbology.Code128;
barcode.TextAlign = BarcodeTextAlignment.BelowCenter;
barcode.Dpi = 300;
// Get image and save via System.Drawing
System.Drawing.Image image = barcode.GetImage();
image.Save("output.png", System.Drawing.Imaging.ImageFormat.Png);
Imports Neodynamic.SDK.Barcode
Imports System.Drawing
Imports System.Drawing.Imaging
' Configure license first
BarcodeInfo.LicenseOwner = "Your Company"
BarcodeInfo.LicenseKey = "YOUR-KEY"
' Build the barcode through property assignment
Dim barcode As New BarcodeInfo()
barcode.Value = "12345678"
barcode.Symbology = Symbology.Code128
barcode.TextAlign = BarcodeTextAlignment.BelowCenter
barcode.Dpi = 300
' Get image and save via System.Drawing
Dim image As Image = barcode.GetImage()
image.Save("output.png", ImageFormat.Png)
SDKは、DPI制御、テキスト配置、カラー設定、静音ゾーンのサイズ設定など、正当なカスタマイズオプションを提供します。 これらは、正確な物理的寸法が重要な印刷ワークフローにおいて役立ちます。 発電能力自体は完成している。 移行を促す制約は、生成側ではなく、読み取り側にある。
IronBarcodeのアプローチ
IronBarcodeは、流暢な静的解析手法を採用しています。 エンコーディングとデータはBarcodeWriter.CreateBarcode()にパラメータとして渡され、出力形式は返されたオブジェクトのメソッド名として表現されます。 CODE-39013のインポートは不要です:
using IronBarCode;
BarcodeWriter.CreateBarcode("12345678", BarcodeEncoding.Code128)
.SaveAsPng("output.png");
using IronBarCode;
BarcodeWriter.CreateBarcode("12345678", BarcodeEncoding.Code128)
.SaveAsPng("output.png");
Imports IronBarCode
BarcodeWriter.CreateBarcode("12345678", BarcodeEncoding.Code128) _
.SaveAsPng("output.png")
2次元バーコード生成については、専用のQRCodeWriter@クラスがQRコードに特化した追加オプションを提供します:
using IronBarCode;
QRCodeWriter.CreateQrCode("https://example.com", 500, QRCodeWriter.QrErrorCorrectionLevel.High)
.SaveAsPng("qrcode.png");
using IronBarCode;
QRCodeWriter.CreateQrCode("https://example.com", 500, QRCodeWriter.QrErrorCorrectionLevel.High)
.SaveAsPng("qrcode.png");
Imports IronBarCode
QRCodeWriter.CreateQrCode("https://example.com", 500, QRCodeWriter.QrErrorCorrectionLevel.High) _
.SaveAsPng("qrcode.png")
サイズ設定や注釈オプション付きの1次元シンボルを生成する方法については、 "1次元バーコードの作成ガイド"を参照してください。 DataMatrixやPDF417を含む2次元バーコードの作成については、 "2次元バーコードの作成ガイド"を参照してください。
ライセンス供与と製品構造
ライセンスモデルは、生成と読み取りの両方を必要とするシステムを構築するチームにとって、2つの選択肢間の最も実用的な違いの1つと言えるでしょう。
新力動的アプローチ
Neodynamicのバーコード機能は、2つの別個のライセンス製品に分かれています。 Barcode Professional SDKは生成機能を、Barcode Reader SDKは読み取り機能をそれぞれカバーしています。 各製品は個別に購入する必要があり、それぞれにライセンスキーが付属しています。 両方の製品を購入するチームは、2つのLicenseOwner / LicenseKey構成ブロックを維持し、2つの別々の更新日を追跡し、問題が発生したときに2つの別々のサポートチャネルに対処する必要があります。
Barcode Professional SDKの価格は、開発者ライセンス1つあたり約245ドルです。 バーコードリーダーSDKは別途費用がかかります。そのため、バーコード生成と1次元読み取りの両方を必要とするプロジェクトでは、開発者1人あたり合計で500ドル前後、あるいはそれ以上の費用がかかります。 2D読み取りを必要とするプロジェクトでは、Neodynamic製品ではどんな価格帯であってもその要件を満たすことはできません。3つ目のライブラリを追加する必要があります。 単一の統合ライセンスでカバーされる内容の完全なリストについては、 IronBarcodeがサポートするバーコードフォーマットのページをご覧ください。
IronBarcodeのアプローチ
IronBarcodeは、単一のライセンスキーで、サポートされているすべてのシンボル体系におけるバーコードの生成と読み取りといった、すべてのバーコード操作を網羅する単一製品として販売されています。 別途リーダーライセンス、別途ジェネレーターライセンスは不要で、2Dフォーマットのサポートに追加費用もかかりません。 ライセンスキーはアプリケーション起動時に一度設定され、それ以上の設定は不要です。
IronBarCode.License.LicenseKey = "YOUR-KEY";
IronBarCode.License.LicenseKey = "YOUR-KEY";
Imports IronBarCode
IronBarCode.License.LicenseKey = "YOUR-KEY"
IronBarcode Liteは、開発者1人あたり749ドルで、すべての機能を網羅しています。 現在の価格帯とボリュームオプションについては、IronBarcodeのライセンスページをご覧ください。
APIマッピングリファレンス
| ネオダイナミックAPI | IronBarcode相当品 | ノート |
|---|---|---|
| コード-39017 | コード-39018 | 単一のキーで所有者とキーのペアを置き換えます |
| コード-39019 | (part of single key above) | 所有者欄は別途ありません |
| コード-39020 | (removed) | 不要 |
| コード-39021 | (removed) | 不要 |
| コード-39022 | コード-39023 | 静的メソッド、インスタンスなし |
| コード-39024 | コード-39025の最初のパラメータ | 建設段階で合格 |
| コード-39026 | コード-39027 | 2番目のパラメータ |
| コード-39028 | コード-39029 | 往復全額サポート |
| コード-39030 | コード-39031 | 流暢、ImageFormat 列挙なし |
| コード-39032 | コード-39033 | ファイルパスがビットマップオブジェクトを置き換えます |
| コード-39034 | コード-39034 | 同じプロパティ名 |
| コード-39036--QR用 | コード-39033 | 標準の読み取り呼び出しに置き換えてください |
チームがNeodynamic BarcodeからIronBarcodeへの移行を検討する際
QRコード読み取り要件
NeodynamicからIronBarcodeへ移行する最も一般的なケースは、Barcode Professional SDKで生成されたQRコードをBarcode Reader SDKで読み取ることができないという問題が発覚することです。 製品ラベルシステム、在庫管理ツール、または文書追跡ワークフローを構築するチームは、多くの場合、生成と読み取りをより大きなシステムの別々のフェーズとして実装します。 Barcode Professionalを使用して最初に生成を行った場合、読み取りコンポーネントを試行したときに初めて、リーダーの制限が明らかになります。 その時点で、プロジェクトは既に生成にNeodynamicを採用することを決定しており、2D読み取りをカバーするために3つ目のライブラリを追加すると、統一されたSDKがあれば発生しないバージョン管理の複雑さが生じる。
製品の複雑さを軽減する
一部のチームが移行する理由は、特定のフォーマットのギャップではなく、概念的には単一の機能であるものを2つの異なる製品で維持することによるオーバーヘッドが、繰り返し発生する摩擦点となるためである。 ファイル内の2つのパッケージ、2つのライセンス更新サイクル、2セットのリリースノートのレビュー、.NETやWindowsのアップデートが適用されたときの非互換性の2つの潜在的な原因 - このようなオーバーヘッドは、単一の統一パッケージが提供する以上の機能を提供するものではありません。.NETのアップグレードの一環として依存関係の監査を行っているチームは、Neodynamicのデュアルパッケージ配置を簡素化の機会として認識することがよくあります。
PDFバーコード処理
バーコードを含むPDF文書を処理するアプリケーションは、Neodynamic SDKの両方が同時に不十分となるシナリオの一例である。 生成用SDKも読み取り用SDKも、PDFファイルを開いてページからバーコード値を抽出することはできません。 出荷明細書、請求書、医療記録、またはPDFにバーコードが埋め込まれているあらゆる文書ワークフローを扱うチームは、読み取りを行う前に中間的な画像抽出ステップを実施する必要があります。 その抽出手順には追加のライブラリが必要となるため、このプロジェクトは既に3つ目の依存関係を抱えており、単一のIronBarcodeインストールで解消されるはずの制限を回避している。
読み書きにおけるフォーマットの一貫性
大規模なバーコードワークフローを運用するチームは、生成時と読み取り時におけるフォーマットサポートの不一致が、テストや検証上の問題を引き起こす場合があることに気づく。 システムが特定の目的でQRコードを生成し、別の目的で異なるフォーマットのコードを読み取る場合、生成器がサポートする形式と読み取り器がサポートする形式との間に乖離が生じるため、往復テストにギャップが生じる。 生成と読み込みが同じライブラリとサポートされるフォーマットリストを共有するシステムの方が、検証が容易になる。 生成されたバーコードが正常に読み取れるかどうかの検証は、複数のライブラリを統合したテストではなく、単一のライブラリでの操作となる。
一般的な移行の考慮事項
二重パッケージの除去
Neodynamicから移行するには、両方のNuGetパッケージを削除する必要があります:CODE-39039--@@とNeodynamic.SDK.BarcodeReader。 また、対応する .csproj ファイルと using ディレクティブをソースファイルから削除する必要があります。 それぞれdotnet remove package@を実行するだけで十分です; 両者の間には、追加のクリーンアップを必要とするような共通の依存関係はありません。
デュアルライセンス構成のクリーンアップ
2つのライセンス設定ブロック(BarcodeInfoとNeodynamic.SDK.BarcodeReader.BarcodeReader)は、1つの@@--CODE-39046--@の割り当てに置き換えられます。 この割り当ては、アプリケーションの起動時に一度だけ行われ、通常はProgram.csまたはアプリケーションの依存性注入ブートストラップで行われます。Neodynamic のライセンス・キーを保存している設定ファイルや環境変数は、移行が確認された後に破棄できます。
サポートされていない例外の削除
開発中に2D読み取り制限に遭遇したコードベースには、QRコードまたはDataMatrix読み取り用にNotSupportedException@を投げるプレースホルダメソッドが含まれていることがよくあります。 これらの方法は回避策ではなく、その機能が存在しなかったことを正直に認めるものです。IronBarcodeに移行した後、このようなメソッドは標準のBarcodeReader.Read(imagePath)呼び出しに置き換えられます。 特別な取り扱いは必要ありません。 フォーマットは自動的に検出されます。
IronBarcodeの追加機能
IronBarcodeは、基本的な比較ポイント以外にも、Neodynamicのどちらの製品にも搭載されていない機能を提供しています。
- ネイティブ PDF バーコード読み取り: @--CODE-39050--@@ PDF ドキュメントから直接バーコードを読み取り、バーコードの値と一緒にページ番号情報を返します。
- 非同期バッチ処理:@--CODE-39051--@大量の画像やドキュメントを同時に処理するサーバーサイドのワークロードに適したノンブロッキング読み取りをサポートします。 -機械学習によるエラー訂正: IronBarcodeは、機械学習に基づくエラー訂正を適用し、標準的なデコーダーでは空の結果を返すような、破損、部分的に隠蔽、または低解像度のバーコード画像から値を復元します。
- マルチバーコード検出: 1回の@--CODE-39052--@@呼び出しで、画像内に存在するすべてのバーコードを返します。
- PDFへのバーコード印字: IronBarcodeは、別途PDFライブラリを用意することなく、既存のPDFドキュメントにバーコード画像を直接書き込むことができます。 -画像前処理オプション:輝度補正、回転処理、ノイズ低減などの設定をリーダー上で構成することで、困難な条件下で撮影された画像の認識率を向上させることができます。
.NETの互換性と将来の準備
IronBarcodeは、.NET Standard 2.0、.NET Framework 4.6.2以上、.NET Core 3.1、および.NET 8と.NET 9を含む現在のすべての.NETリリースをサポートしています。このライブラリはSystem.Drawingに依存しないため、Linux上やDockerコンテナ内で変更なく動作します。 Neodynamic BarCode Reader SDKの.NET 8および.NET 9との互換性は、その依存性と、その依存性がWindows以外の環境で必要とする追加のネイティブライブラリ構成のために制限されています。 IronBarcodeは.NETのリリースサイクルに合わせた定期的なアップデートを受けており、2026年後半にリリース予定の.NET 10との互換性も、積極的な開発の一環として維持されています。
結論
Neodynamic Barcode Professional SDKとNeodynamic Barcode Reader SDKは、生成機能と読み取り機能がそれぞれ独立した商用製品であり、機能範囲も異なるという、分割された製品モデルを採用しています。 このジェネレーターは、QRコード、DataMatrix、PDF417、およびAztecに対応しています。 読者はそうは思わない。 この非対称性は些細な欠点ではなく、2Dバーコードの読み取りを必要とするあらゆるアプリケーションにおいて、2つの製品が完全なバーコードワークフローを構成できないことを意味し、モバイル決済、医薬品追跡、配送物流、文書処理などで最も広く使用されているフォーマットが、リーダーの機能セットに含まれていないことを意味する。
Neodynamic Barcode Professionalは、バーコード生成のみを必要とする場合には、正当な選択肢となります。 このSDKは、幅広いシンボル体系で高品質な出力を生成し、DPI制御と印刷固有のカスタマイズをサポートし、より広範なNeodynamic ThermalLabelエコシステムと統合します。 Windowsのみの環境で、1次元読み取りのみを必要とするチームも、フォーマットの制限に悩まされることなくバーコードリーダーSDKを使用できます。 その狭い運用範囲(生成のみ、またはWindows上での1次元読み取りのみ)においては、Neodynamic社の製品は謳い文句通りの性能を発揮する。
IronBarcodeは、プロジェクトで生成と読み取りの両方が必要な場合、ワークフローのいずれかの部分に2Dフォーマットが含まれる場合、PDFドキュメントがバーコード入力のソースとなる場合、または依存関係管理のために単一パッケージのアーキテクチャが好ましい場合に最適な選択肢です。 統一されたライセンスモデル、System.Drawing@依存関係がないこと、サポートされているすべてのシンボロジーを横断する自動フォーマット検出により、クロスプラットフォームアプリケーション、クラウドデプロイメント、多様なソースからのバーコードフォーマットのミックスを処理するシステムに適しています。
最終的にどちらを選ぶかという問題は、Neodynamicのリーダーにおけるフォーマットの境界が、対象となるプロジェクトに影響を与えるかどうかという点に帰着する。 ワークフローがWindows上での1次元バーコードの生成と読み取りに限定されているチームにとっては、その限界に直面することはないかもしれない。 同一システム内でQRコードの生成側と読み取り側の両方でQRコードを必要とするチームにとって、Neodynamic製品ファミリー内ではその境界を越えることは不可能であり、どのライブラリを選択しても別のライブラリが必要になります。
よくある質問
Neodynamic BarCode Professionalとは?
Neodynamic BarCode Professionalは、C#アプリケーションでバーコードを生成および読み取るための.NETバーコードライブラリです。これは、開発者が.NETプロジェクト用のバーコードソリューションを選択する際に評価するいくつかの選択肢の1つです。
Neodynamic Barcode ProfessionalとIronBarcodeの主な違いは何ですか?
IronBarcodeはインスタンス管理を必要としない静的でステートレスなAPIを使用していますが、Neodynamic BarCode Professionalは通常、使用前にインスタンスの作成と設定が必要です。IronBarcodeはまた、ネイティブPDFサポート、自動フォーマット検出、およびすべての環境でのシングルキーライセンスを提供します。
IronBarcodeはNeodynamic Barcode Professionalよりもライセンスが簡単ですか?
IronBarcodeは単一のライセンスキーで開発環境と本番環境の両方をカバーします。これは、SDKキーとランタイムキーを分離するライセンスシステムと比較して、CI/CDパイプラインとDocker構成を簡素化します。
IronBarcode はNeodynamic Barcode Professionalがサポートしているすべてのバーコードフォーマットをサポートしていますか?
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はNeodynamic Barcode Professionalと比較してバッチ処理をどのように処理しますか?
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インストーラーやランタイムファイルは必要ありません。
Neodynamicとは異なり、購入前にIronBarcodeを評価することはできますか?
IronBarcodeのトライアルモードでは、完全なデコードされたバーコード値を返します。購入を決定する前に、ご自身のドキュメントで読み取り精度をベンチマークすることができます。
Neodynamic BarCode ProfessionalとIronBarcodeの価格の違いは何ですか?
IronBarcodeは、開発および量産をカバーする永続的なシングルデベロッパーライセンスで749ドルからご利用いただけます。価格の詳細とボリュームオプションはIronBarcodeのライセンスページでご覧いただけます。別途ランタイムライセンスは必要ありません。
Neodynamic BarCode ProfessionalからIronBarcodeへの移行は簡単ですか?
Neodynamic BarCode ProfessionalからIronBarcodeへの移行は、主にインスタンスベースのAPIコールをIronBarcodeのスタティックメソッドに置き換え、ライセンスの定型文を削除し、結果のプロパティ名を更新します。ほとんどの移行はコードを追加するのではなく、コードを削減します。
IronBarcodeはロゴ入りQRコードを生成できますか?
はい。QRCodeWriter.CreateQrCode().AddBrandLogo("logo.png")は、設定可能なエラー修正機能付きで、ブランド画像をネイティブにQRコードに埋め込みます。カラーQRコードもChangeBarCodeColor()でサポートされています。

