Infragistics BarcodeとIronBarcodeの比較:C#バーコードライブラリの比較
Neodynamic Barcode vs IronBarcode: 分割SDKアーキテクチャとフォーマットサポートの比較
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を使用します: System.Drawing.Imageを生成します。.NET FrameworkエディションはSystem.Drawingへの依存を持ちます。 別個 for .NET Standard版がComponentSourceを通じて配布されています。
バーコードリーダーSDKは、読み取りコンポーネントです。 それはSystem.Drawing.Bitmapを受け取り、1次元のシンボロジーのみの結果を返します。 QRコード、DataMatrix、PDF417、Aztec、およびその他の2次元フォーマットは、このリーダーではサポートされていません。 2次元バーコードが送信された場合、SDKは結果を返しません。例外をスローするのではなく、単に空の結果セットを生成します。 Barcode Reader SDKは2019年12月31日にエンドオブサービスライフが通知され、NuGetパッケージ(Neodynamic.SDK.BarcodeReader 1.0.2000)は2012年7月以降更新されておらず、.NET Framework 2.0/3.x/4.xが唯一のターゲットです。 したがって、2D読み取り機能を回復するには、Neodynamicエコシステム外の第3のライブラリを追加する必要があります。
ネオダイナミックバーコードの主なアーキテクチャ特性:
-生成用と読み取り用で別々の製品が必要です。両方の機能を使用するプロジェクトでは、2つのNuGetパッケージ、2回の購入、および2つのライセンスキーが必要です。
- 2D生成のみで2D読み取り機能なし: Barcode Professional SDKはQRコード、DataMatrix、PDF417、Aztecを生成しますが、付属のBarcode Reader SDKはこれらのフォーマットを読み取ることができません。
- インスタンスベースの生成API:生成するには
GetBarcodeImage()を呼び出す必要があります。 - System.Drawing依存性(多くのエディションで依存あり):Barcode Professional .NET WindowsエディションおよびBarcode Reader SDKは
System.Drawingに依存しており、これによりLinuxおよびコンテナデプロイメントが制限されます。 Barcode Professional .NET Standard版はSkiaSharpを使用し、その依存を避けます。 - 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つの別々のライセンスブロックを構成しなければなりません。二重のLicenseKey割り当ては異なる名前空間と異なるクラス名を使用し、どちらのブロックも他方を認識していません。
// Neodynamic: two products, two license configurations
using Neodynamic.SDK.Barcode;
using Neodynamic.SDK.BarcodeReader;
// Generation license (Barcode Professional SDK)
BarcodeProfessional.LicenseOwner = "Company";
BarcodeProfessional.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)
BarcodeProfessional.LicenseOwner = "Company";
BarcodeProfessional.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)
BarcodeProfessional.LicenseOwner = "Company"
BarcodeProfessional.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モデルを使用します: 生成はBarcodeReader.Read()を介します。 どちらの方法も、フォーマット固有のコードパスを必要とせず、サポートされているすべてのシンボル体系で動作します。
IronBarcodeはSystem.Drawingへの依存なしに構築されており、プラットフォーム固有の構成なしでLinux、macOS、Dockerコンテナにデプロイできます。 このライブラリは、画像ファイル、画像ストリーム、およびPDFドキュメントからバーコードをネイティブに読み取ることができ、PDFソースの場合には別途画像抽出の手順を必要としません。
IronBarcodeの主な特徴:
-生成と読み取りのための単一パッケージ: 1つのNuGetパッケージ、1つのライセンスキー、および1つの構成ブロックで、すべてのバーコード操作をカバーします。
- 統一された1D及び2Dサポート:50以上のシンボロジー(Code 128、EAN-13、QR Code、DataMatrix、PDF417、Aztecなど)を読み取り、生成する同一API。
- 静的フルーエントAPI:
BarcodeWriter.CreateBarcode()はチェイン可能な結果を返します;BarcodeReader.Read()はファイルパス、ストリーム、PDF文書を受け入れます。 -自動フォーマット検出:リーダーは、呼び出し元が期待されるフォーマットを指定する必要なく、画像コンテンツからシンボルを識別します。 - System.Drawingへの依存関係なし: Linuxおよびコンテナ内でのクロスプラットフォーム展開は、追加のネイティブライブラリ設定なしで動作します。 -ネイティブPDF読み取り: PDF文書に埋め込まれたバーコードを直接読み取り、バーコード値とともにページ番号のメタデータを返します。
- 非同期とバッチ処理:
BarcodeReader.ReadAsync()と多ページのバッチ操作は、高スループットのサーバーワークロードをサポートします。
機能比較
以下の表は、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版) | なし | はい |
| .NET Standard 2.0 | はい(.NET Standard版) | なし | はい |
| .net 8 / .net 9 | はい(.NET Standard版) | なし | はい |
| 必要なNuGetパッケージ | 商品1点につき1点 | 商品1点につき1点 | 合計1個 |
| ライセンスキーが必要です | 商品1点につき1点 | 商品1点につき1点 | 合計1個 |
読み取りフォーマットのサポート
この比較において最も重要な技術的な違いは、2つのNeodynamic SDKとIronBarcode間の読み取りフォーマットの境界である。
ネオダイナミック・バーコードリーダー・アプローチ
Neodynamicバーコードリーダーは、直線型バーコードのみをサポートしています。 2次元バーコードがリーダーに送信されると、SDKは空またはnullの結果セットを返します。 例外は発生せず、何が起こったかを示すエラーメッセージも表示されません。 このSDKを使用するチームは、通常、QRコード画像に対してリーダーを呼び出すコードをデプロイした後、結果コレクションが常に空であることに気づき、この制限を発見します。
Neodynamic Readerを使用するコードベースでよく見られる防御パターンは、2Dフォーマットが想定される場合に例外を発生させる明示的なチェックです。
using Neodynamic.SDK.BarcodeReader;
using System.Drawing;
public string ReadQrCode(string imagePath)
{
using var bitmap = new Bitmap(imagePath);
var reader = new BarcodeReader();
var results = reader.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;
}
using Neodynamic.SDK.BarcodeReader;
using System.Drawing;
public string ReadQrCode(string imagePath)
{
using var bitmap = new Bitmap(imagePath);
var reader = new BarcodeReader();
var results = reader.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 reader As New BarcodeReader()
Dim results = reader.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単体では完了できません。 NotSupportedExceptionは回避策ではありません、それは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はインスタンスベースです。 System.Drawing.Imageを返します。 画像はSystem.Drawing.Imaging.ImageFormat列挙を使用して保存されます:
using Neodynamic.SDK.Barcode;
// Configure license first
BarcodeProfessional.LicenseOwner = "Your Company";
BarcodeProfessional.LicenseKey = "YOUR-KEY";
// Build the barcode through property assignment
var barcode = new BarcodeProfessional();
barcode.Code = "12345678";
barcode.Symbology = Symbology.Code128;
barcode.BarcodeUnit = BarcodeUnit.Pixel;
// Get image and save via System.Drawing
System.Drawing.Image image = barcode.GetBarcodeImage();
image.Save("output.png", System.Drawing.Imaging.ImageFormat.Png);
using Neodynamic.SDK.Barcode;
// Configure license first
BarcodeProfessional.LicenseOwner = "Your Company";
BarcodeProfessional.LicenseKey = "YOUR-KEY";
// Build the barcode through property assignment
var barcode = new BarcodeProfessional();
barcode.Code = "12345678";
barcode.Symbology = Symbology.Code128;
barcode.BarcodeUnit = BarcodeUnit.Pixel;
// Get image and save via System.Drawing
System.Drawing.Image image = barcode.GetBarcodeImage();
image.Save("output.png", System.Drawing.Imaging.ImageFormat.Png);
Imports Neodynamic.SDK.Barcode
Imports System.Drawing
' Configure license first
BarcodeProfessional.LicenseOwner = "Your Company"
BarcodeProfessional.LicenseKey = "YOUR-KEY"
' Build the barcode through property assignment
Dim barcode As New BarcodeProfessional()
barcode.Code = "12345678"
barcode.Symbology = Symbology.Code128
barcode.BarcodeUnit = BarcodeUnit.Pixel
' Get image and save via System.Drawing
Dim image As Image = barcode.GetBarcodeImage()
image.Save("output.png", Imaging.ImageFormat.Png)
SDKは、DPI制御、テキスト配置、カラー設定、静音ゾーンのサイズ設定など、正当なカスタマイズオプションを提供します。 これらは、正確な物理的寸法が重要な印刷ワークフローにおいて役立ちます。 発電能力自体は完成している。 移行を促す制約は、生成側ではなく、読み取り側にある。
IronBarcodeのアプローチ
IronBarcodeは、流暢な静的解析手法を採用しています。 エンコーディングとデータはBarcodeWriter.CreateBarcode() にパラメータとして渡され、出力形式は戻されたオブジェクトのメソッド名として表現されます。 System.Drawingインポートは必要ありません:
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")
2Dバーコード生成には、専用のQRCodeWriterクラスがQRコードに特化した追加のオプションを提供します:
using IronBarCode;
QRCodeWriter.CreateQrCode("https://example.com", 500, QRCodeWriter.QrErrorCorrectionLevel.Highest)
.SaveAsPng("qrcode.png");
using IronBarCode;
QRCodeWriter.CreateQrCode("https://example.com", 500, QRCodeWriter.QrErrorCorrectionLevel.Highest)
.SaveAsPng("qrcode.png");
Imports IronBarCode
QRCodeWriter.CreateQrCode("https://example.com", 500, QRCodeWriter.QrErrorCorrectionLevel.Highest) _
.SaveAsPng("qrcode.png")
サイズ設定や注釈オプション付きの1次元シンボルを生成する方法については、 "1次元バーコードの作成ガイド"を参照してください。 DataMatrixやPDF417を含む2次元バーコードの作成については、 "2次元バーコードの作成ガイド"を参照してください。
ライセンス供与と製品構造
ライセンスモデルは、生成と読み取りの両方を必要とするシステムを構築するチームにとって、2つの選択肢間の最も実用的な違いの1つと言えるでしょう。
新力動的アプローチ
Neodynamicのバーコード機能は、2つの別個のライセンス製品に分かれています。 Barcode Professional SDKは生成機能を、Barcode Reader SDKは読み取り機能をそれぞれカバーしています。 各製品は個別に購入する必要があり、それぞれにライセンスキーが付属しています。 両方の製品を購入するチームは、2つのLicenseKey構成ブロックを維持し、2つの別個の更新日を追跡し、問題が発生したときには2つの別々のサポートチャンネルに対応する必要があります。
Barcode Professional SDKは、Basic版の単一開発者ライセンスが約$352から、Ultimate版が約$705から価格が設定され(開発者ライセンスはComponentSource経由)。 Barcode Reader SDKは別の価格があり、レガシー価格の下で供給されています—製品は2019年12月31日にサービス終了マークがされています。2D読み取りを必要とするプロジェクトは、Neodynamic製品でその要件を満たすことができません; 第三のライブラリを追加しなければなりません。 単一の統合ライセンスでカバーされる内容の完全なリストについては、 IronBarcodeがサポートするバーコードフォーマットのページをご覧ください。
IronBarcodeのアプローチ
IronBarcodeは、単一のライセンスキーで、サポートされているすべてのシンボル体系におけるバーコードの生成と読み取りといった、すべてのバーコード操作を網羅する単一製品として販売されています。 別途リーダーライセンス、別途ジェネレーターライセンスは不要で、2Dフォーマットのサポートに追加費用もかかりません。 ライセンスキーはアプリケーション起動時に一度設定され、それ以上の設定は不要です。
IronBarCode.License.LicenseKey = "YOUR-LICENSE-KEY";
IronBarCode.License.LicenseKey = "YOUR-LICENSE-KEY";
Imports IronBarCode
IronBarCode.License.LicenseKey = "YOUR-LICENSE-KEY"
IronBarcode Liteは、開発者1人あたり749ドルで、すべての機能を網羅しています。 現在の価格帯とボリュームオプションについては、IronBarcodeのライセンスページをご覧ください。
APIマッピングリファレンス
| ネオダイナミックAPI | IronBarcode相当品 | ノート |
|---|---|---|
BarcodeProfessional.LicenseOwner = "..." |
IronBarCode.License.LicenseKey = "key" |
単一のキーで所有者とキーのペアを置き換えます |
BarcodeProfessional.LicenseKey = "..." |
(part of single key above) | 所有者欄は別途ありません |
Neodynamic.SDK.BarcodeReader.BarcodeReader.LicenseOwner |
(removed) | 不要 |
Neodynamic.SDK.BarcodeReader.BarcodeReader.LicenseKey |
(removed) | 不要 |
new BarcodeProfessional() |
BarcodeWriter.CreateBarcode(data, encoding) |
静的メソッド、インスタンスなし |
barcode.Code = data |
CreateBarcode の最初のパラメータ |
建設段階で合格 |
barcode.Symbology = Symbology.Code128 |
BarcodeEncoding.Code128 |
2番目のパラメータ |
barcode.Symbology = Symbology.QRCode |
BarcodeEncoding.QRCode |
往復全額サポート |
barcode.GetBarcodeImage().Save(path, ImageFormat.Png) |
.SaveAsPng(path) |
流暢、ImageFormat 列挙なし |
new BarcodeReader().Read(bitmap) |
BarcodeReader.Read(imagePath) |
静的メソッド、ファイルパスを受け入れます |
result.Value |
result.Value |
同じプロパティ名 |
QRのthrow new NotSupportedException(...) |
BarcodeReader.Read(imagePath) |
標準の読み取り呼び出しに置き換えてください |
チームがNeodynamic BarcodeからIronBarcodeへの移行を検討する際
QRコード読み取り要件
NeodynamicからIronBarcodeへ移行する最も一般的なケースは、Barcode Professional SDKで生成されたQRコードをBarcode Reader SDKで読み取ることができないという問題が発覚することです。 製品ラベルシステム、在庫管理ツール、または文書追跡ワークフローを構築するチームは、多くの場合、生成と読み取りをより大きなシステムの別々のフェーズとして実装します。 Barcode Professionalを使用して最初に生成を行った場合、読み取りコンポーネントを試行したときに初めて、リーダーの制限が明らかになります。 その時点で、プロジェクトは既に生成にNeodynamicを採用することを決定しており、2D読み取りをカバーするために3つ目のライブラリを追加すると、統一されたSDKがあれば発生しないバージョン管理の複雑さが生じる。
製品の複雑さを軽減する
一部のチームが移行する理由は、特定のフォーマットのギャップではなく、概念的には単一の機能であるものを2つの異なる製品で維持することによるオーバーヘッドが、繰り返し発生する摩擦点となるためである。 2つのパッケージが.csprojファイルに含まれ、2つのライセンス更新周期、2セットのリリースノートをレビューしなければならず、 .NETまたはWindowsの更新が適用されるときの不適合の2つの潜在的なソース、どれも単一の統合パッケージが提供する機能を超えるものではありません。 .NETアップグレードの一部として依存性の監査を行うチームは、Neodynamicの2重パッケージ構成を簡素化の機会としてしばしば識別します。
PDFバーコード処理
バーコードを含むPDF文書を処理するアプリケーションは、Neodynamic SDKの両方が同時に不十分となるシナリオの一例である。 生成用SDKも読み取り用SDKも、PDFファイルを開いてページからバーコード値を抽出することはできません。 出荷明細書、請求書、医療記録、またはPDFにバーコードが埋め込まれているあらゆる文書ワークフローを扱うチームは、読み取りを行う前に中間的な画像抽出ステップを実施する必要があります。 その抽出手順には追加のライブラリが必要となるため、このプロジェクトは既に3つ目の依存関係を抱えており、単一のIronBarcodeインストールで解消されるはずの制限を回避している。
読み書きにおけるフォーマットの一貫性
大規模なバーコードワークフローを運用するチームは、生成時と読み取り時におけるフォーマットサポートの不一致が、テストや検証上の問題を引き起こす場合があることに気づく。 システムが特定の目的でQRコードを生成し、別の目的で異なるフォーマットのコードを読み取る場合、生成器がサポートする形式と読み取り器がサポートする形式との間に乖離が生じるため、往復テストにギャップが生じる。 生成と読み込みが同じライブラリとサポートされるフォーマットリストを共有するシステムの方が、検証が容易になる。 生成されたバーコードが正常に読み取れるかどうかの検証は、複数のライブラリを統合したテストではなく、単一のライブラリでの操作となる。
一般的な移行の考慮事項
二重パッケージの除去
Neodynamicからの移行には、Neodynamic.SDK.BarcodeReaderの両方のNuGetパッケージを削除する必要があります。 両方ともusingディレクティブをソースファイルから削除する必要があります。 それぞれでdotnet remove package を実行するだけで十分です。 両者の間には、追加のクリーンアップを必要とするような共通の依存関係はありません。
デュアルライセンス構成のクリーンアップ
2つのライセンス構成ブロック — 一つはNeodynamic.SDK.BarcodeReader.BarcodeReader用 — は単一のIronBarCode.License.LicenseKey割り当てで置き換えられます。 この割り当ては、通常、アプリケーションのスタートアップ時にProgram.csまたはアプリケーションの依存性注入ブートストラップで一度だけ行われます。 Neodynamicライセンスキーを格納する構成ファイルや環境変数は、移行が確認された後、退役できます。
サポートされていない例外の削除
開発中に2D読み取り制限に遭遇したコードベースには、QRコードやDataMatrixの読み取りにNotSupportedExceptionをスローするプレースホルダーメソッドが含まれていることがあります。 これらのメソッドは回避策ではありません — それらは能力が存在しなかったことを正直に認めています。 IronBarcodeへの移行後、それぞれのメソッド本体は標準のBarcodeReader.Read(imagePath)の呼び出しで置き換えられます。 特別な取り扱いは必要ありません。 フォーマットは自動的に検出されます。
IronBarcodeの追加機能
IronBarcodeは、基本的な比較ポイント以外にも、Neodynamicのどちらの製品にも搭載されていない機能を提供しています。
- ネイティブPDFバーコード読み取り:
BarcodeReader.Read("document.pdf")はPDF文書から直接バーコードを読み取り、バーコード値の横にページ番号情報を返し、画像の中間抽出は必要ありません。 - 非同期バッチ処理:
BarcodeReader.ReadAsync()は、高容量の画像や文書を同時に処理するサーバーサイドワークロードに適した非ブロッキングリードをサポートします。 -機械学習によるエラー訂正: IronBarcodeは、機械学習に基づくエラー訂正を適用し、標準的なデコーダーでは空の結果を返すような、破損、部分的に隠蔽、または低解像度のバーコード画像から値を復元します。 - マルチバーコード検出: 単一の
BarcodeReader.Read()呼び出しで、1Dと2Dのシンボロジーを同時に含む混合フォーマットイメージを含むすべてのバーコードが画像内に表れます。 - PDFへのバーコード印字: IronBarcodeは、別途PDFライブラリを用意することなく、既存のPDFドキュメントにバーコード画像を直接書き込むことができます。 -画像前処理オプション:輝度補正、回転処理、ノイズ低減などの設定をリーダー上で構成することで、困難な条件下で撮影された画像の認識率を向上させることができます。
.NETの互換性と将来の準備
IronBarcodeは、.NET Standard 2.0、.NET Framework 4.6.2以降、.NET Core 3.1、および.NET 8や.NET 9を含むすべての現在 for .NETリリースをサポートします。ライブラリはSystem.Drawingに依存せず、LinuxやDockerコンテナで変更なしに動作します。 ネオダイナミックバーコードリーダー SDKは.NET Framework 2.0/3.x/4.xのみを対象としています——そのNuGetパッケージは2012年7月以降更新されておらず、製品は2019年12月31日にサービス終了とされているため、.NET Core、.NET 5+、Linux、またはDockerをサポートしていません。 Barcode Professional SDKは複数のエディションで提供されます。 .NET StandardエディションはSkiaSharpを使用し、.NET Core / .NET 5+で実行される一方、.NET WindowsエディションはSystem.Drawing依存性を保持します。 IronBarcodeは.NETのリリーススケジュールに合わせて更新を受け取ります。
結論
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#アプリケーションでバーコードを生成および読み取るため for .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 はど 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インストーラーやランタイムファイルは必要ありません。
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()でサポートされています。

