Creazione di applicazioni web
Un progetto raramente è composto solo dal backend. Con Lino, è anche possibile creare applicazioni web per consumare le API generate, offrendo interfacce agli utenti finali o ai team interni.
Attualmente, il framework supporta nativamente Blazor Web App (modalità di rendering interactive auto).
Tuttavia, l’architettura è progettata per consentire l’aggiunta di più frontend nella stessa soluzione, rispondendo a scenari e pubblici differenti.
Front-end con Blazor Web App
Generando un front-end, Lino crea automaticamente un progetto Blazor Web App configurato per:
- Routing semplificato → struttura di navigazione standard già configurata.
- Integrazione nativa con Minimal APIs → utilizzo diretto degli endpoint creati.
- Componenti riutilizzabili per CRUD → pagine di elenco, creazione e modifica standardizzate.
- Supporto per autenticazione e autorizzazione → se il servizio è configurato con sicurezza.
Questo front-end è già pronto per consumare le API generate nei moduli dell’applicazione, con tipizzazione forte e integrazione automatica tramite HttpClient tipizzato.
Molti front-end
Un progetto può contenere tutti i front-end necessari. Ogni front-end viene aggiunto come nuovo progetto Blazor all’interno della soluzione, condividendo le stesse API esposte dal backend.
Esempi di scenari:
- Sito pubblico → pagine accessibili a clienti o visitatori.
- Backoffice/Admin → pannello di gestione interno per operatori o team amministrativi.
- Portale partner → accesso riservato a partner, rivenditori o fornitori.
Questa separazione facilita la specializzazione dell’interfaccia, mantenendo coerenza architetturale nel consumo delle API.
Generazione di pagine web
Per accelerare lo sviluppo delle interfacce, il CLI di Lino offre il comando:
lino page new
Questo comando crea pagine Blazor già collegate al backend, seguendo le convenzioni stabilite:
- Generazione di componenti di form → pagine di creazione e modifica.
- Liste automatiche → pagine indice (lista con paginazione).
- Integrazione diretta con le API → connessione automatica agli endpoint corrispondenti.
Ciò permette di creare CRUD completi (frontend → API → CQRS → database) senza ripetere codice manualmente.
Creando pagine per l’entità Order, ad esempio, si otterrà la seguente struttura:
MyApp/
└── src/
└── WebApps/
└── MySite/
└── Services/
└── Pages/
└── Orders/
└── Registration/
├── Order.razor
├── Order.razor.cs
└── Components/
├── Form/
│ ├── OrderForm.razor
│ ├── OrderForm.razor.cs
│ ├── OrderFormExtensions.cs
│ └── OrderFormViewModel.cs
└── Grid/
├── OrderGrid.razor
├── OrderGrid.razor.cs
├── OrderGridExtensions.cs
└── OrderPagedQueryParams.cs
Inoltre, vengono creati servizi integrati per consumare gli endpoint di OrdersEndpoints, garantendo la comunicazione end-to-end:
Frontend → API → Commands/Queries → Database
In questo modo, Lino fornisce un flusso completo di sviluppo full-stack, riducendo drasticamente il tempo necessario per creare nuove funzionalità.
