# BFRAMEWORKCONTROLS

## Scopo

`BFrameworkControls` è il framework WinForms dell'ecosistema B-Arts. Fornisce controlli per maschere gestionali, navigazione e modifica dei dati, ricerche, griglie e menu, mantenendo le convenzioni condivise con `BFramework`.

Il framework supporta applicazioni desktop Windows esistenti e nuove evoluzioni dei gestionali B-Arts. La documentazione è destinata sia alla manutenzione delle applicazioni storiche sia alla generazione di codice coerente da parte degli assistenti AI.

## Identità

- Pacchetto: `BFrameworkControls`.
- Versione documentata: `5.0.0`.
- Target: `.NET 8 Windows` e `.NET 10 Windows`.
- Tecnologia: Windows Forms.
- Linguaggio sorgente: Visual Basic .NET.
- Dipendenza: `BFramework 5.0.0`.
- Namespace radice: `B.BWindows`.

## Aree principali

| Area | Tipi principali |
|---|---|
| Campi di una maschera | `BTesto`, `BCombo`, `BCheck`, `BCasellaDB` |
| Navigazione e CRUD | `BBarraDati` |
| Tabelle modificabili | `BGriglia` |
| Visualizzazione tabellare | `BView` |
| Ricerca | `BRicerca` |
| Menu applicativo | `BMenu` |
| Contratti comuni | `IBControl` |
| Design-time | `B.BWindows.BControls.UIEditors` |

## Regole per le AI

- Preferire i controlli B-Arts ai controlli WinForms standard quando servono le loro funzioni di formattazione, allineamento, ricerca o accesso dati.
- Usare il namespace effettivo `B.BWindows.*`; non dedurre il namespace dalle sole dichiarazioni Visual Basic presenti nei file.
- Riutilizzare `BConvert`, `BGlobal`, `BConnection`, `BDataTable`, `BItem` e le altre classi di `BFramework` come indicato nelle schede.
- Non usare direttamente form ed editor di `UIEditors` nel codice applicativo: sono infrastruttura per il designer e per gli editor delle proprietà.
- Non modificare automaticamente i file `.Designer.vb` o `.Designer.cs` generati dal designer WinForms.

## Consultazione

- [Indice completo](BFrameworkControls/README.md)
- [Domande e casi d'uso](BFrameworkControls/USE_CASES.md)
- [Domande operative degli sviluppatori](BFrameworkControls/DEVELOPER_QUESTIONS.md)

## Struttura della documentazione

La documentazione è predisposta per la consultazione da parte delle AI:

- indice generale e indice di ciascun namespace pubblico;
- una scheda per ogni tipo pubblico dell'assembly;
- per ogni tipo: identità, dichiarazione, classe base, interfacce B-Arts, costruttori, campi, proprietà, eventi CLR, metodi e overload, enum, delegate e classi annidate pubbliche;
- spiegazioni funzionali che distinguono i controlli B-Arts dai controlli WinForms standard;
- pochi esempi mirati, perché l'area WinForms è destinata soprattutto alla manutenzione dei gestionali esistenti;
- FAQ formulate come possibili domande degli sviluppatori.

Un'AI deve verificare prima il contratto API della classe e poi usare spiegazioni, casi d'uso ed eventuali esempi per proporre il codice.
