Création d’applications web

Un projet est rarement composé uniquement du backend. Avec Lino, il est également possible de créer des applications web pour consommer les API générées, offrant des interfaces aux utilisateurs finaux ou aux équipes internes.


Actuellement, le framework prend en charge nativement Blazor Web App (mode de rendu interactive auto). Cependant, l’architecture est conçue pour permettre l’ajout de plusieurs frontends dans la mĂȘme solution, afin de rĂ©pondre Ă  diffĂ©rents scĂ©narios et publics.

Frontends avec Blazor Web App

Lors de la gĂ©nĂ©ration d’un front-end, Lino crĂ©e automatiquement un projet Blazor Web App configurĂ© pour :

  • Routage simplifiĂ© → structure de navigation standard dĂ©jĂ  configurĂ©e.
  • IntĂ©gration native avec Minimal APIs → consommation directe des endpoints créés.
  • Composants rĂ©utilisables pour les CRUD → pages de liste, crĂ©ation et Ă©dition standardisĂ©es.
  • Support de l’authentification et de l’autorisation → si le service est configurĂ© pour la sĂ©curitĂ©.

Ce front-end est dĂ©jĂ  prĂȘt Ă  consommer les API gĂ©nĂ©rĂ©es dans les modules de l’application, avec typage fort et intĂ©gration automatique via HttpClient typĂ©.

Multiples frontends

Un projet peut contenir autant de frontends que nĂ©cessaire. Chaque frontend est ajoutĂ© comme un nouveau projet Blazor dans la solution, partageant les mĂȘmes API exposĂ©es par le backend.

Exemples de scénarios :

  • Site public → pages accessibles aux clients ou visiteurs.
  • Backoffice/Admin → panneau de gestion interne pour les opĂ©rateurs ou Ă©quipes administratives.
  • Portail partenaire → accĂšs restreint aux partenaires, revendeurs ou fournisseurs.

Cette sĂ©paration facilite la spĂ©cialisation de l’interface tout en maintenant la cohĂ©rence architecturale dans la consommation des API.

Génération de pages web

Pour accélérer le développement des interfaces, le CLI de Lino propose la commande :

lino page new

Cette commande crée des pages Blazor déjà connectées au backend, suivant les conventions établies :

  • GĂ©nĂ©ration de composants de formulaire → pages de crĂ©ation et d’édition.
  • Listes automatiques → pages d’index (listes paginĂ©es).
  • IntĂ©gration directe avec les APIs → connexion automatique aux endpoints correspondants.

Cela permet de crĂ©er des CRUD complets (frontend → API → CQRS → base de donnĂ©es) sans rĂ©pĂ©tition manuelle du code.

En crĂ©ant des pages pour l’entitĂ© Order, par exemple, la structure suivante sera gĂ©nĂ©rĂ©e :

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

De plus, des services intégrés sont créés pour consommer les endpoints de OrdersEndpoints, garantissant la communication de bout en bout :
Frontend → API → Commands/Queries → Base de donnĂ©es

Ainsi, Lino fournit un flux de développement full-stack complet, réduisant considérablement le temps nécessaire pour créer de nouvelles fonctionnalités.

Une erreur non gérée est survenue. Rafraîchir 🗙