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.
