Skip to content

Додаток Asp.Net Mvc Crud

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (2 оценок, среднее: 5,00 из 5)
Завантаження...

[ Полезный рекламный блок ]

Попробуйте свои силы в игре, где ваши навыки программирования на C# станут решающим фактором. Переходите по ссылке 🔰.


У цій статті ми розглянемо приклад простого Asp.Net Mvc Crud додатка, у двох варіантах: з використанням EF Core і звичайної колекції.

Операції будуть засновані на моделі User, що представляє звичайного користувача.

Під час роботи з базою даних, очікую від вас мінімальні знання концепцій Entity Framework Core, тому в деяких місцях, вдаватися в подробиці не стану.

Додаток Asp.Net Mvc Crud

Створення та налаштування проекту

Модель і Репозиторій

Додавання контролера та подання

Зберігання даних з Entity Framework Core

Створення та налаштування проекту

Щоб створити проект Users, запустіть Visual Studio і виберіть у меню File (Файл) – New Project (Створити Проект). Вкажіть шаблон проекту ASP.NET Core Web Application (Веб-додаток ASP.NET Core). Введіть UsersCrud, у полі Name, на наступній сторінці вкажіть Framework .Net 7.0 і натисніть кнопку Create:

Приложение Asp.Net Mvc Crud

Модель і Репозиторій

Модель для додатка UsersCrud буде заснована на списку користувачів. Створіть папку Models і додайте в неї файл класу на ім’я User.cs з таким вмістом:

Мені подобається забезпечувати узгоджений доступ до даних у застосунку з використанням патерну “Сховище” (Repository), у якому інтерфейс визначає властивості та методи, призначені для доступу до даних, а для роботи з механізмом зберігання даних застосовується клас реалізації. Перевага використання патерну “Сховище” пов’язана з полегшенням модульного тестування частини MVC додатка, а також із тим, що деталі, які стосуються зберігання даних, приховані від інших частин додатка.

Щоб створити інтерфейс сховища, створіть папку Interfaces і додайте в неї файл інтерфейсу на ім’я IUser.cs з таким вмістом:

Метод GetAllUsers() надаватиме доступ тільки для читання до всіх користувачів, відомих застосунку. Метод AddUser() буде використовуватися для додавання нових користувачів.

На цьому етапі ми збираємося зберігати об’єкти моделі в пам’яті, а трохи пізніше замінимо це інфраструктурою Entity Framework Core. Створіть папку Repository і додайте в неї файл класу на ім’я UserRepository.cs з таким вмістом:

Клас UserRepository реалізує інтерфейс IUser і застосовує екземпляр List для відстеження об’єктів User, тобто в разі зупинки або перезапуску застосунку дані будуть втрачатися. Постійне сховище буде введено в пізніше, а сховища в пам’яті цілком достатньо для приведення в працездатний стан частини ASP.NET Core МVС проекту, перш ніж додавати частину EntityFramework Core.

Додайте в клас Program оператор наступний оператор, щоб зареєструвати клас UserRepository як реалізацію для використання в якості залежностей інтерфейсу IUser:

Цей рядок коду реєструє клас UserRepository із застосуванням методу AddSingleton. У результаті під час розпізнавання залежності інтерфейсу IUser вперше створюється одиночний об’єкт, який буде використовуватися для всіх наступних залежностей.

Під час додавання і редагування користувачів нам необхідно зосередитися на процесі валідації моделі, для цього в корені проєкту визначимо папку ViewModels, до якої додамо клас UserViewModel з таким вмістом:

Модель даних слугує для передавання даних між поданням (відображенням) і контролером. Модель UserViewModel містить набір властивостей, які будуть використовуватися для передачі даних про користувача між клієнтською стороною (веб-сторінкою) і серверною стороною (контролером).

Зазначено атрибут [Required], який також вимагає наявність значення, і атрибут [Range(10, 120)], який обмежує діапазон віку від 10 до 120.

Додавання контролера та подання

Основний акцент у розглянутому прикладі додатка зроблено на управлінні користувачі, тому що це створює чудову можливість для демонстрації різних засобів роботи з даними. Нам потрібен контролер, який отримуватиме НТТР-запити і транслюватиме їх в операції над об’єктами User, тож створіть папку Controllers, додайте до неї файл на ім’я HomeController.cs, з таким вмістом:

Метод дії Index() передає колекцію об’єктів User зі сховища своєму поданню, яке відобразить користувачеві екранну таблицю з даними. Метод AddUser() зберігає нові об’єкти Product, які ґрунтуються на даних, отриманих у НТТР-запиті POST тощо.

Далі створіть папку Views/Home і помістіть у неї файл на ім’я Index.cshtml з таким вмістом:

Це подання відображає список користувачів, використовуючи дані моделі User, і надає можливості для оновлення та видалення записів про користувачів.

У папку Views/Home помістіть файл на ім’я CreateOrUpdate.cshtml з таким вмістом:

Це подання надає інтерфейс для створення нового користувача або оновлення наявного. Поля форми пов’язані з властивостями моделі UserViewModel, що дає змогу передавати й обробляти дані між поданням і контролером.

Запустіть додаток і перевірте його роботу:

users crud asp.net core mvc

Приклад роботи з колекцією користувачів завершено.

Зберігання даних з Entity Framework Core

Тепер додамо інфраструктуру Entity Framework Core у проєкт, щоб побачити, як легко працювати з базою даних, водночас внісши мінімум змін у поточну структуру проєкту.

Для початку завантажимо бібліотеку Entity Framework Core Sql Server:

asp.net mvc ef core crud

Або через Package Manager Console:

Перейдемо до файлу appsettings.json і пропишемо конфігурацію підключення та логування (якщо файлу немає, створіть його в корені проєкту):

Рядки підключення визначаються у файлі appsettings.json, у коді вище наведено визначення рядка підключення для БД додатка GameStore. У проєкті застосовується версія LocalDB продукту SQL Server, яка спроєктована спеціально для розробників і не вимагає конфігурації або облікових даних.

Ви зобов’язані забезпечити, щоб рядок підключення був єдиним нерозривним рядком. Формат рядка підключення специфічний для кожного сервера баз даних.

Навіть у проєкті, що зберігає лише невеликий обсяг даних, важливо розуміти запити і команди SQL, які інфраструктура Entity Framework Core посилає серверу баз даних.

У корені проєкту визначимо папку Data, до якої додамо клас ApplicationContext, з таким вмістом:

Тепер час оновити клас реалізації сховища, щоб звертатися до даних через клас контексту, визначений раніше. Змінимо код класу UserRepository, таким чином:

У додатку ASP.NET Core MVC, доступ до об’єктів контексту даних керується з використанням впровадження залежностей, і тому до класу UserRepository було додано конструктор, який приймає об’єкт ApplicationContext, який буде надано засобом впровадження залежностей під час виконання.

Властивість Users, визначену інтерфейсом сховища, можна реалізувати шляхом повернення властивості DbSet<User>, яка визначена в класі контексту. Аналогічно метод AddUser() реалізувати легко, тому що об’єкт DbSet<Product> визначає метод Add(), який приймає об’єкти User і зберігає їх на постійній основі.

Додайте в клас Program.cs оператори конфігурації, щоб повідомити інфраструктуру Entity Framework Core про те, яким чином використовувати рядок підключення, який має застосовувати постачальник БД, і як керувати класом контексту:

Не забудьте прибрати старий рядок або просто змінити його життєвий цикл:

Інфраструктура Entity Framework Core керує базами даних через засіб, званий міграціями, які являють собою набори змін, що створюють або модифікують БД з метою її синхронізації з моделлю даних.

Для роботи з міграцією, необхідно завантажити таку бібліотеку –

Microsoft.EntityFrameworkCore.Tools

Або через Package Manager Console:

Для створення міграції у вікні Package Manager Console введіть таку команду:

Init або Initial – загальноприйняте ім’я, яке використовується для міграції, що здійснює первинну підготовку БД.

Під час виконання команди, інфраструктура Entity Framework Сore інспектує проєкт, знаходить клас контексту і застосовує його для створення міграції. У результаті у вікні Solution Explorer з’явиться папка Migrations, що містить файли класів, оператори яких підготують БД.

Просто створити міграцію, яка являє собою всього лише набір інструкцій, недостатньо. Інструкції міграції повинні бути виконані, щоб створити БД, яка зможе зберігати дані програми. Для виконання інструкцій міграції, у вікні Package Manager Console виконайте команду:

Інфраструктура Entity Fгamework Core підключиться до сервера баз даних, зазначеного в рядку підключення, і виконає оператори в міграції. Результатом буде БД, яку можна використовувати для зберігання об’єктів User.

Запустіть проєкт і перевірте його роботу. Проєкт був трохи спрощений, для того щоб початківцю-розробнику було легше розібратися, деякі речі я реалізував не так, як робив би в реальному проєкті.

Я сподіваюся, що вам сподобалося читати цю статтю, і вона виявилася легкою для розуміння. Будь ласка, дайте мені знати, якщо у вас є якісь коментарі або виправлення.

Так само вам може бути цікава попередня стаття – Приймання платежів через Liqpay Api в Asp.Net Core.

Ви хочете навчитися писати код мовою програмування C#?

Створювати різні інформаційні системи, що складаються з сайтів, мобільних клієнтів, десктопних додатків, телеграм-ботів тощо.

Переходьте до нас на сторінку Dijix і ознайомтеся з умовами навчання, ми спеціалізуємося тільки на індивідуальних заняттях, як для початківців, так і для просунутих програмістів. Ви можете взяти як одне заняття для опрацювання питання, що вас цікавить, так і кілька, для більш щільної роботи. Завдяки особистому кабінету, кожен студент підвищить якість свого навчання, у вашому розпорядженні:

  • Доступ до пройденого матеріалу
  • Тематичні статті
  • Бібліотека книг
  • Онлайн тестування
  • Спілкування в закритих групах

https://dijix.com.ua

Живи у своєму світі, програмуй у нашому.

Published inAsp.Net Core
Subscribe
Notify of
guest
0 комментариев
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x