«Десятка найкращих фільмів» (розширення функціональності)
Модифікувати існуючий веб-додаток на ASP.NET Core MVC так, щоб користувач міг повністю керувати списком фільмів через веб-інтерфейс.
| using Microsoft.AspNetCore.Mvc; | |
| using Microsoft.EntityFrameworkCore; | |
| namespace mvc.Controllers | |
| { | |
| public class StudentController : Controller // контролер для CRUD-операцій над студентами | |
| { | |
| private readonly StudentContext _context; // контекст бази даних | |
| public StudentController(StudentContext context) // конструктор з ін'єкцією залежностей | |
| { |
На стартовій сторінці додатка потрібно виводити інформацію про 10 найкращих фільмів на ваш погляд. Усі дані про фільми мають зберігатися у локальній базі даних SQL Server.
Для кожного фільму в базі даних необхідно зберігати таку інформацію:
| using Microsoft.EntityFrameworkCore; | |
| namespace mvc | |
| { | |
| public class Program | |
| { | |
| public static void Main(string[] args) | |
| { | |
| var builder = WebApplication.CreateBuilder(args); |
| namespace mvc | |
| { | |
| public class Program | |
| { | |
| public static void Main(string[] args) | |
| { | |
| var builder = WebApplication.CreateBuilder(args); // створює билдер для веб-додатку, автоматично читає appsettings.json, змінні середовища тощо | |
| builder.Services.AddControllersWithViews(); // реєструє сервіси MVC: контролери, представлення (Views), Razor Pages тощо |
| using System.Diagnostics; // підключає простір імен для роботи з діагностикою (наприклад, Activity) | |
| using Microsoft.AspNetCore.Mvc; // основний простір імен для ASP.NET Core MVC (Controller, IActionResult тощо) | |
| using mvc.Models; // підключає папку Models нашого проєкту, щоб мати доступ до моделей (наприклад, ErrorViewModel) | |
| namespace mvc.Controllers // простір імен контролерів проєкту, зазвичай відповідає структурі папок | |
| { | |
| public class HomeController : Controller // контролер Home, успадковується від базового класу Controller | |
| { | |
| public IActionResult Index() // дія Index — головна сторінка сайту, викликається за адресою / | |
| { |
| Program.cs: | |
| namespace RequestProcessingPipeline | |
| { | |
| public class Program | |
| { | |
| public static void Main(string[] args) // параметр args обов’язковий для WebApplication.CreateBuilder, інакше не працюватиме конфігурація додатка з appsettings.json, логування тощо | |
| { | |
| // 1. створюємо builder з args (інакше він не знає про appsettings, logging, Kestrel тощо) | |
| var builder = WebApplication.CreateBuilder(args); |
9:34 05.12.2011 ASP.NET
Схема розвитку архітектурних застосунків
Документно-орієнтовані застосунки
│ │
CGI → ISAPI
Документно-орієнтовані застосунки – на цьому етапі веб-застосунки були примітивним файловим сервером, який повертав користувачу заздалегідь згенеровану статичну веб-сторінку.
Поява застосунків, що ґрунтуються на інтерфейсах.
Суть роботи CGI полягала в тому, що сервер отримував посилання, яке викликало певний застосунок, потім сервер брав вхідні дані для цього застосунку і генерував на основі цих даних сторінку, які потім повертав клієнту.
Розробити додаток «Кінопошук». Додаток дозволяє користувачеві ввести у текстове поле назву фільму, і при натисканні на кнопку «Пошук» показує інформацію про фільм: рік випуску, рейтинг, тривалість, режисера, акторський склад, короткий опис фільму. Необхідно використовувати API сайту http://www.omdbapi.com/ для отримання даних.
Приклад запиту: http://www.omdbapi.com/?apikey=ваш_ключ&t=Game of Thrones
Весь проєкт викласти в публічний репозиторій (включно з папкою wwwroot)
| створити папку wwwroot поряд з Program.cs проєкта | |
| в папці wwwroot - папки css та js | |
| Program.cs: | |
| var builder = WebApplication.CreateBuilder(args); | |
| var app = builder.Build(); | |
| app.UseStaticFiles(); // обробляє статичні файли з wwwroot https://learn.microsoft.com/ru-ru/aspnet/core/fundamentals/static-files?view=aspnetcore-10.0 | |
| app.Run(async (context) => |