Введение
В моей предыдущей статье я четко объяснил Blazor, привязку данных и предпосылки, необходимые для начала работы с Blazor. В этой статье мы собираемся использовать компонент материала MudBlazor для создания богатых страниц пользовательского интерфейса. Для разработки сырого приложения мы будем использовать Карты, Таблицы, Иконки, Кнопки, Разбивку на страницы, Поиск и другие компоненты для выполнения нашей задачи.
Если вы хотите узнать больше о Blazor, я настоятельно рекомендую посетить наши Статьи Blazor, где вы можете прочитать о Blazor Server Side, разработке веб-сборок Blazor и других темах.
Содержание
- Представляем MudBlazor.
- Предпосылки
- Настройка проекта — .Net 5
- Установка и настройка MudBlazor
- Настройка соединения с базой данных SQL с помощью EfCore
- Операции Blazor CRUD с использованием сервисного слоя и шаблона репозитория
- Создание пользовательского интерфейса с компонентами MudBlazor
- Заключение
Представляем MudBlazor
MudBlazor — это «инфраструктура компонентов дизайна материалов» для Blazor, упрощающая структуру веб-разработки без проблем с CSS и javascript. Если вы ищете средства выбора даты, индикаторы выполнения, рейтинги и т. д.
MudBlazor поддержит вас, и почти все компоненты используют только C# (без Javascript, за исключением случаев, когда это строго необходимо). Видение MudBlazor состоит в том, чтобы сделать его чистым, простым и иметь настраиваемый современный дизайн. Никакого Javascript, только Blazor и CSS. Команда задокументировала библиотеку в очень понятной форме. С документацией можно ознакомиться здесь.
Предпосылки
Настройка проекта — .Net 5.0
Откройте Visual Studio и найдите приложение Blazor. Нажмите кнопку Далее,
Определите имя проекта, путь и имя решения. Нажмите на кнопку Создать,
После этого появится новое окно, в котором можно выбрать целевую платформу (.Net 5.0) из раскрывающегося списка. Обязательно выберите серверное приложение Blazor и в разделе «Дополнительно» «Настроить Https» проверено.
Установка и настройка MudBlazor
Откройте консоль диспетчера пакетов и попробуйте запустить следующую команду, чтобы установить MudBlazor в наш проект.
Install-Package MudBlazor
После установки пакета откройте файл startup.cs и попробуйте добавить службы внутри метода ConfigureServices(), чтобы добавить все распространенные службы, которые требуются компонент MudBlazor.
Теперь нам нужно добавить ссылки на файлы CSS и js MudBlazor на страницу Pages /_Host razor,
Здесь нам нужно импортировать пакет MudBlazor в файл _Imports.razor,
После этого нам нужно добавить провайдеров, которые мы используем из пакета MudBlazor. Откройте Shared/MainLayout.razor и добавьте приведенный ниже код в конец файла:
Настройка соединения с базой данных SQL с помощью EfCore
Чтобы здесь установить подключение к базе данных SQL с помощью EFcore, нам потребуются следующие пакеты для установления подключения с использованием подхода Code first. Мы можем установить необходимые пакеты с помощью диспетчера пакетов Nuget или с помощью консоли диспетчера пакетов.
Пакеты NuGet
Команды — Консоль PM
Install-Package Microsoft.EntityFrameworkCore.SqlServer
Install-Package Microsoft.EntityFrameworkCore.Tools
Начнем с определения классов в папке Models. Здесь мы создаем новую папку с именем Models, а внутри нее создадим класс Student с минимальными свойствами, чтобы упростить реализацию.
Student.cs
Ключ —атрибут действует как первичный ключ для нашего свойства Id.
Далее добавим в наше приложение класс DbContext. Это помогает нам получить доступ к таблицам базы данных, которые будут созданы нашими моделями через приложение. Создайте отдельную папку с именем ApplicationDbContext и внутри нее создайте класс AppDbContext для определения нашего DbContext.
AppDbContext.cs
Давайте добавим строку подключения нашей базы данных SQL в файл appsettings.json,
Теперь давайте добавим DbContext в наш контейнер службы приложений, чтобы получить доступ ко всем таблицам из соответствующей базы данных, используя следующий код:
Наконец, давайте добавим миграции и обновим нашу базу данных. Запустите приведенные ниже команды одну за другой в консоли диспетчера пакетов.
add-migration 'initial'
update-database
Вот наша база данных и таблица Student, созданная в нашей локальной базе данных.
Операции Blazor Crud с использованием сервисного уровня и шаблона репозитория
ASP.Net Core предназначен для поддержки внедрения зависимостей. Теперь мы создаем общий интерфейс репозитория для операций сущностей, чтобы мы могли видеть слабосвязанное приложение. Создайте папку с именем UnitofWork, внутри которой будет поддерживаться уровень репозитория и его интерфейс.
Ниже приведен фрагмент кода,
Repository.cs
Создайте класс репозитория для выполнения операций с базой данных, которые наследуют интерфейс IRepository.
IRepository.cs
Давайте определим службы, содержащие основную бизнес-логику, как часть нашего проекта, который соединяется с уровнем репозитория и выполняет все операции с базой данных. Здесь я создал папку Services, чтобы определить наши основные службы.
StudentServices.cs
IStudentService.cs
Здесь четкое описание всех наших услуг,
- GetStudents — для извлечения всех записей о студентах из базы данных.
- InsertStudent — чтобы вставить запись учащегося в таблицу и таким же образом обновить ту же запись учащегося, если есть какие-либо изменения, которые поставляются с пользовательским интерфейсом.
- DeleteStudent —Жесткоеудаление записи из таблицы.
Теперь, чтобы закончить со слоем обслуживания. мы должны зарегистрировать этот интерфейс и класс в файле Startup.cs. В метод ConfigureServices() добавьте следующий код:
services.AddScoped<IStudentService, StudentService>();
Кроме того, нам нужно зарегистрировать уровень репозитория в той же функции ConfigureServices() внутри класса Startup,
services.AddScoped(typeof(IRepository<>), typeof(Repository<>));
Создание пользовательского интерфейса с компонентами MudBlazor
Чтобы иметь пользовательский интерфейс, мы должны создать страницу Razor в Pages/StudentInfo.razor, где будут операции, а ниже приведен фрагмент кода для вызова операций Crud из уровня службы.
StudentInfo.razor
Вот краткое описание приведенного выше фрагмента кода,
- OnInitializedAsync() — как только страница загружается, по умолчанию вызывается метод OnInitializedAsync. Внутри этого метода мы вызывали метод GetAllStudents() для извлечения результатов из базы данных и последовательного заполнения ими таблицы Mud Table.
- GetAllStudents() — выборка данных из базы данных через сервисный уровень.
- Search() —В загруженной таблице, если мы хотим отфильтровать данные по любому из полей, эта функция поиска поможет.
- Save() — когда пользователь вводит данные в форму и нажимает кнопку SaveStudent, этот метод срабатывает и сохраняет или обновляет эти значения в базе данных.
- Edit() — заполняет значения текстовых полей на основе выборки данных из списка с использованием идентификатора.
- Delete() —эта функция помогает удалять записи из базы данных через сервисный уровень.
Форма MudBlazor
Мы использовали MudCards для разработки страницы с текстовыми полями и кнопкой «Сохранить» и Mutable для отображения записей, извлекаемых из базы данных.
Ниже приведен фрагмент кода,
Строка 1 — маршрутизация страницы с помощью учащегося.
Строки 3, 4, 5 — импорт файлов и служб и использование функции Snackbar, предоставляемой MudBlazor, для работы в качестве тостеров уведомлений.
Строка 8–22: карточка с заголовками, обязательными текстовыми полями и кнопкой для сохранения значений.
Строка 24–52: мы можем связать каждое из доступных свойств клиента с соответствующими столбцами, а также упомянутыми выше, предоставив возможность фильтровать данные на основе функций поиска, также у нас есть кнопки, известные как изменить и удалить. выполнить обновление или удаление.
Добавление маршрутизации страницы на страницу бритвы Shared/NavMenu.
NavMenu.razor
Вот как легко создать Blazor CRUD с помощью Mudblazor и Entity Framework Core.
Окончательный результат
После запуска приложения и перенаправления на страницу информации о студентах ниже мы видим, что наше приложение будет получать список студентов, добавлять информацию о новых студентах, редактировать и удалять существующих студентов, а также разбивать на страницы с классным пользовательским интерфейсом материалов, предоставленным MudBlazor.
Заключение
Я надеюсь, что эта статья поможет вам в понимании реализации операций CRUD с использованием MudBlazar с использованием серверной части Blazor и .Net 5. Исходный код вы можете найти здесь.
Спасибо за чтение, пожалуйста, дайте мне знать ваши вопросы, мысли или отзывы в разделе комментариев. Я ценю ваши отзывы и поддержку.
Продолжай учиться….!