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à.

Si è verificato un errore non gestito. Ricarica 🗙