Skip to content

Instantly share code, notes, and snippets.

View sunmeat's full-sized avatar
🐈
MEOW

Oleksandr Zahoruiko sunmeat

🐈
MEOW
View GitHub Profile
@sunmeat
sunmeat / task.md
Created December 19, 2025 16:31
ДЗ. трирівнева архітектура. рівень PL

Завдання: ASP.NET Core MVC. Багаторівнева архітектура. Рівень представлення. Веб-додаток «Музичний портал»

Модифікувати раніше розроблений веб-додаток «Музичний портал» з монолітною архітектурою таким чином, щоб у результаті вийшла трирівнева архітектура.

У цьому завданні необхідно реалізувати Presentation Layer (рівень представлення), з яким безпосередньо взаємодіє користувач.

Зокрема, потрібно:

  • Розробити класи-контролери (Controllers).
  • Розробити подання (Views) — Razor-шаблони (.cshtml).
@sunmeat
sunmeat / task.md
Created December 19, 2025 16:27
ДЗ. трирівнева архітектура. рівень BLL

Завдання: ASP.NET Core MVC. Багаторівнева архітектура. Рівень бізнес-логіки. Веб-додаток «Музичний портал»

Модифікувати раніше розроблений веб-додаток «Музичний портал» з монолітною архітектурою таким чином, щоб у результаті вийшла трирівнева архітектура.

У цьому завданні необхідно реалізувати Business Logic Layer (рівень бізнес-логіки).

Зокрема, потрібно:

  • Розробити класи-сервіси (service classes).
  • Розробити трансферні моделі (DTO — Data Transfer Objects).
@sunmeat
sunmeat / scheme.txt
Created December 19, 2025 08:00
3-рівнева архітектура
──────────────────────────────────────────────────────────────────────────────────────
Presentation Layer (Рівень подання — те, що бачить і з чим взаємодіє користувач)
├── Контролери (Controllers)
├── Подання (Views / .cshtml файли)
├── ViewModels (моделі, які використовуються тільки у поданнях і контролерах)
├── DTO, які приходять від користувача (наприклад, з форм або JSON-запитів)
├── wwwroot (CSS, JavaScript, зображення)
├── Tag Helpers
├── Клієнтська валідація (JavaScript)
├── HttpContext (доступ до User, Session, Request, Response)
@sunmeat
sunmeat / scheme.txt
Created December 18, 2025 14:07
clean architecture
──────────────────────────────────────────────────────────────────────────────────────
Presentation Layer (PL / UI / Web)
├── Контролери (Controllers) / Razor Pages / Minimal API
├── Подання (Views / .cshtml)
├── ViewModels (моделі для представлення)
├── DTO (які приходять від користувача, наприклад, з форм)
├── Tag Helpers, View Components (перевикористовувані динамічні віджети)
├── wwwroot (CSS, JS, images)
├── Client-side validation (JS-валідація)
├── HttpContext (контекст запиту)
@sunmeat
sunmeat / task.md
Created December 17, 2025 13:17
ДЗ: багаторівнева архітектура, шар доступу до даних

Багаторівнева архітектура в ASP.NET Core MVC

Рівень доступу до даних (Data Access Layer)

Веб-додаток «Музичний портал»

Завдання

Модифікувати раніше розроблений веб-додаток «Музичний портал» з монолітною архітектурою таким чином, щоб отримати трирівневу (three-layer) архітектуру:

  1. Presentation Layer — контролери та представлення (Views).
  2. Business Logic Layer — сервіси (буде в наступних завданнях).
@sunmeat
sunmeat / task.md
Created December 17, 2025 13:15
ДЗ: музичний портал 2

Валідація моделі. Сервіси. Впровадження залежностей в ASP.NET Core MVC

Веб-сайт «Музичний портал»

Завдання

Модифікувати архітектуру веб-додатка «Музичний портал» таким чином, щоб контролер взаємодіяв з базою даних через сервіс Repository, а не безпосередньо через контекст даних (DbContext).

При цьому взаємодія контролера з сервісом Repository має відбуватися через абстракцію IRepository, щоб забезпечити слабку зв’язаність (low coupling) між класами.

Вимоги до валідації

@sunmeat
sunmeat / task.md
Created December 16, 2025 20:26
ДЗ: музичний портал

Завдання: Музичний портал

Реалізувати веб-сайт «Музичний портал», на якому користувачі можуть розміщувати та завантажувати пісні.

Основні функціональні вимоги

  • Пісні на сайті поділяються за жанрами.
  • Додавати пісні можуть тільки зареєстровані користувачі.
  • Нові користувачі можуть залишати заявки на реєстрацію, які потім активує адміністратор порталу.
  • Адміністратор має повний доступ до управління:
@sunmeat
sunmeat / task.md
Created December 16, 2025 19:51
ДЗ на IRepository

Впровадження залежностей в ASP.NET Core MVC. Сервіси

Модифікувати архітектуру раніше розробленого веб-додатка «Гостьова книга» таким чином, щоб:

  • Контролер взаємодіяв з базою даних виключно через об’єкт класу Repository, а не безпосередньо через об’єкт класу контексту даних (DbContext).
  • Робота з об’єктом класу Repository здійснювалася через інтерфейсне посилання IRepository.

Мета — забезпечити слабку зв’язність (low coupling) між класами, дотримуючись принципів інверсії залежностей (DIP) та полегшуючи тестування й підтримку коду.

Ключові переваги такого підходу

@sunmeat
sunmeat / task.md
Last active December 16, 2025 10:58
ДЗ гостьова книга

Створити веб-додаток «Гостьова книга», що задовольняє таким вимогам:

  1. На головній сторінці index.cshtml виводяться повідомлення користувачів. При цьому кожне повідомлення виводиться в окремій таблиці, де вказується логін користувача, який залишив повідомлення, текст повідомлення, а також дата і час надсилання повідомлення.

  2. У заголовковій частині головної сторінки виводяться дві посилання:

    • «Вхід у систему» — перенаправлення на сторінку авторизації login.cshtml у разі, якщо користувач не вводив логін і пароль, а увійшов у систему як гість.
    • «Реєстрація» — перенаправлення на сторінку registration.cshtml.
  3. Користувачі, які пройшли авторизацію, бачать багаторядкове текстове поле для вводу повідомлення, кнопку «Додати повідомлення» та кнопку «Вихід», за якою завершується сеанс.

@sunmeat
sunmeat / task.md
Created December 12, 2025 14:37
завдання на валідацію форм

Модифікувати веб-додаток «Десятка найкращих фільмів» наступним чином: Необхідно реалізувати валідацію моделі як на стороні сервера, так і на стороні клієнта.

Для керуванні процесом валідації використовувати:

  • вбудовані атрибути валідації Data Annotations
  • власні (кастомні) атрибути валідації

Для виведення повідомлень про помилки валідації застосовувати:

  • тег-хелпери валідації (Validation Message Tag Helper, Validation Summary Tag Helper тощо)