Загружаем и отображаем данные с помощью страниц Razor, фоновых задач и gRPC¶
От меня
Мой код этой главы тут
В этой главе мы создадим полноценное, хоть и простое приложение. Представьте вики, к примеру вики стран, которое будет использовать ASP.NET Core Razor Pages для веб-интерфейса, фоновый сервис с gRPC в качестве API, позволяющий перемещать данные между БД и веб-интерфейсом, SQL Server для хранения данных, и EF Core для доступа к ним.
Архитектура¶
Наше приложение будет содержать следующие компоненты:
- веб-страница (на Razor Pages) для загрузки файла JSON со списком стран;
- вторая веб-страница для отображения списка стран и возможностью удаления отмеченных;
- третья веб-страница для изменения описания страны;
- фоновый сервис, позволяющий передать в БД данные о странах из JSON-файла. Этот этап необходим, так как позволяет избежать блокировки вебсайта в процессе сохранения данных;
- Сервис gRPC для управления данными;
- SQL Server и EF Core для выполнения запросов к БД и создания базы из кода.
На картинке показана архитектура нашего приложения.

Создание приложения ASP.NET Core gRPC¶
Наше приложение будет состоять из четырёх слоёв (за каждый слой будет отвечать отдельный проект):
CountryService.gRPC— проект сервисов gRPC;CountryService.DAL— проект с кодом доступа к данным (DAL, data access layer );CountryService.BLL— проект с бизнес-логикой (BLL, business logic layer);CountryService.Domain— проект с доменными объектами, используемыми по всему приложению
Отношения между слоями отражены на диаграмме:

Добавление проекта gRPC описано здесь, что же касается трёх других слоёв — это просто библиотеки классов (class library), и добавляются в решение традиционным образом.
Настраиваем SQL Server и используем EF Core для доступа к данным¶
Пишем бизнес-логику и сервис Country gRPC¶
Создаём и разделяем на слои приложение ASP.NET Core Razor¶
Загружаем файл с данными, отображаем и управляем данными при помощи Razor Pages¶
Дата создания : 17 июня 2023 г.