Aspose BarCode for .NETの例とIronBarcode の比較: コード例による比較
バーコード4NET対 IronBarcode: 終了間近のジェネレーターを現代の .NET バーコードライブラリと比較する
Barcode4NET は事実上終了間近です。最後のリリース —バーコード4NET2.0(O2 Solutions製)— は2007年6月25日に出荷されました。新しいライセンスはComponentSource経由で販売されておらず(既存の顧客はサポートとソフトウェアアップデートを更新できます)、NuGetパッケージは一度も公開されておらず、このライブラリは.NET Framework 1.1 / 2.0 / 3.x および.NET コンパクトフレームワークを対象にしています。 Barcode4NETへの依存を引き継いだチーム向けに、この記事では、そのライブラリが提供していた機能と、 IronBarcodeが現在提供している機能を比較します。比較対象は、プラットフォームの対応範囲、API設計、バーコード読み取り機能、そしてライセンス上の現実など、両者を並べて評価することがやや困難な点です。
Barcode4NETについて
Barcode4NET は、O2 Solutions から公開され、ComponentSource を通じて配布された商用バーコード生成ライブラリでした。 これはWindowsベース for .NET Framework アプリケーション向けに設計され — 主にWindows Forms, ASP.NET Web Forms, .NET コンパクトフレームワーク, SQL Server Reporting Services 2000 / 2005 向けに設計されており、その時代の1Dと2Dのシンボロジーに対してクリーンなビットマップとベクター出力を提供していました。
このライブラリはNuGetパッケージとして提供されたことは一度もありませんでした。 それはDLLとして配布され、開発者はそれをソース管理システムにチェックインするか、共有成果物場所に配置した。 それを使用したすべてのプロジェクトでは、ディスク上のDLLを指す.csprojファイルに手動で追加する必要がありました。 これはBarcode4NETが稼働していた頃は標準的な慣行だったが、現代のCI/CDワークフローでは大きな摩擦を生む。
Barcode4NETの主なアーキテクチャ特性:
- プロパティ設定API: 開発者は
System.Drawing.Bitmapを受け取ります。 - シンボロジーカバー: 39の1Dシンボロジー(Code128, Code39, EAN-13, UPC-Aなど)と5つの2Dフォーマット(DataMatrix, PDF417, MicroPDF417, Code 16K, CODABLOCK F); QRコードとAztec はサポートされていません -世代のみ:バーコードの読み取りやスキャン機能は製品に一切含まれていませんでした。
- Windowsと.NET Framework のみ:.NET Framework1.1 / 2.0 / 3.x および .NET コンパクトフレームワークを対象にしています; .NET Core, .NET 5+, Linux, macOS, Docker, またはクラウドランタイムサポートはありません
- NuGetディストリビューションなし:すべてのプロジェクト ファイルとビルド パイプラインで手動で DLL 参照が必要
- 終了間近: ComponentSource 経由での新しいライセンスの販売はなく、2007年以降のコードリリースもありません
Barcode4NET生成API
Barcode4NETにおける完全な生成ワークフローは、プロパティセッターパターンを採用していました。
//バーコード4NET— manual DLL,.NET Frameworkonly
// NoNuGetパッケージ— requires ThirdParty/Barcode4NET/Barcode4NET.dll in source control
using Barcode4NET;
using System.Drawing;
using System.Drawing.Imaging;
var barcode = new Barcode4NET.Barcode();
barcode.Symbology = Symbology.Code128;
barcode.Data = "ITEM-12345";
barcode.Width = 300;
barcode.Height = 100;
Bitmap barcodeImage = barcode.GenerateBarcode();
barcodeImage.Save(outputPath, ImageFormat.Png);
//バーコード4NET— manual DLL,.NET Frameworkonly
// NoNuGetパッケージ— requires ThirdParty/Barcode4NET/Barcode4NET.dll in source control
using Barcode4NET;
using System.Drawing;
using System.Drawing.Imaging;
var barcode = new Barcode4NET.Barcode();
barcode.Symbology = Symbology.Code128;
barcode.Data = "ITEM-12345";
barcode.Width = 300;
barcode.Height = 100;
Bitmap barcodeImage = barcode.GenerateBarcode();
barcodeImage.Save(outputPath, ImageFormat.Png);
Imports Barcode4NET
Imports System.Drawing
Imports System.Drawing.Imaging
Dim barcode As New Barcode4NET.Barcode()
barcode.Symbology = Symbology.Code128
barcode.Data = "ITEM-12345"
barcode.Width = 300
barcode.Height = 100
Dim barcodeImage As Bitmap = barcode.GenerateBarcode()
barcodeImage.Save(outputPath, ImageFormat.Png)
これは、Barcode4NET API の機能の全てを表しています。 このライブラリには、流暢なチェイニング、読み取り機能、QRコードサポート、高度な2Dオプション(ロゴ埋め込みやエラー訂正コントロールなど)はありませんでした。
IronBarcodeを理解する
IronBarcodeは、 Iron Softwareが提供する商用.NETバーコードライブラリで、バーコードの生成と読み取りの両方を単一のパッケージで実現しています。 これはNuGet経由でのみ配布され、.NET Framework4.6.2から.NET 9を対象としており、Windows、Linux、macOS、Docker、Azure、およびAWS Lambda上で動作します。
このライブラリは、流暢な静的APIを中心に構築されています。 生成はデータ文字列とエンコーディングタイプを使用するBarcodeWriter.CreateBarcode()を使用し、その後にサイズ、色、形式のチェーン可能なオプションが続きます。 読み取りはBarcodeReader.Read()を使用し、画像ファイルパス、ストリーム、およびPDF文書を受け入れ、別のPDFライブラリを必要としません。
IronBarcodeの主な特徴:
- 流暢な静的生成API:
.AddAnnotationTextAboveBarcode()、および保存メソッドを1つの式でチェーンします。 - バーコード読み取り:
BarcodeReader.Read()はネイティブに画像およびPDFからバーコードをデコードします。 -幅広いフォーマットをサポート: Code128、Code39、EAN-13、UPC-A、QRコード、データマトリックス、PDF417、Aztecなど - QRコード専門化:
QRCodeWriter.CreateQrCode()はロゴ埋め込みやエラー訂正レベルを含むQR専用のオプションを提供します。 - NuGet配布: 標準的な
dotnet add package IronBarcodeインストール;dotnet restoreはすべての依存関係を処理します。 -クロスプラットフォーム: Windows、Linux、macOS上 for .NET 5、6、7、8、9で動作し、Dockerコンテナやサーバーレスクラウドランタイムにも対応しています。 -アクティブな商用製品:定期的なアップデート、セキュリティパッチ、 .NETバージョンの互換性アップデート、および定められた価格で購入可能なライセンス
機能比較
以下の表は、Barcode4NETとIronBarcodeの最も重要な違いをまとめたものです。
| フィーチャー | バーコード4NET | IronBarcode |
|---|---|---|
| NuGetパッケージ | いいえ — 手動DLLのみ | はい (IronBarcode) |
| バーコード生成 | はい | はい |
| バーコード読み取り | なし | はい |
| クロスプラットフォーム対応 | いいえ — Windowsのみ | はい — Windows、Linux、macOS |
| アクティブメンテナンス | いいえ(終末期) | はい |
| 新規ライセンスが利用可能になりました | なし | はい |
詳細な機能比較
| フィーチャー | バーコード4NET | IronBarcode |
|---|---|---|
| 世代 | ||
| Code128生成 | はい | はい |
| Code39 生成 | はい | はい |
| EAN-13 / UPC-A世代 | はい | はい |
| QRコード生成 | なし | はい — QRCodeWriter.CreateQrCode() |
| ロゴ入りQRコード | なし | はい — .AddBrandLogo() |
| データマトリックス / PDF417 | はい | はい |
| アステカ | なし | はい |
| 流暢なチェーン可能なAPI | なし | はい |
| 読む | ||
| 画像からのバーコード読み取り | なし | はい — BarcodeReader.Read() |
| PDFファイルからのバーコード読み取り | なし | はい、ネイティブで、追加ライブラリは不要です。 |
| 複数バーコード検出 | なし | はい — ExpectMultipleBarcodes |
| 読書速度設定 | なし | はい — ReadingSpeed列挙型 |
| プラットフォーム | ||
| .NET Framework | はい | はい(.NET Framework 4.6.2以降) |
| .NET 5 / 6 / 7 / 8 / 9 | なし | はい |
| Linux / macOS | なし | はい |
| Docker | なし | はい |
| Azure / AWS Lambda | なし | はい |
| 分布 | ||
| NuGetパッケージ | なし | はい |
dotnet restore互換 |
なし | はい |
| CI/CD統合 | 手動DLL手順 | 標準復元 |
| メンテナンス | ||
| アクティブな開発 | いいえ(終末期) | はい |
| セキュリティパッチ | なし | はい |
| バグ修正 | なし | はい |
| 新しいライセンス | なし | はい — Lite 749ドル、 Plus 1,499ドル、 Professional 2,999ドル、Unlimited 5,999ドル |
世代API設計
生成APIは、これら2つのライブラリを比較する上で最も直接的なポイントとなる。なぜなら、Barcode4NETが提供していた機能は生成機能のみだったからである。
Barcode4NETのアプローチ
Barcode4NETは、命令型のプロパティ設定パターンを採用していた。 開発者はSystem.Drawing.Bitmapを受け取りました。
using Barcode4NET;
using System.Drawing;
using System.Drawing.Imaging;
public Bitmap GenerateLabel(string sku)
{
var barcode = new Barcode4NET.Barcode();
barcode.Symbology = Symbology.Code128;
barcode.Data = sku;
barcode.Width = 400;
barcode.Height = 120;
return barcode.GenerateBarcode();
}
using Barcode4NET;
using System.Drawing;
using System.Drawing.Imaging;
public Bitmap GenerateLabel(string sku)
{
var barcode = new Barcode4NET.Barcode();
barcode.Symbology = Symbology.Code128;
barcode.Data = sku;
barcode.Width = 400;
barcode.Height = 120;
return barcode.GenerateBarcode();
}
Imports Barcode4NET
Imports System.Drawing
Imports System.Drawing.Imaging
Public Function GenerateLabel(sku As String) As Bitmap
Dim barcode As New Barcode4NET.Barcode()
barcode.Symbology = Symbology.Code128
barcode.Data = sku
barcode.Width = 400
barcode.Height = 120
Return barcode.GenerateBarcode()
End Function
戻り値の型 — System.Drawing.Bitmap — は、呼び出すコードが画像の保存、表示、またはストリーミングを担当することを意味しました。 これはPictureBoxに割り当てることができるWinFormsアプリケーションに適していましたが、他の出力ターゲットには追加の変換ステップが必要でした。
IronBarcodeのアプローチ
IronBarcodeは、流暢な静的APIを使用しています。 単一のメソッド呼び出しで生成が開始され、チェーン可能なメソッドによって、最終保存または変換メソッドの前に結果が構成されます。
// NuGet: dotnet add package IronBarcode
using IronBarCode;
public byte[] GenerateLabel(string sku)
{
return BarcodeWriter.CreateBarcode(sku, BarcodeEncoding.Code128)
.ResizeTo(400, 120)
.ToPngBinaryData();
}
// NuGet: dotnet add package IronBarcode
using IronBarCode;
public byte[] GenerateLabel(string sku)
{
return BarcodeWriter.CreateBarcode(sku, BarcodeEncoding.Code128)
.ResizeTo(400, 120)
.ToPngBinaryData();
}
Imports IronBarCode
Public Function GenerateLabel(sku As String) As Byte()
Return BarcodeWriter.CreateBarcode(sku, BarcodeEncoding.Code128) _
.ResizeTo(400, 120) _
.ToPngBinaryData()
End Function
Symbology列挙型に直接対応します。 Heightプロパティの割り当てを置き換えます。 終端メソッド — .ToPngBinaryData() — は、個別のGenerateBarcode()およびビットマップ保存の呼び出しを置き換えます。 より高度な生成シナリオについては、 IronBarcodeのバーコード生成に関するドキュメントを参照してください。
バーコード読み取り機能
これら2つの図書館間の能力格差で最も顕著なのは、読解力である。 Barcode4NETは、どのバージョンにおいてもバーコード読み取り機能を提供したことはありません。 IronBarcodeは、生成機能と同じパッケージ内に完全な読み取り機能を備えています。
Barcode4NETのアプローチ
Barcode4NETには読み取りAPIがありませんでした。 画像やスキャンした文書からバーコードをデコードする必要のあるチームは、オープンソースの代替手段であるZXing .NET、または商用のスキャナSDKのいずれか、別のライブラリを完全に統合する必要がありました。 その結果、2つの独立した依存関係チェーンが構築された。1つはコード生成用のBarcode4NET、もう1つは読み取り用のライブラリである。
IronBarcodeのアプローチ
IronBarcodeは静的メソッドとしてBarcodeReader.Read()を提供し、画像ファイルパス、ストリームオブジェクト、およびPDF文書を受け入れます。
using IronBarCode;
// Read from an image file
var results = BarcodeReader.Read("barcode.png");
foreach (var result in results)
{
Console.WriteLine($"Value: {result.Value}");
Console.WriteLine($"Format: {result.Format}");
}
// Read all barcodes from a multi-page PDF — no extra PDF library required
var pdfResults = BarcodeReader.Read("invoice-batch.pdf");
foreach (var result in pdfResults)
{
Console.WriteLine($"Page {result.PageNumber}: {result.Value}");
}
using IronBarCode;
// Read from an image file
var results = BarcodeReader.Read("barcode.png");
foreach (var result in results)
{
Console.WriteLine($"Value: {result.Value}");
Console.WriteLine($"Format: {result.Format}");
}
// Read all barcodes from a multi-page PDF — no extra PDF library required
var pdfResults = BarcodeReader.Read("invoice-batch.pdf");
foreach (var result in pdfResults)
{
Console.WriteLine($"Page {result.PageNumber}: {result.Value}");
}
Imports IronBarCode
' Read from an image file
Dim results = BarcodeReader.Read("barcode.png")
For Each result In results
Console.WriteLine($"Value: {result.Value}")
Console.WriteLine($"Format: {result.Format}")
Next
' Read all barcodes from a multi-page PDF — no extra PDF library required
Dim pdfResults = BarcodeReader.Read("invoice-batch.pdf")
For Each result In pdfResults
Console.WriteLine($"Page {result.PageNumber}: {result.Value}")
Next
大量またはノイズの多い画像シナリオでは、BarcodeReaderOptionsクラスは読み取り速度と複数のバーコード検出の制御を提供します。 設定オプションについては、バーコード読み取りに関するドキュメントを参照してください。
プラットフォームと導入に関するカバレッジ
プラットフォームのサポート状況は、 .NETの近代化プロジェクトに取り組むチームにとって最も重要な違いとなる。
Barcode4NETのアプローチ
Barcode4NETは.NET Frameworkアセンブリに対してコンパイルされました。 Windows上で、 .NET Frameworkアプリケーション、IISでホストされるWebフォームおよびWindowsフォームプロジェクトで動作しました。 Linuxビルドも、 .NET Coreビルドも、クラウドランタイムのサポートもありませんでした。 マイクロソフトが.NET Coreを導入し、後にプラットフォームを.NET 5+として統合した際、Barcode4NETにはそれに対応するアップデートがありませんでした。 net5.0以降をターゲットとするプロジェクトはライブラリをまったく参照できませんでした。
DLL配布モデルは、プラットフォームの制約をさらに悪化させた。 開発者ワークステーション、ビルドエージェント、Dockerコンテナなど、あらゆるビルド環境において、DLLが既知のパスに存在することが必要だった。 コンテナベースのデプロイでは、DLLをカスタムベースイメージに焼き込むか、コンテナビルド中にコピーする必要があり、いずれも標準のdotnet restoreワークフローと互換性がありません。
IronBarcodeのアプローチ
IronBarcodeは、単一のNuGetパッケージから複数のフレームワークに対応しています。具体的には、.NET Framework4.6.2から.NET 9まで、およびWindows、Linux、macOS上のすべての最新 for .NETリリースに対応しています。 Dockerコンテナへのデプロイでは、標準 for .NETランタイムイメージをそのまま使用します。 Azure Functions、AWS Lambda、およびその他のサーバーレスランタイムは、同じNuGetパッケージを通じてサポートされます。 dotnet restoreコマンドはすべての依存関係を手動DLL管理なしで解決します。
ライセンスアーキテクチャとベンダーステータス
Barcode4NETのライセンス状況は、競争上の争点ではなく、ライブラリの使用を継続するかどうかのあらゆる決定に影響を与える実際的な制約である。
Barcode4NETのアプローチ
Barcode4NET は事実上終了間近です。新しいライセンスはComponentSourceを通じて販売されていませんが、既存の顧客は、ベンダーの条件に基づいて、ComponentSource を通じてサポートとソフトウェアアップデートを更新できます。 Barcode4NETを使用しているチームに新しい開発者が加わった場合、追加席を購入する仕組みはありません。 最後のコードリリースは2007年のバージョン2.0であり、それ以来発見されたいかなる欠陥やセキュリティ問題もパッチで対処されません。
IronBarcodeのアプローチ
IronBarcodeは、永続ライセンス付きの、積極的にメンテナンスされている商用製品です。 ライセンスの価格は、シングル開発者向けのLiteライセンスが749ドルから始まり、 Plus (1,499ドル、開発者3名)、 Professional (2,999ドル、開発者10名)、Unlimited(5,999ドル)の各ティアが用意されています。 すべてのプランには、ロイヤリティフリーでの導入が含まれています。 セキュリティパッチ、バグ修正、および.NETバージョンの互換性アップデートは、定期的なリリースサイクルで提供されます。 ライセンスキーなしで評価できる30日間の無料トライアルをご利用いただけます。
APIマッピングリファレンス
| バーコード4NET | IronBarcode |
|---|---|
new Barcode4NET.Barcode() |
BarcodeWriter.CreateBarcode(data, encoding) |
barcode.Symbology = Symbology.Code128 |
CreateBarcodeへのパラメーター) |
barcode.Data = "ITEM-12345" |
CreateBarcode()の最初のパラメーター |
BarCode.Width = 300; バーコードの高さ = 100 |
.ResizeTo(300, 100) |
Bitmapを返します |
.SaveAsPng(path) / .ToPngBinaryData() |
Symbology.Code39 |
BarcodeEncoding.Code39 |
Symbology.EAN13 |
BarcodeEncoding.EAN13 |
Symbology.UPCA |
BarcodeEncoding.UPCA |
Symbology.DataMatrix |
BarcodeEncoding.DataMatrix |
Symbology.PDF417 |
BarcodeEncoding.PDF417 |
| (QR Code not supported in Barcode4NET) | BarcodeEncoding.QRCode |
手動DLL<Reference Include="Barcode4NET">| <PackageReference Include="IronBarcode" /> |
|
| 読み取りAPIはありません | BarcodeReader.Read(path) |
| PDFはサポートされていません | BarcodeReader.Read("doc.pdf")ネイティブ |
| .NET Frameworkのみ | .NET Framework4.6.2 から.NET 9 |
チームがBarcode4NETからIronBarcodeへの移行を検討する際
.NETアップグレードがブロックされました
最も一般的な強制要因は、 .NETの近代化プロジェクトです。 チームは.csprojでターゲットにし、ビルドを実行し、Barcode4NETが.NET Framework 1.1 / 2.0 / 3.x用に構築されており、モダンな.NETターゲットから参照できないため、ロードの失敗が発生します。 この時点で、チームは二者択一を迫られる。ターゲットフレームワークの変更を元に戻して.NET Frameworkを使い続けるか、Barcode4NETを置き換えるかだ。 移行を延期すれば、より広範な近代化の取り組みが阻害されることになる。
インフラストラクチャ変更後のCI/CDパイプラインの障害
Barcode4NETのDLL配布モデルは、ビルドパイプラインに潜在的な脆弱性を生み出す。 ビルドエージェントが再プロビジョニングされた場合、コンテナイメージが更新された場合、または新しいCI環境が構成された場合は、Barcode4NET DLLをプロジェクトファイルが想定するパスに手動で配置する必要があります。 この手順を丁寧に文書化していないチームは、パイプラインが失敗したときに初めて問題に気づくことになる。 IronBarcodeへの移行は、dotnet restoreがすべてを処理することを意味します— DLLの位置の問題は存在しなくなります。
新しいチームメンバーはライセンスを取得できません
請負業者がプロジェクトに参加したり、別の開発者がバーコード機能の開発に取り組む必要が生じた場合でも、ライセンスを購入する必要はありません。 チームはこの制約を回避する必要がある。新しい開発者がバーコードコードを完全に回避するか、あるいは元の契約条件の下では法的に譲渡できない可能性のあるライセンスを誰かが譲渡するかのどちらかだ。 どちらの状況も、積極的に製品開発に取り組んでいるチームにとっては持続可能ではない。
セキュリティおよびコンプライアンス監査
ソフトウェア部品表の生成や、サポート終了データベースとの依存関係のチェックを行う組織は、Barcode4NETを問題として認識することがあります。 これは商業製品で、2007年以来コードリリースがなく、CVEトラッキングやパッチストリームもありません。 セキュリティ監査者は通常、この状態にある依存関係を積極的に維持されているライブラリとは異なる扱いをし、その発見はしばしば、保留されるリスクではなく、正式な修正アイテムとなります。
既存のワークフローに読み取り機能を追加
当初はバーコード生成のみのワークフローにBarcode4NETを使用していたチームが、後にスキャンした文書のバーコードを検証したり、ユーザーがアップロードした画像を処理したり、PDF請求書からデータを抽出したりする必要があることに気づく。 Barcode4NETを使用する場合、これには別のライブラリを統合する必要があります。 IronBarcodeのBarcodeReader.Read()は、依存関係を単一の維持されたパッケージに統合し、画像もPDFもネイティブに扱います。
一般的な移行の考慮事項
DLL参照の削除
Barcode4NETはNuGetパッケージとして配布されていないため、dotnet remove packageコマンドはありません。 ライブラリを参照するすべての<Reference Include="Barcode4NET">要素が含まれています。 これらの要素はそれぞれ手動で見つけて削除する必要があります。 ソリューション全体をgrepで検索すると、それらが見つかります。
grep -rl "Barcode4NET" --include="*.csproj" .
grep -rl "Barcode4NET" --include="*.csproj" .
ソース管理のDLLディレクトリ—通常はgit rmで削除の対象としてステージングする必要があります。
戻り値の型をビットマップからバイト配列に変更
Barcode4NETのSystem.Drawing.Bitmapを返します。 IronBarcodeの流暢なチェーンは.SaveAsPng()を書き込みます。 戻り値をBitmapを期待するメソッドに渡すコード — 例えばWinFormsのPictureBox — 呼び出し箇所で1行の調整が必要です:バイト配列をImage.FromStream()を呼び出します。
シンボル列挙型の名前変更
Barcode4NETのBarcodeEncoding列挙型に直接対応します。 一般的な値— QRCode—はその名前を保持します。 BarcodeEncoding.にソリューション全体で置き換えることでほとんどのケースをカバーしますが、各置換はコンテキストを確認するために精査する必要があります。
ビルドスクリプトのクリーンアップ
Barcode4NET DLLを出力ディレクトリまたはビルドエージェントにコピーするビルドスクリプトおよびCI/CD構成ファイルを更新する必要があります。 これらのステップはNuGetへの移行後に相当するものはありません — dotnet restoreがすべての手動DLL管理を置き換えます。 移行後に古いDLLコピー手順を残しておいてもビルドエラーは発生しませんが、それらは不要な設定であり、将来の保守担当者にとって混乱の原因となります。
IronBarcodeの追加機能
IronBarcodeには搭載されている機能のうち、Barcode4NETのライフサイクルのどの時点においても存在しなかった機能は以下のとおりです。
- 画像からのバーコード読み取り:
BarcodeReader.Read()はPNG、JPEG、TIFF、および他の画像形式からすべての主要な1Dおよび2Dシンボロジーをデコードします。 - PDFバーコード読み取り:ネイティブPDF入力サポート - 別途PDF抽出ライブラリは不要
- QRコードロゴ埋め込み:
.AddBrandLogo()でブランドQRコードを作成します。 - 2Dフォーマット生成: QRコードに加え、データマトリックス、PDF417、アステカ形式に対応
- マルチバーコード検出:
BarcodeReaderOptions.ExpectMultipleBarcodesは1枚の画像内のすべてのバーコードを見つけます。 - 読み取り速度の調整:
ReadingSpeed列挙型は大量処理の精度に対するスループットをバランスします。 - ASP.NET Coreの統合: コントローラアクションをクリーンに返信するために
.ToPngBinaryData()から直接返します。
.NETの互換性と将来の準備
IronBarcodeは.NET Framework 4.6.2から.NET 9までをサポートし、新しい.NETバージョンが提供されるたびに互換性の更新を受け取ります。Barcode4NETは.NET Framework 1.1 / 2.0 / 3.xと.NET Compact Frameworkのみを対象としており、2007年以来リリースを受けていません。.NET Framework 4.xを使用しているチームは、IronBarcodeに移行し、バーコードライブラリの制約なしにターゲットフレームワークを現在 for .NETバージョンに自由にアップグレードできます。
結論
Barcode4NETとIronBarcodeは、 .NETバーコード開発の歴史における異なる時点を象徴している。 Barcode4NETは、当時の基準からすると機能的で範囲が明確なライブラリでした。プロパティセッターAPIとして、 .NET Framework上のWindows FormsおよびWeb Formsアプリケーション向けに、きれいなビットマップ出力を生成しました。 IronBarcodeは、流暢な静的API、完全なバーコード読み取りサポート、クロスプラットフォームのランタイム対応、および標準的なNuGet配布を備えた、現在販売中の商用製品です。
Barcode4NETはもはや開発中の製品ではないため、この比較は異例である。 アップデート、セキュリティパッチ、新規ライセンス販売は提供されません。 新規プロジェクトにどのライブラリを採用するかを評価するチームは、その評価においてBarcode4NETに遭遇することはありません。Barcode4NETは、既に本番環境で使用しており、いつどのように移行するかを検討しているチームにとってのみ関連性があります。
Barcode4NETを既に運用しているチームにとって、 IronBarcodeは自然な代替手段となるでしょう。 APIマッピングは直接的で、コードの変更は表面的なものであり、生成セマンティクスは同等です。 その利点は、実際にメンテナンスされ、新しいチームメンバーでもインストール可能で、最新 for .NETバージョンやデプロイ環境と互換性のある依存関係が得られることです。
率直に言って、これは実行可能な2つの選択肢の間で、どちらを選ぶかという競争的な問題ではない。 Barcode4NETは、新しいチームメンバーに拡張することはできず、最新 for .NET環境では動作せず、セキュリティ上の問題に対するパッチも適用できません。 IronBarcode可能です。 移行の決定は、APIの好みや機能の比較ではなく、そうした実際的な制約によって左右される。
よくある質問
Barcode4.NETとは何ですか?
BarCode4.NETは、C#アプリケーションでバーコードを生成して読み取るため for .NETバーコードライブラリです。これは、開発者が.NETプロジェクト用のバーコードソリューションを選択する際に評価するいくつかの選択肢の1つです。
Barcode4.NET と IronBarcodeの主な違いは何ですか?
IronBarcodeはインスタンス管理を必要としない静的なステートレスAPIを使用します。一方、Barcode4.NETは通常、使用前にインスタンスの作成と設定が必要です。IronBarcodeはまた、ネイティブPDFサポート、自動フォーマット検出、すべての環境でのシングルキーライセンスを提供します。
IronBarcodeはBarcode4.NETよりライセンスが簡単ですか?
IronBarcodeは単一のライセンスキーで開発環境と本番環境の両方をカバーします。これは、SDKキーとランタイムキーを分離するライセンスシステムと比較して、CI/CDパイプラインとDocker構成を簡素化します。
IronBarcodeはBarcode4.NETがサポートしている全てのバーコードフォーマットをサポートしていますか?
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はBarcode4.NETと比べてどのようにバッチ処理を行いますか?
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インストーラーやランタイムファイルは必要ありません。
IronBarcodeはBarcode4.NETと違い、購入前に評価できますか?
IronBarcodeのトライアルモードでは、完全なデコードされたバーコード値を返します。購入を決定する前に、ご自身のドキュメントで読み取り精度をベンチマークすることができます。
Barcode4.NET と IronBarcodeの価格の違いは何ですか?
IronBarcodeは、開発および量産をカバーする永続的なシングルデベロッパーライセンスで749ドルからご利用いただけます。価格の詳細とボリュームオプションはIronBarcodeのライセンスページでご覧いただけます。別途ランタイムライセンスは必要ありません。
Barcode4.NETからIronBarcodeへの移行は簡単ですか?
Barcode4.NETからIronBarcodeへの移行は、主にインスタンスベースのAPIコールをIronBarcodeの静的メソッドに置き換えたり、ライセンスの定型文を削除したり、結果のプロパティ名を更新したりします。ほとんどの移行はコードを追加するのではなく、コードを削減します。
IronBarcodeはロゴ入りQRコードを生成できますか?
はい。QRCodeWriter.CreateQrCode().AddBrandLogo("logo.png")は、設定可能なエラー修正機能付きで、ブランド画像をネイティブにQRコードに埋め込みます。カラーQRコードもChangeBarCodeColor()でサポートされています。

