Creación de aplicaciones web

Un proyecto rara vez está compuesto únicamente por el backend. Con Lino, también es posible crear aplicaciones web para consumir las APIs generadas, ofreciendo interfaces a los usuarios finales o a los equipos internos.


Actualmente, el framework ofrece soporte nativo para Blazor Web App (modo de renderizado interactive auto). Sin embargo, la arquitectura fue diseñada para permitir la adición de múltiples frontends en la misma solución, atendiendo a diferentes escenarios y públicos.

Frontends con Blazor Web App

Al generar un frontend, Lino crea automáticamente un proyecto Blazor Web App configurado para:

  • Enrutamiento simplificado → estructura de navegación estándar ya configurada.
  • Integración nativa con Minimal APIs → consumo directo de los endpoints creados.
  • Componentes reutilizables para CRUD → páginas de listado, creación y edición estandarizadas.
  • Soporte de autenticación y autorización → si el servicio está configurado para seguridad.

Este frontend ya está preparado para consumir las APIs generadas en los módulos de la aplicación, con tipado fuerte e integración automática vía HttpClient tipado.

Múltiples frontends

Un proyecto puede contener tantos frontends como se necesiten. Cada frontend se añade como un nuevo proyecto Blazor dentro de la solución, compartiendo las mismas APIs expuestas por el backend.

Ejemplos de escenarios:

  • Sitio público → páginas accesibles a clientes o visitantes.
  • Backoffice/Admin → panel interno de gestión para operadores o equipos administrativos.
  • Portal de socios → acceso restringido a socios, revendedores o proveedores.

Esta separación facilita la especialización de la interfaz, manteniendo la coherencia arquitectónica en el consumo de las APIs.

Generación de páginas web

Para acelerar el desarrollo de interfaces, el CLI de Lino ofrece el comando:

lino page new

Este comando crea páginas Blazor ya conectadas al backend, siguiendo las convenciones establecidas:

  • Generación de componentes de formulario → páginas de creación y edición.
  • Listados automáticos → páginas de índice (listado paginado).
  • Integración directa con APIs → conexión automática con los endpoints correspondientes.

Esto permite crear CRUD completos (frontend → API → CQRS → base de datos) sin repetir código manualmente.

Creando páginas para la entidad Order, por ejemplo, se generará la siguiente estructura:

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

Además, se crean servicios integrados para consumir los endpoints de OrdersEndpoints, garantizando la comunicación de extremo a extremo:
Frontend → API → Commands/Queries → Base de datos

De esta forma, Lino entrega un flujo completo de desarrollo full-stack, reduciendo drásticamente el tiempo necesario para crear nuevas funcionalidades.

Se ha producido un error no controlado. Recargar 🗙