Scanbot SDKとIronBarcodeの比較:C#バーコードライブラリの比較
Syncfusionバーコード VS IronBarcode: アーキテクチャ、ライセンシング、および読み取りカバレッジの比較
Syncfusionのバーコードエコシステムは、UIコントロールを通じてバーコードを生成し、読み取り用の"バーコードリーダーOPX"という別製品を販売しています。 その読み取り製品は、ZXing.Net (Apache 2.0)をデコーダーとして使用しています。 したがって、生成と読み取りの両方を必要とするチームは、1つのスイートサブスクリプションの下で2つのSyncfusion製品を使用しており、その分割が以下でカバーされるアーキテクチャとコストのトレードオフを形成します。
Syncfusionバーコードについて理解する
Syncfusionバーコードはスタンドアロンライブラリではありません。 これはSyncfusion Essential Studioスイート内のコンポーネントです。生成側はUIコントロールとして提供されます:SfBarcode for WinFormsとWPF用、SfBarcodeGenerator for BlazorとMAUI用。 これらのコントロールは、実行時にフォーム上にバーコードを表示するもので、Syncfusionのより広範なUIコンポーネントエコシステム内で使用されるように設計されています。
読書機能は、全く別の商用製品です。 バーコードリーダーOPXは、独自のライセンス、独自のNuGetパッケージ、および独自のAPIを備えた、 Syncfusion独自の製品です。 生成と読み取りの両方を必要とするチームは、1つの製品ではなく、2つの製品を購入、保守、設定する必要がある。
Syncfusionコミュニティライセンスは、対象となる組織に無料プランを提供していますが、利用資格を得るには、以下の4つの条件すべてが同時にかつ継続的に満たされている必要があります。
-収益基準:企業の年間総収益が100万米ドル未満(ソフトウェアだけでなく、すべての収益源を含む) -開発者数の目安:チームの開発者数が5人以下 従業員数の基準:従業員総数が10人以下 -資本基準:すべての資金調達ラウンドにおける外部資本の総額が300万ドル未満であること
資金提供されている政府機関は、規模に関係なく対象となりません。税金で資金提供されていない政府機関は、Syncfusionと直接マスタライセンス契約を締結した後にのみ資格を得る可能性があります。 条件は自己認定され、継続的に満たされていなければならず、いずれかの閾値を超えると商用ライセンスの義務が生じます。
Syncfusionのバーコードエコシステムのその他の特徴は以下のとおりです。
- 生成専用のコントロールアーキテクチャ:
SfBarcodeGeneratorは読み取りAPIがありません。 コンポーネントの表面には.Scan()メソッドが存在しません。 -バージョン固有のライセンスキー: Syncfusionのライセンスキーは、特定のEssential Studioのバージョン範囲に関連付けられています。 バージョン24.xからバージョン25.xへのアップグレードには、新しいキー、すべての環境におけるシークレットの更新、および本番環境で試用版のウォーターマークが表示されないようにするための再デプロイが必要です。 -複数ステップのプラットフォーム登録:各プラットフォームターゲット (Blazor、MAUI) では、基本ライセンス呼び出しに加えて、プラットフォーム固有のサービス登録呼び出しが必要です。 - Blazor用のヘッドレス生成パスなし:
SfBarcodeGeneratorはブラウザ上でレンダリングされるRazorコンポーネントです。 サーバー側のファイル出力APIは備えていません。 - PDF出力なし: WinFormsコントロールもBlazorコントロールも、バーコードをPDFファイルに直接書き込むことはできません。 スイートバンドルライセンス: Syncfusion barcodeはEssential Studioの一部としてライセンスされており、スタンドアロンのバーコード専用商品ではありません。 ZXing.Netを基にしたOPXリーダー: Barcode Reader OPXは、ZXing.Net (Apache 2.0)をデコーダとして使用しています。 ZXing.Netは、同じApache 2.0ライセンスの下でNuGetを通じて直接利用可能です。
発電専用制御アーキテクチャ
Text, Symbology, BarHeight, NarrowBarWidth, ShowText。 WinFormsデザイナー内では、フォーム上にバーコードを表示する機能は期待どおりに動作します。 バーコードファイルをプログラムで生成するには、Bitmapを事前に割り当てることが含まれます。
using Syncfusion.Windows.Forms.Barcode;
using System.Drawing;
using System.Drawing.Imaging;
// Version-specific key required — changes with every major Essential Studio release
Syncfusion.Licensing.SyncfusionLicenseProvider.RegisterLicense("YOUR-VERSION-SPECIFIC-KEY");
var barcode = new SfBarcode();
barcode.Text = "12345678";
barcode.Symbology = BarcodeSymbolType.Code128A;
barcode.BarHeight = 100;
barcode.NarrowBarWidth = 1;
barcode.ShowText = true;
barcode.Width = 400;
barcode.Height = 150;
using var bitmap = new Bitmap(barcode.Width, barcode.Height);
barcode.DrawToBitmap(bitmap, barcode.ClientRectangle);
bitmap.Save("barcode.png", ImageFormat.Png);
using Syncfusion.Windows.Forms.Barcode;
using System.Drawing;
using System.Drawing.Imaging;
// Version-specific key required — changes with every major Essential Studio release
Syncfusion.Licensing.SyncfusionLicenseProvider.RegisterLicense("YOUR-VERSION-SPECIFIC-KEY");
var barcode = new SfBarcode();
barcode.Text = "12345678";
barcode.Symbology = BarcodeSymbolType.Code128A;
barcode.BarHeight = 100;
barcode.NarrowBarWidth = 1;
barcode.ShowText = true;
barcode.Width = 400;
barcode.Height = 150;
using var bitmap = new Bitmap(barcode.Width, barcode.Height);
barcode.DrawToBitmap(bitmap, barcode.ClientRectangle);
bitmap.Save("barcode.png", ImageFormat.Png);
Imports Syncfusion.Windows.Forms.Barcode
Imports System.Drawing
Imports System.Drawing.Imaging
' Version-specific key required — changes with every major Essential Studio release
Syncfusion.Licensing.SyncfusionLicenseProvider.RegisterLicense("YOUR-VERSION-SPECIFIC-KEY")
Dim barcode As New SfBarcode()
barcode.Text = "12345678"
barcode.Symbology = BarcodeSymbolType.Code128A
barcode.BarHeight = 100
barcode.NarrowBarWidth = 1
barcode.ShowText = True
barcode.Width = 400
barcode.Height = 150
Using bitmap As New Bitmap(barcode.Width, barcode.Height)
barcode.DrawToBitmap(bitmap, barcode.ClientRectangle)
bitmap.Save("barcode.png", ImageFormat.Png)
End Using
このパターンでは、コンソールアプリケーション、 ASP.NET Coreサービス、Azure Functionsなど、Windows Formsランタイムを呼び出すすべてのプロジェクトで、Windows Formsランタイムをロードする必要があります。 BlazorのバリアントであるSfBarcodeGeneratorはRazorコンポーネントであり、サーバーサイドのファイル出力パスを一切持っていません。
IronBarcodeを理解する
IronBarcodeは、あらゆる.NETアプリケーションモデルにおいて、プログラムによるバーコード生成と読み取りを可能にするために構築された.NETバーコードライブラリです。 これは単一のNuGetパッケージとして提供され、二次的な製品を必要とせずに、同じAPIサーフェスで生成と読み取りの両方をカバーします。
ライブラリは静的APIモデルを中心に設計されています:呼び出し元は静的メソッド(BarcodeWriter.CreateBarcode, BarcodeReader.Read, QRCodeWriter.CreateQrCode)を呼び出し、出力メソッドを結果に直接チェーンします。 このパターンは、WinFormsデスクトップアプリケーション、 ASP.NET Core Webサービス、Azure Functions、コンソールアプリケーション、およびLinux Dockerコンテナで同様に機能します。
主な特徴は以下のとおりです:
-生成と読み取りの統合:両方の機能は同じNuGetパッケージに含まれており、同じライセンスの下、同じ API サーフェスを使用します。
- 静的API: コントロールのインスタンス化なし、UIランタイム依存なし、
DrawToBitmap間接無し。 -プラットフォーム非依存:同じコードとライセンスキーは、WinForms、 Blazor、MAUI、 ASP.NET Core、コンソール、Azure Functions、およびLinux上のDockerで動作します。 - 直接ファイル出力: バーコードは中間
Bitmap割り当てなしに、PNG、JPEG、SVG、HTML、PDF、その他の形式に直接保存できます。 - 組み込みPDFサポート:
SaveAsPdf()は一流の出力メソッドです; このライブラリは、PDF文書からバーコードをネイティブに読み取ることもできます。 - 読み取り時の自動フォーマット検出:
BarcodeReader.Readは、呼び出し元がタイプを指定することなく、バーコードフォーマットを自動的に識別します。 -単一のバージョン安定キー:ライセンスキーは、メジャーリリース内のマイナーアップデートまたはパッチアップデートのNuGetアップデート間で変更されません。 - QRコード機能:生成APIで直接、埋め込みブランドロゴと色のカスタマイズをサポートします。
機能比較
以下の表は、 Syncfusion BarcodeとIronBarcodeの主な違いをまとめたものです。
| フィーチャー | Syncfusionバーコード | IronBarcode |
|---|---|---|
| バーコード生成 | はい — UI コントロール (WinForms、WPF、 Blazor、MAUI) | はい — 静的プログラムAPI、すべての環境 |
| バーコード読み取り | いいえ — 別途バーコードリーダーOPX製品が必要です | はい、世代と同じパッケージです |
| PDFバーコード出力 | いいえ — Syncfusionの.pdfファイルが別途必要です | はい — SaveAsPdf()組み込み済み |
| PDFバーコード読み取り | なし | はい、ネイティブです |
| ヘッドレス/サーバーサイド生成 | WinFormsランタイム依存のUIコントロール | ネイティブ — 静的API、UIへの依存なし |
| 無料プラン | コミュニティライセンス(4つの同時条件) | 30日間無料トライアル(透かしのみ表示) |
| ライセンスモデル | 年間サブスクリプション(Essential StudioSuite) | 永久翻訳 $749より |
詳細な機能比較
| フィーチャー | Syncfusionバーコード | IronBarcode |
|---|---|---|
| 世代 | ||
| WinForms生成 | はい (SfBarcode) |
はい |
| WPF生成 | はい (SfBarcode) |
はい |
| Blazor世代 | はい (SfBarcodeGenerator、ブラウザレンダリング) |
はい(サーバーサイドAPI) |
| マウイ世代 | はい (SfBarcodeGenerator) |
はい |
| コンソール / Azure Functions | WinFormsランタイムが必要です | ネイティブ |
| Docker / Linux | 制限的 | フルサポート |
| 直接ファイル出力 | DrawToBitmap + Bitmap.Save 経由 |
.SaveAsPng(), .SaveAsPdf(), .SaveAsSvg(), など。 |
| ロゴが埋め込まれたQRコード | なし | はい — .AddBrandLogo() |
| 読む | ||
| バーコードパッケージの読み取りAPI | なし | はい — BarcodeReader.Read() |
| 別売りの読書商品 | はい — バーコードリーダー OPX(有料) | 不要 |
| OPXはZXing .NET (Apache 2.0)をラップします | はい、ZXing .NETは無料です。 | 該当なし |
| PDFバーコード読み取り | なし | はい |
| 自動フォーマット検出 | 該当なし | はい |
| 複数バーコード検出 | 該当なし | はい |
| プラットフォーム | ||
| ASP.NET Core の最小限の API | きちんとサポートされていません | フルサポート |
| クロスプラットフォーム(Linux) | 制限的 | フルサポート |
| ライセンスについて | ||
| 無料プラン | コミュニティライセンス(4つの同時条件) | 30日間トライアル |
| 商用ライセンスモデル | 年間購読(エッセンシャルスタジオ) | 永久 |
| エントリーレベルの商用価格 | カスタム見積(年間サブスクリプション) | 749ドルから(永久) |
| ライセンスキーの範囲 | バージョン固有の変更点(メジャーバージョンアップに伴う変更) | メジャーリリース内でバージョンが安定している |
| プラットフォーム登録のオーバーヘッド | 複数ステップ(ライセンス登録 + SyncfusionBlazorの追加 + SyncfusionCoreの設定) | 単線 |
| PDFサポート | ||
| PDF出力 | いいえ — Syncfusion.Pdf を追加パッケージとして必要とします | はい、内蔵されています |
| PDFを読む | なし | はい、内蔵されています |
| フォーマット | ||
| 1Dフォーマット | Code 128、Code 39、EAN-8/13、UPC-A/E、Codabar、その他 | Syncfusionの全フォーマットにPlus、 PDF417、Aztec、MaxiCode、GS1、USPS IMb、および50以上の |
| 2Dフォーマット | QRコード、データマトリックス | QRコード、データマトリックス、PDF417、マイクロPDF417、アステカ、マキシコード |
世代アーキテクチャ
Syncfusion BarcodeとIronBarcodeの根本的なアーキテクチャ上の違いは、UIレンダリング制御とプログラムによるファイル生成ライブラリとの違いにある。
Syncfusionアプローチ
SfBarcodeはWinFormsコントロールです。 その役割は、フォームの視覚的なレイアウトの一部としてバーコードを表示することです。 ファイルを生成するためには、開発者がBitmap.Saveを呼び出す必要があります。 すべてのステップでWindowsフォームランタイムが必要です。
Blazor用のSfBarcodeGeneratorは、Syncfusion Blazor JavaScriptレイヤーを介してブラウザ上でレンダリングされるRazorコンポーネントです。 SfBarcodeGeneratorにはサーバーサイドAPIはありません。 Blazorアプリケーションからダウンロード可能なバーコードを生成するには、サーバーAPI呼び出しではなく、 JavaScriptの相互運用機能とブラウザのダウンロードトリガーが必要です。
MAUIアプリケーションの場合、SfBarcodeGeneratorはMAUIのレイアウトシステム内でバーコードをレンダリングします。 送信または印刷用のファイルとしてバーコードを生成するには、制御装置自体には備わっていない追加のマーシャリング手順が必要です。
IronBarcodeのアプローチ
IronBarcodeは、静的でチェーン可能なAPIを使用して、ファイルを直接出力します。 同じ呼び出しパターンは、変更なしでど for .NETアプリケーションモデルでも機能します。
// NuGet: dotnet add package IronBarcode
using IronBarCode;
IronBarCode.License.LicenseKey = "YOUR-LICENSE-KEY";
BarcodeWriter.CreateBarcode("12345678", BarcodeEncoding.Code128)
.ResizeTo(400, 150)
.SaveAsPng("barcode.png");
// NuGet: dotnet add package IronBarcode
using IronBarCode;
IronBarCode.License.LicenseKey = "YOUR-LICENSE-KEY";
BarcodeWriter.CreateBarcode("12345678", BarcodeEncoding.Code128)
.ResizeTo(400, 150)
.SaveAsPng("barcode.png");
Imports IronBarCode
IronBarCode.License.LicenseKey = "YOUR-LICENSE-KEY"
BarcodeWriter.CreateBarcode("12345678", BarcodeEncoding.Code128) _
.ResizeTo(400, 150) _
.SaveAsPng("barcode.png")
1次元バーコード生成に関するドキュメントには、サポートされているすべてのシンボル体系と出力オプションが記載されています。 コントロールのインスタンス化なし、事前割り当てされたBitmapなし、Windows Formsランタイム依存なし。
バーコード読み取り
Syncfusionアプローチ
SfBarcodeGeneratorは設計上読み取り機能を持っていません。 Syncfusionのエコシステムは、独自のライセンスと購入経路を持つ独立した商用製品であるバーコードリーダーOPXを通じて、このギャップを埋めます。
バーコードリーダーOPXは、内部的にZXing .NETを使用しています。 ZXing .NETは、Apache 2.0ライセンスの下で公開されているオープンソースのバーコード読み取りライブラリです。 Apache 2.0は、無制限の商用利用を許可する寛容なライセンスです。 どの開発者でもZXing .NETを直接インストールできます。
dotnet add package ZXing.Net
dotnet add package ZXing.Net
Barcode Reader OPXは、Syncfusionバーコードコントロールとは別個にライセンスされます。 したがって、完全なSyncfusionバーコードワークフローは、世代と読み取りの両方をカバーするために、2つのSyncfusion製品、2つのライセンス契約、および2つの異なるAPI表面を必要とし、読み取り製品は自由に利用可能なオープンソースデコーダ上にレイヤーされています。
IronBarcodeのアプローチ
バーコード読み取り機能は、生成機能と同じNuGetパッケージに含まれています。 二次製品やライセンスは不要です。
using IronBarCode;
var results = BarcodeReader.Read("barcode.png");
foreach (var result in results)
{
Console.WriteLine($"Format: {result.Format}");
Console.WriteLine($"Value: {result.Value}");
}
using IronBarCode;
var results = BarcodeReader.Read("barcode.png");
foreach (var result in results)
{
Console.WriteLine($"Format: {result.Format}");
Console.WriteLine($"Value: {result.Value}");
}
Imports IronBarCode
Dim results = BarcodeReader.Read("barcode.png")
For Each result In results
Console.WriteLine($"Format: {result.Format}")
Console.WriteLine($"Value: {result.Value}")
Next
バーコード読み取りに関するドキュメントでは、複数バーコードの検出、信頼度スコアリング、バイト配列からの読み取り、および速度と精度の調整について説明しています。 PDF文書の読み込みもネイティブ機能として搭載されており、別途PDFライブラリを用意する必要はありません。
ライセンスアーキテクチャ
Syncfusionアプローチ
Syncfusionコミュニティライセンスは無料アクセスを提供しますが、以下の4つの条件を同時に満たす必要があります。年間総収益が100万ドル未満、開発者数が5人以下、従業員数が10人以下、外部資本総額が300万ドル未満。これら4つの条件はすべて継続的に満たしている必要があります。 税金で資金提供されている政府機関は対象外です。 いずれかの条件を超えると、即座に商用ライセンスの義務が生じ、コミュニティライセンスから商用ライセンスへの移行費用は$0からSyncfusionの見積によって提供される年間開発者ごとのEssential Studioサブスクリプションに移行します。
利用資格に加え、 Syncfusionのライセンスキーはバージョンごとに異なります。 Essential Studio 24.x用に発行されたプロダクトキーが、25.xにアップグレード後に検証されなくなりました。 NuGetのメジャーバージョンアップを行うたびに、アカウントポータルから新しいキーを取得し、環境シークレットを更新して再デプロイする必要があります。そうしないと、試用版のウォーターマークが本番環境の出力に表示されてしまうからです。
プラットフォーム登録にはさらに手順が必要です。 Blazorアプリケーションには、3つの異なる構成エントリが必要です。
// Step 1: License registration
Syncfusion.Licensing.SyncfusionLicenseProvider.RegisterLicense("YOUR-VERSION-SPECIFIC-KEY");
// Step 2: Service registration in Program.cs
builder.Services.AddSyncfusionBlazor();
// Step 3: Namespace imports in _Imports.razor
// @using Syncfusion.Blazor
// @using Syncfusion.Blazor.BarcodeGenerator
// Step 1: License registration
Syncfusion.Licensing.SyncfusionLicenseProvider.RegisterLicense("YOUR-VERSION-SPECIFIC-KEY");
// Step 2: Service registration in Program.cs
builder.Services.AddSyncfusionBlazor();
// Step 3: Namespace imports in _Imports.razor
// @using Syncfusion.Blazor
// @using Syncfusion.Blazor.BarcodeGenerator
' Step 1: License registration
Syncfusion.Licensing.SyncfusionLicenseProvider.RegisterLicense("YOUR-VERSION-SPECIFIC-KEY")
' Step 2: Service registration in Program.vb
builder.Services.AddSyncfusionBlazor()
' Step 3: Namespace imports in _Imports.razor
' @Imports Syncfusion.Blazor
' @Imports Syncfusion.Blazor.BarcodeGenerator
MAUIアプリケーションには4番目のステップが必要です:builder.ConfigureSyncfusionCore()。
IronBarcodeのアプローチ
IronBarcodeのライセンス認証は、すべてのプラットフォームとアプリケーションモデルで共通の単一の割り当てです。
IronBarCode.License.LicenseKey = "YOUR-LICENSE-KEY";
IronBarCode.License.LicenseKey = "YOUR-LICENSE-KEY";
Imports IronBarCode
IronBarCode.License.LicenseKey = "YOUR-LICENSE-KEY"
IronBarcodeのライセンスページには、永久ライセンスモデルについて説明されています。 ライセンスキー設定ガイドでは、 CI/CDおよびDockerデプロイメントにおける環境変数のパターンについて説明しています。 メジャーバージョン内のマイナーリリースとパッチリリースではキーは変更されず、プラットフォーム固有のサービス登録も不要です。
PDF出力
Syncfusionアプローチ
Syncfusionのバーコード制御機能では、PDF出力は生成できません。 Syncfusionツールを使用してPDFドキュメントにバーコードを埋め込むには、バーコードコントロールパッケージをBitmapとしてバーコードを生成し、次にPDFドキュメントオブジェクトモデル内にそのビットマップを画像エレメントとして挿入する必要があります。 そのワークフローは、2つの独立したSyncfusion製品、2つのNuGetパッケージ、および複数ステップのレンダリングパイプラインで構成されています。
既存のPDF文書からバーコードを読み取る機能は、バーコード制御機能およびバーコードリーダーOPXのいずれにおいてもサポートされていません。
IronBarcodeのアプローチ
IronBarcodeでは、PDFは第一級の出力フォーマットです。 二次図書館は不要です。
BarcodeWriter.CreateBarcode("12345678", BarcodeEncoding.Code128)
.ResizeTo(400, 150)
.SaveAsPdf("barcode.pdf");
BarcodeWriter.CreateBarcode("12345678", BarcodeEncoding.Code128)
.ResizeTo(400, 150)
.SaveAsPdf("barcode.pdf");
BarcodeWriter.CreateBarcode("12345678", BarcodeEncoding.Code128) _
.ResizeTo(400, 150) _
.SaveAsPdf("barcode.pdf")
図書館はPDF文書から直接バーコードを読み取ることもできます。
var pdfResults = BarcodeReader.Read("shipping-manifest.pdf");
foreach (var result in pdfResults)
{
Console.WriteLine($"Page {result.PageNumber}: {result.Value}");
}
var pdfResults = BarcodeReader.Read("shipping-manifest.pdf");
foreach (var result in pdfResults)
{
Console.WriteLine($"Page {result.PageNumber}: {result.Value}");
}
Dim pdfResults = BarcodeReader.Read("shipping-manifest.pdf")
For Each result In pdfResults
Console.WriteLine($"Page {result.PageNumber}: {result.Value}")
Next
バーコード付きPDF生成ガイドでは、複数ページ出力や、他のPDFコンテンツにバーコードを埋め込む方法について解説しています。
APIマッピングリファレンス
| Syncfusionバーコード | IronBarcode相当品 |
|---|---|
SyncfusionLicenseProvider.RegisterLicense("KEY") |
IronBarCode.License.LicenseKey = "key" |
builder.Services.AddSyncfusionBlazor() |
不要 |
builder.ConfigureSyncfusionCore() |
不要 |
new SfBarcode() |
BarcodeWriter.CreateBarcode() (静的) |
barcode.Text = "value" |
CreateBarcode()の最初のパラメーター |
barcode.Symbology = BarcodeSymbolType.Code128A |
BarcodeEncoding.Code128 |
barcode.Symbology = BarcodeSymbolType.QRBarcode |
QRCodeWriter.CreateQrCode() |
barcode.BarHeight = 100 |
.ResizeTo(width, 100) |
barcode.ShowText = true |
デフォルトでレンダリングされる人間可読のテキスト; ライターオプションで切り替えます |
barcode.DrawToBitmap(bitmap, rect) |
.SaveAsPng(path) |
手動でBitmap → MemoryStream |
.ToPngBinaryData() |
<SfBarcodeGenerator Type="BarcodeType.Code128" Value="..."> |
BarcodeWriter.CreateBarcode(value, BarcodeEncoding.Code128) サーバーサイド |
<SfQRCodeGenerator Value="..."> |
QRCodeWriter.CreateQrCode(value, size) サーバーサイド |
BarcodeType.Code128 (Blazor enum) |
BarcodeEncoding.Code128 |
| バーコードリーダー OPX (ZXing .NETをラップしたもの) | BarcodeReader.Read(path) — ネイティブ、ラッパーなし |
| バーコードコントロールには読み取りAPIがありません | BarcodeReader.Read(path) |
| PDF出力なし | BarcodeWriter.CreateBarcode(...).SaveAsPdf(path) |
チームがSyncfusion BarcodeからIronBarcodeへの移行を検討する場合
バーコード読み取り要件
WinFormsまたはBlazorのみで作業するチームは、SfBarcodeGeneratorで表示目的のために始め、その後、アップロードされた画像、メールの添付ファイル、またはカメラによるキャプチャから受信したバーコードをスキャンする必要が生じる場合があります。 その時点で、 Syncfusionのコントロールサーフェスには先に進むための道筋が一切ありません。 Syncfusionのドキュメントでは、チームに対しBarcode Reader OPXを使用するように指示している。これは別途購入する必要のある商用製品で、Apache 2.0ライセンスの下で無償で利用できるライブラリであるZXing .NETをラップしたものである。 この時点に達したチームは、第二の商用製品を追加するか、または生成と読み取りを単一のライブラリに統合するかを検討することが多いです。
サーバーサイドおよびバックエンド生成
WinFormsやWPFのデスクトップツールとして始まったアプリケーションは、Web APIレイヤー、バックグラウンド処理サービス、またはバーコードファイルの生成を必要とするクラウド機能を含むように進化することがあります。 SfBarcodeはWindows Formsランタイム依存を持ち、クリーンにASP.NET Coreサービス、Azure FunctionsまたはLinux Dockerコンテナに変換されません。 DrawToBitmapパターンは、ヘッドレス環境に存在しない可能性があるWinFormsレンダリングサーフェスを必要とします。 この限界に達するチームは通常、生成モデルが最初からUIレンダリングスタックから分離されているライブラリを必要とする。
コミュニティライセンスの資格要件の変更
Syncfusionのコミュニティライセンスは、まさに成長が最も速い時期にある初期段階のチームにとって魅力的なものです。 収益、従業員数、従業員数、調達資本という4つの同時適用要件は、突然訪れる可能性のあるライセンス取得の難関を生み出す。 シリーズA資金調達ラウンドでは、通常、ラウンド完了日にスタートアップ企業の資本金が300万ドルの閾値を超え、開発者数や収益に関係なく、商用ライセンスの義務が発生します。 コミュニティライセンスに基づいて制作ワークフローを構築しているチームは、特に商用ライセンスがバーコードコンポーネントだけでなくEssential StudioSuite全体をカバーしている場合、その移行にかかるコストとタイミングを考慮する必要があります。
バージョン固有の設定オーバーヘッドの削減
CI/CDパイプラインでSyncfusionアプリケーションを保守する運用チームは、 NuGetのバージョンアップグレードに伴う定期的なタスクとして、ライセンスキーのローテーションに直面します。 Essential Studio 24.xで有効だったキーは、25.xにアップグレードすると機能しなくなるため、すべての展開環境でシークレットを更新し、試用版のウォーターマークが本番環境の出力に表示されていないことを確認する必要があります。 リリース頻度が高いチームや、複数のデプロイメントターゲットを持つチームは、特に基本的なユースケースが完全なUIコンポーネントSuiteを使用するのではなく、バーコード画像を生成する場合、このローテーションのオーバーヘッドが提供されるメリットに見合わないと感じます。
一般的な移行の考慮事項
SyncfusionLicenseProvider登録の削除
Syncfusionライセンス呼び出し — SyncfusionLicenseProvider.RegisterLicense("KEY") — は通常、Program.cs, App.xaml.cs, またはアプリケーションのスタートアップメソッドに現れます。 スタートアップシーケンスの同じポイントで、それを削除し、IronBarCode.License.LicenseKey = "KEY"に置き換える必要があります。 関連するサービス登録呼び出し(AddSyncfusionBlazor, _Imports.razor内の名前空間インポートも、他のSyncfusionコンポーネントがプロジェクト内に残っていない場合は削除する必要があります。
SfBarcodeからBarcodeWriterへのパターン
DrawToBitmapレンダリングを含みます。 IronBarcodeの同等物は、単一のチェーン呼び出しです:BarcodeWriter.CreateBarcode(value, encoding).ResizeTo(w, h).SaveAsPng(path)。 BarcodeEncoding値に直接マッピングされます — QRCodeWriter.CreateQrCodeにマップされます。
BlazorコンポーネントからAPIエンドポイントへのパターン
SfBarcodeGeneratorはRazorコンポーネントです; IronBarcodeへの置き換えは、単なる一行置換ではなく、構造的な変更です。 Blazor用のIronBarcodeパターンは、Razorコンポーネントから標準の<img src="...">タグを介して参照される、バイトとしてバーコード画像を返すミニマムAPIエンドポイントです。 このアプローチでは、 Syncfusion Blazor JavaScriptレイヤーに結び付けられたブラウザレンダリングコンポーネントではなく、独立してテスト可能で、クライアント間で再利用可能なサーバーサイドエンドポイントが生成されます。
IronBarcodeの追加機能
上記のセクションでは説明されていないIronBarcodeの機能がいくつかありますが、プロジェクトの要件によっては関連する可能性があります。
- 埋め込まれたブランドロゴ付きQRコード:
.AddBrandLogo("logo.png")は会社のロゴをQRコード中央に埋め込み、誤り訂正を通じてスキャンの信頼性を維持します。 - SVG出力:バーコードは、印刷や高解像度ディスプレイに適したベクターSVGファイルとしてエクスポートできます。
- HTML出力:バーコードは、自己完結型のHTMLファイルとしてエクスポートできます。
- 複数バーコード検出:
BarcodeReader.Readは、単一の画像に存在するすべてのバーコードを検出し、返します。 -リードに対する信頼度スコアリング:各リード結果には、低品質の検出結果をフィルタリングするのに役立つ信頼度スコアが含まれています。 -注釈とスタイル設定:生成されたバーコードは、外部の画像編集手順を必要とせずに、余白、色、フォント、注釈のカスタマイズをサポートします。 - GS1およびUSPS IMbフォーマット: IronBarcodeは、Syncfusionが制御できないGS1-128、USPSインテリジェントメールバーコード、MaxiCode、Aztecなどの特殊なフォーマットをサポートしています。
.NETの互換性と将来の準備
IronBarcodeは、.NET Standard 2.0 以上をターゲットとしており、.NET Framework 4.6.2 以降、.NET Core 3.1、およびすべての現在 for .NETリリースをサポートします(.NET 8 および .NET 9 を含む)。ライブラリはMicrosoft for .NETリリーススケジュールに合わせて定期的に更新を受けます。 IronBarcodeはUIコントロールではなく静的なプログラムライブラリであるため、WinForms、WPF、Blazor、MAUI間のプラットフォーム進化の違いの影響を受けません。同じNuGetパッケージと同じAPIが、すべての現在および将来 for .NETアプリケーションモデルでプラットフォーム固有のシムなしに動作します。
結論
Syncfusion BarcodeとIronBarcodeは、機能数だけでなく、アーキテクチャレベルにおいても違いがあります。 Syncfusionバーコードは、大規模なコンポーネントSuiteに統合されたUIレンダリングコントロールです。その設計目標は、フォームレイアウト内にバーコードを表示することであり、その目標を十分に達成しています。 IronBarcodeは、プログラムによるファイル生成および読み取りライブラリであり、その設計目標はバーコードをデータとして処理すること、つまりファイルの生成、画像の読み取り、あらゆる展開環境での動作を実現することです。 これらはそれぞれ異なる主要な用途向けに設計されたツールであり、どれを選択するかは、対象となるプロジェクトにどの用途が当てはまるかによって大きく左右されます。
Syncfusion Barcodeは、チームが既にSyncfusion Essential Studioを他のUIコンポーネント(グリッド、チャート、スケジューラーなど)に使用しており、フォームまたはBlazorページにバーコードを表示することが要件である場合に最適な選択肢です。 そういった状況において、バーコード制御は既存のライセンスに既に含まれており、フォームにそれを追加するには、デザイナーに制御をドロップするだけで済みます。 こうした特定の条件を満たすチームにとって、 IronBarcodeを購入しても、既存のライセンスで既に提供されている以上の価値は得られません。
IronBarcodeは、フォーム表示にとどまらない要件、例えばアップロードされた画像からのバーコードの読み取り、バックエンドサービスでのバーコードファイルの生成、PDFドキュメントからのバーコードの読み取り、Linux上のDockerコンテナへのデプロイ、またはバーコード画像を返すWeb APIエンドポイントの構築などが必要な場合に最適な選択肢です。 また、ライセンス状況がSyncfusionコミュニティライセンスの4つの条件すべてを恒久的に満たしていないチーム、またはNuGetアップグレードプロセスの一環としてバージョン固有のキーローテーションを避けたいチームにとっても適切な選択肢です。 IronBarcodeの永久ライセンスモデルと統合された生成・読み取りパッケージは、これらの運用上の懸念に直接的に対処します。
Syncfusion のバーコードエコシステムの決定的な制約は、生成と読み取りが 2 つの製品に分けられており、読み取り製品がオープンソースのZXing.Netデコーダー上に構築されていることです。 両方の機能を必要とするチームにとって、この配置は 2 つのライセンススコープ、2 つの API 表面、およびアプリケーションと基礎となるZXing.Netライブラリ間の追加レイヤーをもたらします。 IronBarcodeのシングルパッケージモデルは、その間接的なプロセスを解消します。 最適な選択は、実際の要件に合致するアーキテクチャです。既存のSyncfusion UI内でバーコードを表示することが目的であれば、 Syncfusionが最適な選択肢となります。 バーコード処理がバックエンドの課題である場合、 IronBarcodeの方がより適切な基盤となります。
よくある質問
Syncfusion BarCodeとは?
Syncfusion BarCodeは、C#アプリケーションでバーコードを生成し読み取るため for .NETバーコードライブラリです。これは、開発者が.NETプロジェクト用のバーコードソリューションを選択する際に評価するいくつかの選択肢の1つです。
Syncfusion BarCodeとIronBarcodeの主な違いは何ですか?
IronBarcode はインスタンス管理が不要な静的なステートレスAPIを使用していますが、Syncfusion BarCodeは通常、使用前にインスタンスの作成と設定が必要です。IronBarcodeはまた、ネイティブPDFサポート、自動フォーマット検出、およびすべての環境でのシングルキーライセンスを提供します。
IronBarcode はSyncfusion Barcodeよりもライセンスが簡単ですか?
IronBarcodeは単一のライセンスキーで開発環境と本番環境の両方をカバーします。これは、SDKキーとランタイムキーを分離するライセンスシステムと比較して、CI/CDパイプラインとDocker構成を簡素化します。
IronBarcode はSyncfusion 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 はSyncfusion 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インストーラーやランタイムファイルは必要ありません。
Syncfusionとは異なり、購入前にIronBarcodeを評価することはできますか?
IronBarcodeのトライアルモードでは、完全なデコードされたバーコード値を返します。購入を決定する前に、ご自身のドキュメントで読み取り精度をベンチマークすることができます。
Syncfusion BarCodeとIronBarcodeの価格の違いは何ですか?
IronBarcodeは、開発および量産をカバーする永続的なシングルデベロッパーライセンスで749ドルからご利用いただけます。価格の詳細とボリュームオプションはIronBarcodeのライセンスページでご覧いただけます。別途ランタイムライセンスは必要ありません。
Syncfusion BarCodeからIronBarcodeへの移行は簡単ですか?
Syncfusion BarCodeからIronBarcodeへの移行は、主にインスタンスベースのAPIコールをIronBarcodeのスタティックメソッドに置き換え、ライセンスの定型文を削除し、結果のプロパティ名を更新します。ほとんどの移行はコードを追加するのではなく、コードを削減します。
IronBarcodeはロゴ入りQRコードを生成できますか?
はい。QRCodeWriter.CreateQrCode().AddBrandLogo("logo.png")は、設定可能なエラー修正機能付きで、ブランド画像をネイティブにQRコードに埋め込みます。カラーQRコードもChangeBarCodeColor()でサポートされています。

