IRONSOFTWAREHOME
與其他組件的比較

Aspose BarCode for .NET範例對比IronBarcode:並排比較及程式碼範例

Curtis Chau
Curtis Chau
Updated: 2026年4月26日

#Barcode4NETvs IronBarcode:從過時生成器與現代.NET條碼程式庫的比較

Barcode4NET實際上已經停止更新。最後一次釋出的Barcode4NET 2.0來自O2 Solutions,是在2007年6月25日發佈的。新授權不再通過ComponentSource銷售(現有客戶仍可續訂支援和軟體更新),從未發佈任何NuGet套件,且程式庫僅適用於.NET Framework 1.1 / 2.0 / 3.x和.NET Compact Framework。 如果您的團隊繼承了Barcode4NET的依賴,本文將把該程式庫提供的內容與IronBarcode現今提供的功能做比較——涵蓋平台覆蓋範圍、API設計、條碼讀取能力,以及如何使左右比較變得有些不尋常的授權現實。

了解Barcode4NET

Barcode4NET是O2 Solutions發佈並通過ComponentSource分發的商業條碼生成程式庫。 它被設計用於Windows為基礎的.NET Framework應用程式—主要是Windows Forms、ASP.NET Web Forms、.NET Compact Framework,以及SQL Server Reporting Services 2000 / 2005—並提供1D和2D符號學的清晰位圖和向量輸出。

該程式庫從未作為NuGet套件提供。 它是作為DLL分發的,開發者將其檢入源程式碼控制或放在共享工件位置。 每個使用它的專案都需要在<Reference>元素。 當Barcode4NET活躍時,這是標準做法,但在現代CI/CD工作流程中會創造顯著的摩擦。

Barcode4NET的主要架構特性:

  • **屬性設置API:**開發者建立一個System.Drawing.Bitmap
  • **符號學覆蓋:**39 種 1D 符號學(Code128、Code39、EAN-13、UPC-A等)以及五種2D格式(DataMatrix、PDF417、MicroPDF417、Code 16K、CODABLOCK F); 不支持二維碼和Aztec
  • **僅生成:**產品中從未包含條碼讀取或掃描功能
  • **僅限Windows和.NET Framework:**目標是.NET Framework 1.1 / 2.0 / 3.x 和 .NET Compact Framework; 不支持.NET Core、.NET 5+、Linux、macOS、Docker 或雲端運行時環境
  • **無NuGet發佈:**每個專案文件和構建管道中都需要手動DLL引用
  • **停止更新:**自2007年以來,無通過ComponentSource新售的授權及無程式碼釋出

###Barcode4NETGeneration API

Barcode4NET中的完整生成工作流程是採用屬性設置模式的:

//Barcode4NET— 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);
C#

這代表了Barcode4NET API 表面的完整範圍。 該程式庫不提供流暢的鏈式調用,沒有讀取功能,不支持二維碼,並且沒有如標識嵌入或錯誤校正控制等高級2D選項。

理解IronBarcode

IronBarcode是來自Iron Software的一款商業.NET條碼程式庫,它將條碼生成和條碼讀取涵蓋在一個套件中。 它僅通過NuGet分佈,目標是.NET Framework 4.6.2 到.NET 9,並可以在Windows、Linux、macOS、Docker、Azure和AWS Lambda上運行。

該程式庫基於流暢靜態API構建。 生成使用BarcodeWriter.CreateBarcode()與資料字串和編碼型別,隨後可選的鏈式選項用於大小、顏色和格式。 讀取使用BarcodeReader.Read(),它接受圖像文件路徑、串流和PDF文件,而無需單獨的PDF程式庫。

IronBarcode的關鍵特性:

  • 流暢的靜態生成API:.AddAnnotationTextAboveBarcode()和保存方法於一個表達式中
  • 條碼讀取:BarcodeReader.Read()本地解碼圖像和PDF中的條碼
  • **廣泛的格式支持:**支持Code128、Code39、EAN-13、UPC-A、二維碼、資料矩陣、PDF417、Aztec等
  • 二維碼專精:QRCodeWriter.CreateQrCode()提供專用的二維碼選項,包括標誌嵌入和錯誤校正級別
  • **NuGet分佈:**標準dotnet add package IronBarcode安裝; dotnet restore處理所有依賴
  • **跨平台:**可在Windows、Linux、macOS上的.NET 5、6、7、8 和9上運行,包括Docker容器和無伺服器雲端運行時
  • **活躍的商業產品:**定期更新、安全補丁、.NET版本相容性更新,並以明確的價格點售出授權

特性比較

下表顯示Barcode4NET和IronBarcode之間最顯著的差異:

特性Barcode4NETIronBarcode
NuGet套件否——僅手動DLL是(IronBarcode
條碼生成
條碼讀取
跨平台支持否——僅限Windows是——Windows、Linux、macOS
有效維護否(已停止)
新授權可用

詳細特性比較

特性Barcode4NETIronBarcode
生成
Code128生成
Code39生成
EAN-13 / UPC-A生成
QR碼生成是——QRCodeWriter.CreateQrCode()
帶標誌的QR碼是——.AddBrandLogo()
資料矩陣 / PDF417
Aztec
流暢的鏈式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步驟標準還原
維護
活躍開發否(已停止)
安全補丁
Bug修復
新授權是——Lite $999、Plus $1,499、Professional $2,399、Unlimited $4,799

生成API設計

生成API代表這兩個程式庫之間最直接的比較點,因為生成是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();
}

返回型別——System.Drawing.Bitmap——意味著調用程式碼負責儲存、顯示或傳輸圖像。 這適合用於WinForms應用程式,其中PictureBox,但對於其他任何輸出目標需要額外的轉換步驟。

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();
}

Symbology枚舉。 Height屬性設置。 終端方法——GenerateBarcode()和位圖保存調用。 有關更高級的生成場景,請參閱IronBarcode條碼生成文件

條碼讀取能力

讀取能力是這兩個程式庫之間最尖鋭的能力差距。 Barcode4NET從未在任何版本中提供條碼讀取。 IronBarcode在同一個包中包含完整的讀取能力與生成功能。

Barcode4NET方法

Barcode4NET無讀取API。 需要從圖像或掃描文件中解碼條碼的團隊必須完全整合第二個程式庫——無論是開源的替代方案ZXing.Net,還是商業掃描SDK。 結果是有兩個獨立的依賴鏈:生成使用Barcode4NET,讀取使用另一個程式庫。

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}");
}

對於高容量或噪聲圖像場景,BarcodeReaderOptions類提供對讀取速度和多條碼檢測的控制。 請參閱條碼讀取文件以獲取配置選項。

平台和部署覆蓋

平台支持是團隊進行.NET現代化專案時最重要的區別。

Barcode4NET方法

Barcode4NET是針對.NET Framework組件編譯的。 它運行在Windows上,在.NET Framework應用程式中、在IIS承載的Web Forms和Windows Forms專案中。 沒有Linux版本,沒有.NET Core版本,也沒有雲端運行時支持。 當微軟推出.NET Core並稍後將平台統一為.NET 5+,Barcode4NET沒有相應的更新。 任何目標net5.0或更高版本的專案都不能完全引用該程式庫。

DLL分佈模型加劇了平台限制。 每個構建環境——開發人員工作站、建置代理、Docker容器——都需要在已知路徑中存在DLL。 在基於容器的部署中,這意味著要麼將DLL編譯到自定義基礎映像中,要麼在容器構建期間複製它,兩者都與標準dotnet restore工作流程不相容。

IronBarcode方法

IronBarcode從單一的NuGet套件目標多框架:.NET Framework 4.6.2到.NET 9,以及Windows、Linux和macOS上的所有當前.NET版本。 部署到Docker容器使用標準的.NET運行時映像而不做修改。 Azure Functions、AWS Lambda及其他無伺服器運行時環境通過同一NuGet套件支持。 dotnet restore命令解決了所有依賴,無需任何手動DLL管理。

授權架構和供應商狀態

Barcode4NET的授權狀況不是一個競爭點——它是一個實際的限制,影響了每一個是否繼續使用該程式庫的決定。

Barcode4NET方法

Barcode4NET實際上已經停止更新。新授權不再通過ComponentSource銷售,雖然現有客戶可以根據供應商的條款通過ComponentSource續訂支援和軟體更新。 如果有新的開發人員加入使用Barcode4NET的團隊,沒有機制來為他們購買額外的位。 最後一次程式碼釋出是2007年的版本2.0,因此自該釋出以來發現的任何缺陷或安全問題都未通過補丁解決。

IronBarcode方法

IronBarcode是一個持續維護的商業產品,具有永久性授權。 從$999的單開發者Lite授權起步,還有Plus($1,499,3名開發者)、Professional($2,399,10名開發者)和Unlimited($4,799)層級可選。 所有層級均包含免版稅部署。 安全補丁、Bug修復和.NET版本相容性更新定期發佈。 可以免費獲得為期30天的不含授權金鑰的試用版本。

API對映參考

Barcode4NETIronBarcode
new Barcode4NET.Barcode()BarcodeWriter.CreateBarcode(data, encoding)
barcode.Symbology = Symbology.Code128CreateBarcode的參數)
barcode.Data = "ITEM-12345"CreateBarcode()的第一個參數
條碼寬度 = 300; 條碼高度 = 100.ResizeTo(300, 100)
Bitmap.SaveAsPng(path) / .ToPngBinaryData()
Symbology.Code39BarcodeEncoding.Code39
Symbology.EAN13BarcodeEncoding.EAN13
Symbology.UPCABarcodeEncoding.UPCA
Symbology.DataMatrixBarcodeEncoding.DataMatrix
Symbology.PDF417BarcodeEncoding.PDF417
(QR Code not supported in Barcode4NET)BarcodeEncoding.QRCode
手動DLL <Reference Include="Barcode4NET"><PackageReference Include="IronBarcode" />
無讀取APIBarcodeReader.Read(path)
無PDF支持BarcodeReader.Read("doc.pdf")本地
僅限.NET Framework.NET Framework 4.6.2到.NET 9

當團隊考慮從Barcode4NET轉移到IronBarcode

阻止.NET升級

最常見的強制事件是一個.NET現代化專案。 團隊在他們的net8.0中設置目標,運行構建,並遇到載入失敗,因為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命令。 每個引用該程式庫的<HintPath>指向磁碟上的DLL。 所有這些元素都必須手動找到並刪除。 對整個解決方案進行grep可定位它們:

grep -rl "Barcode4NET" --include="*.csproj" .
SHELL

組件控制中的DLL目錄——通常是git rm一起設置為刪除。

從位圖到位元組陣列的返回型別變更

Barcode4NET的System.Drawing.Bitmap。 IronBarcode的流暢鏈結結束於.SaveAsPng()直接寫入磁碟。 將返回值分配給Image.FromStream()

符號學枚舉重命名

Barcode4NET的BarcodeEncoding枚舉。 所有通用值——QRCode——會保留其名稱。 在全解決方案中對BarcodeEncoding.可涵蓋大多數情況,但應審查每次替換以確認其上下文。

清理構建腳本

構建腳本和CI/CD配置文件中將Barcode4NET DLL複製到輸出目錄或建置代理的步驟必須更新。 這些步驟在NuGet遷移後沒有等效物——dotnet restore取代了所有手動的DLL管理。 在遷移後保留過時的DLL複製步驟不會導致構建失敗,但它們代表了一個死配置,會讓未來的維護人員感到困惑。

額外的IronBarcode能力

IronBarcode中提供的功能,在Barcode4NET生命周期中的任何時期都不曾存在過:

  • 從圖像讀取條碼BarcodeReader.Read()從PNG、JPEG、TIFF及其他圖像格式解碼所有主要的1D和2D符號學
  • **PDF條碼讀取:**本地PDF輸入支持——無需單獨的PDF提取程式庫
  • 二維碼標誌嵌入.AddBrandLogo()的品牌化二維碼的支持
  • **2D格式生成:**除了二維碼之外的Data Matrix、PDF417和Aztec支持
  • 多條碼檢測BarcodeReaderOptions.ExpectMultipleBarcodes能在單圖像中找到所有條碼
  • 讀取速度調節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,然後可自由升級其目標框架至任何當前的.NET版本而不受條碼程式庫的限制。

結論

Barcode4NET和IronBarcode代表了.NET條碼開發歷史中的不同階段。 Barcode4NET是它所處時代中一個功能性且範圍適當的程式庫——一種屬性設置API,為Windows Forms和Web Forms應用程式生成乾淨的位圖輸出於.NET Framework上。 IronBarcode是一個現代的商業產品,擁有流暢的靜態API、完整的條碼讀取支持、跨平台運行時覆蓋及標準的NuGet分發。

比較變得不尋常是因為Barcode4NET不再是一個活生生的產品。 它不再接收更新、安全補丁或新授權銷售。 評估選擇哪個程式庫作為新專案的工具的團隊不會在該評估中面對Barcode4NET——它對那些已經在生產中使用它並決定何時以及如何進行遷移的團隊才有意義。

對生產中使用Barcode4NET的團隊來說,IronBarcode是自然的替代選擇。 API映射是直接的,程式碼變更是表面級的,生成語法是等價的。 獲得的是一個實際上有被維護的依賴,新團隊成員可以安裝,並且與現代.NET版本和部署環境相容。

誠實的評估是,這不是兩個可行選項之間的競爭選擇。 Barcode4NET無法擴展至新團隊成員,無法在現代.NET上運行,無法修補安全問題。 IronBarcode則可以。 遷移的決策更多是由這些實際限制驅動,而不是基於API偏好或功能比較。

Curtis Chau
技術作家

Curtis Chau擁有Carleton大學的電腦科學學士學位,專精於前端開發,擁有Node.js、TypeScript、JavaScript和React的專業知識。Curtis熱衷於建立直觀且美觀的使用者介面,喜愛使用現代框架並建立結構良好、視覺吸引力的手冊。

...
閱讀更多

相關文章

Key in blue circle

立即免費取得 30 天試用金鑰

Your trial license will be sent to your email address

無任何限制。100% 解鎖。無需信用卡。

bullet_checked無需信用卡或建立帳號無任何限制。100% 解鎖。無需信用卡。
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
預訂您的免費即時演示
Booking Badge

全球數百萬工程師信賴

Iron Software的客戶標誌
獲取您的無義務諮詢
完成下方表單或發送電子郵件至sales@ironsoftware.com
您的詳細資訊將始終保密。
全球數百萬工程師信賴
Iron Software的客戶標誌
立即獲取您的30天試用金鑰
無需信用卡或帳戶建立