# BFRAMEWORKWEBCONTROLS

## Scopo

`BFrameworkWebControls` è la libreria di componenti Blazor dell'ecosistema B-Arts. Fornisce controlli web riutilizzabili, componenti avanzati, stili CSS e funzioni JavaScript interoperabili con Blazor.

## Identità

- Pacchetto: `BFrameworkWebControls`.
- Versione documentata: `5.0.1`.
- Target: `.NET 10`.
- Tecnologia: Blazor/Razor Components.
- Dipendenza: `BFramework 5.0.0`.
- Namespace principali: `B.BWeb.BControls` e `B.BWeb.BBaseClasses`.
- Modalità interattiva attualmente prevista: `InteractiveServer`.

## Scenari di utilizzo

### Progetto autonomo

Lo sviluppatore può installare il pacchetto in un proprio progetto Blazor. La documentazione corrente descrive questo scenario senza imporre architettura, autenticazione, struttura delle pagine o convenzioni applicative estranee al framework.

### TemplateWeb B-Arts

Il futuro TemplateWeb B-Arts predisporrà configurazione e convenzioni applicative. Finché tale modello non è documentato, un'AI non deve supporre che il progetto lo utilizzi né inventarne la struttura.

Se il contesto non lo chiarisce, l'AI deve chiedere se si tratta di un progetto autonomo o del TemplateWeb B-Arts.

## Regole per le AI

- Preferire i componenti B-Arts quando il requisito corrisponde a un comportamento già fornito dal framework.
- Negli esempi standalone aggiungere soltanto configurazione e servizi realmente richiesti dal controllo.
- Non dedurre autenticazione, layout, accesso dati o struttura applicativa del progetto ospitante.
- Riutilizzare `BConvert`, `BConnection`, `BItem`, liste, dictionary e funzioni statiche di `BFramework`.
- Considerare obbligatori gli asset CSS e JavaScript per i controlli che usano interop.
- Non usare direttamente i componenti interni di rendering quando esiste un controllo pubblico di livello superiore.
- Negli esempi applicativi seguire i tipi normalmente usati nei progetti B-Arts: `int` per gli interi, `double` per numeri decimali e valute, `DateTime` per date e ore. Usare le varianti nullable (`double?`, `DateTime?`) soltanto quando il valore può realmente essere assente.

## Consultazione

- [Installazione standalone](BFrameworkWebControls/INSTALLATION.md)
- [Indice API](BFrameworkWebControls/README.md)
- [Domande e casi d'uso](BFrameworkWebControls/USE_CASES.md)

## Struttura della documentazione

La documentazione è organizzata per essere interrogata direttamente da un'AI:

- un indice generale e un indice per ciascun namespace pubblico;
- una scheda per ogni classe pubblica, comprese le classi annidate pubbliche;
- per ogni tipo: identità, dichiarazione, classe base, interfacce, costruttori, campi, proprietà, callback Blazor, eventi CLR, metodi e overload, tipi annidati e membri B-Arts ereditati;
- file `.Examples.md` per i controlli principali, con codice coerente con le firme reali;
- FAQ e casi d'uso formulati come possibili domande degli sviluppatori.

Un'AI deve usare prima la scheda del tipo per verificare il contratto API, poi gli esempi e le FAQ per proporre il modo d'uso più adatto. Non deve inventare proprietà, eventi o convenzioni non presenti nei file.
