Architektur von IronBarcode (2025.2+)
Ab Version 2025.2 ist das IronBarcode-Paket in separate verwaltete, native und maschinell lernende Schichten aufgeteilt. Die Struktur spiegelt die bereits von IronOCR und IronPDF verwendeten Namenskonventionen wider, was eine sauberere plattformübergreifende Unterstützung und einfacher Wartbarkeit bietet.
Paketstruktur
Hauptverteilung
Die obersten NuGet-Pakete werden einer Zielplattform zugeordnet:
BarCode: das Standardpaket für Windows und das primäre NuGet für den generellen Gebrauch.BarCode.Linux,BarCode.MacOSund ähnliche: Betriebssystemspezifische Distributionen, die der gleichen Namenskonvention wie IronOCR und IronPDF folgen.
Interne Paketebenen
Jedes oberste Paket wird aus mehreren internen Unterpaketen zusammengesetzt, von denen jedes einen Aspekt besitzt.
1. BarCode.Slim
Beinhaltet den verwalteten Kern: den C#-Code, die Interop-Schicht, alle PDF-bezogenen Codes und jede C#-Drittanbieterabhängigkeit. Dies ist die zentrale Logik- und Bindungsschicht, die die verwalteten Funktionen von IronBarcode steuert.
2. IronSoftware.ReaderInternals.XXX
Enthält den nativen C++-Code zum Lesen, Schreiben und Erkennen von Barcodes. Plattformspezifische Varianten existieren für Windows, Linux, Mac und andere.
3. BarCode.Detection
Trägt die maschinelle Lernerkennungslogik, die derzeit in C# auf ONNX Runtime geschrieben ist. Es hängt derzeit nicht vom Betriebssystem ab.
BarCode.Detection wird letztendlich auf ncnn, eine native C++ ML-Inferenzbibliothek, umgestellt, die dann Betriebssystemspezifische Varianten einführt.
Ausschlüsse von Mobilen Plattformen
BarCode.Detection ist nicht in Barcode.iOS oder Barcode.Android enthalten. Das Weglassen ist vorsätzlich: ML-Erkennung wirft auf mobilen Plattformen Performance-Probleme und Kompatibilitätseinschränkungen auf.
Vorteile
Die umstrukturierte Architektur liefert:
- Eine modulare Trennung zwischen verwaltetem und nativem Code.
- Saubere, auf das Betriebssystem ausgerichtete Verpackung.
- Zukunftssicherheit für hochleistungsfähige native ML-Erkennung.
- Engere Ausrichtung mit den anderen Iron Software-Bibliotheken.
- Einfachere Wartung und Fehlerbehebung.

