Создание веб-приложений

Проект редко состоит только из бэкенда. С помощью Lino также можно создавать веб-приложения для потребления сгенерированных API, предоставляя интерфейсы для конечных пользователей или внутренних команд.


В настоящее время фреймворк поддерживает Blazor Web App (режим рендеринга interactive auto) на уровне ядра. Однако архитектура спроектирована таким образом, чтобы позволять добавление нескольких фронтендов в одно решение, удовлетворяя различные сценарии и аудитории.

Фронтенды с Blazor Web App

При генерации фронтенда Lino автоматически создаёт проект Blazor Web App, настроенный для:

  • Упрощённая маршрутизация → стандартная структура навигации уже настроена.
  • Натуральная интеграция с Minimal APIs → прямое использование созданных эндпоинтов.
  • Переиспользуемые компоненты для CRUD → стандартные страницы списка, создания и редактирования.
  • Поддержка аутентификации и авторизации → если сервис настроен на безопасность.

Этот фронтенд уже готов к использованию API, созданных в модулях приложения, с сильной типизацией и автоматической интеграцией через типизированный HttpClient.

Несколько фронтендов

Проект может содержать любое количество фронтендов. Каждый фронтенд добавляется как новый проект Blazor в решение, разделяя одни и те же API, предоставляемые бэкендом.

Примеры сценариев:

  • Публичный сайт → страницы, доступные клиентам или посетителям.
  • Backoffice/Админ → внутренняя панель управления для операторов или административных команд.
  • Портал партнёров → ограниченный доступ для партнёров, реселлеров или поставщиков.

Такое разделение облегчает специализацию интерфейса, сохраняя архитектурную согласованность при использовании API.

Генерация веб-страниц

Чтобы ускорить разработку интерфейсов, CLI Lino предлагает команду:

lino page new

Эта команда создаёт Blazor-страницы, уже подключённые к бэкенду, с соблюдением установленных соглашений:

  • Генерация компонентов форм → страницы создания и редактирования.
  • Автоматические списки → страницы индекса (постраничный список).
  • Прямое взаимодействие с API → автоматическое подключение к соответствующим эндпоинтам.

Это позволяет создавать полный CRUD (фронтенд → API → CQRS → база данных) без повторного ручного написания кода.

Например, создавая страницы для сущности Order, будет создана следующая структура:

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

Кроме того, создаются интегрированные сервисы для использования эндпоинтов OrdersEndpoints, обеспечивая сквозное взаимодействие:
Фронтенд → API → Commands/Queries → База данных

Таким образом, Lino предоставляет полный поток разработки full-stack, значительно сокращая время, необходимое для создания новых функций.

Произошла необработанная ошибка. Обновить 🗙