Arquitetura do IronBarcode (2025.2+)
A partir da versão 2025.2, o pacote IronBarcode é dividido em camadas separadas de gestão, nativa e de machine learning. A estrutura espelha as convenções de nomenclatura já usadas pelo IronOCR e IronPDF, o que proporciona suporte multiplataforma mais limpo e manutenção mais fácil.
Estrutura do Pacote
Distribuição Principal
Os pacotes NuGet de nível superior são mapeados para uma plataforma-alvo:
BarCode: o pacote padrão para Windows, e o principal NuGet para uso geral.BarCode.Linux,BarCode.MacOSe semelhantes: distribuições específicas de OS que seguem a mesma convenção de nomenclatura que IronOCR e IronPDF.
Camadas de Pacote Internas
Cada pacote de nível superior é montado a partir de vários subpacotes internos, cada um responsável por uma preocupação.
1. BarCode.Slim
Contém o núcleo gerenciado: o código C#, a camada de interoperação, todo o código relacionado a PDF e todas as dependências de terceiros em C#. Esta é a camada central de lógica e ligação que impulsiona os recursos gerenciados do IronBarcode.
2. IronSoftware.ReaderInternals.XXX
Contém o código nativo C++ para leitura, escrita e detecção de códigos de barras. Existem variantes específicas de plataforma para Windows, Linux, Mac e outros.
3. BarCode.Detection
Transporta a lógica de detecção de machine learning, atualmente escrita em C# sobre o ONNX Runtime. Não depende do sistema operacional nesta fase.
BarCode.Detection acabará por se mudar para o ncnn, uma biblioteca nativa de inferência ML em C++, o que então introduzirá variantes específicas de SO.
Exclusões da Plataforma Móvel
BarCode.Detection não está incluído em Barcode.iOS ou Barcode.Android. A omissão é deliberada: a detecção de ML levanta preocupações de desempenho e limitações de compatibilidade em plataformas móveis.
Benefícios
A arquitetura reestruturada oferece:
- Uma separação modular entre o código gerenciado e o nativo.
- Empacotamento limpo e direcionado ao OS.
- Prova de futuro para detecção nativa de ML de alto desempenho.
- Alinhamento mais próximo com as outras bibliotecas Iron Software.
- Manutenção e resolução de problemas mais fáceis.

