Architecture IronBarcode (2025.2+)
Depuis la version 2025.2, le paquet IronBarcode est séparé en couches gérées, natives, et d'apprentissage machine. La structure reflète les conventions de nommage déjà utilisées par IronOCR et IronPDF, ce qui offre un support multiplateforme plus propre et une maintenance plus facile.
Structure du paquet
Distribution principale
Les paquets NuGet de niveau supérieur se répartissent sur une plateforme cible :
BarCode: le package par défaut pour Windows, et le principal NuGet pour une utilisation à usage général.BarCode.Linux,BarCode.MacOS, et similaires : distributions spécifiques au système d'exploitation qui suivent la même convention de nommage que IronOCR et IronPDF.
Couches de paquet internes
Chaque paquet de niveau supérieur est assemblé à partir de plusieurs sous-paquets internes, chacun possédant une seule préoccupation.
1. BarCode.Slim
Contient le cœur géré : le code C#, la couche d'interopérabilité, tout le code lié aux PDF et chaque dépendance tierce en C#. C'est la logique centrale et la couche de liaison qui alimente les fonctionnalités gérées d'IronBarcode.
2. IronSoftware.ReaderInternals.XXX
Contient le code C++ natif pour lire, écrire et détecter des codes-barres. Il existe des variantes spécifiques à la plateforme pour Windows, Linux, Mac et d'autres.
3. BarCode.Detection
Porte la logique de détection d'apprentissage machine, actuellement écrite en C# sur ONNX Runtime. Elle ne dépend pas du système d'exploitation à ce stade.
BarCode.Detection sera éventuellement déplacé vers ncnn, une bibliothèque d'inférence ML native en C++, qui introduira alors des variantes spécifiques au système d'exploitation.
Exclusions de plateforme mobile
BarCode.Detection n'est pas intégré dans Barcode.iOS ou Barcode.Android. L'omission est délibérée : la détection ML soulève des préoccupations de performance et des limitations de compatibilité sur les plateformes mobiles.
Avantages
L'architecture restructurée offre :
- Une séparation modulaire entre le code géré et natif.
- Un conditionnement propre, ciblé sur l'OS.
- Une pérennité pour la détection ML native haute performance.
- Un alignement plus étroit avec les autres bibliothèques Iron Software.
- Une maintenance et un dépannage facilités.

