Спробувати застосувати трирівневу (three-layer) архітектуру для фінального курсового проєкту. Мають бути такі рівні:
- Presentation Layer — контролери та представлення
- Business Logic Layer — сервіси
- Data Access Layer (DAL) — рівень доступу до даних
Необхідно реалізувати Data Access Layer, зокрема:
Створити класи-репозиторії для роботи з сутностями бази даних. Забезпечити взаємодію з репозиторіями через абстракцію IRepository для досягнення слабкої зв’язаності (low coupling). Застосувати патерн Unit of Work, який:
- Спрощує роботу з кількома репозиторіями.
- Гарантує, що всі репозиторії використовують один і той же контекст даних (DbContext).
Реалізувати Business Logic Layer (рівень бізнес-логіки).
- Розробити класи-сервіси (service classes).
- Розробити трансферні моделі (DTO — Data Transfer Objects).
- Забезпечити взаємодію з класами-сервісами виключно через абстракції (інтерфейси), щоб досягти слабкої зв'язаності (low coupling) між компонентами.
Реалізувати Presentation Layer (рівень представлення), з яким безпосередньо взаємодіє користувач.
- Розробити класи-контролери (Controllers).
- Розробити подання (Views) — Razor-шаблони (.cshtml).
- За потреби розробити моделі представлення (View Models або Binding Models) — спеціальні класи для передачі даних між контролером і представленням.
- Забезпечити валідацію трансферних моделей (DTO) як на стороні сервера, так і на стороні клієнта.
- Для управління процесом валідації застосовувати атрибути валідації (Data Annotations, наприклад [Required], [StringLength], [RegularExpression] тощо).