diff --git a/README.md b/README.md index a5d23a5..fa358c1 100644 --- a/README.md +++ b/README.md @@ -26,7 +26,7 @@ * [Лабораторная работа №F1 - Одностраничное приложение (React)](/lwF1/README.md) * [Лабораторная работа №F2 - Получение данных через API (Fetch)](/lwF2/README.md) -* [Лабораторная работа №B1 - Изучение шаблона проектирования MVC](/TODO/README.md) +* [Лабораторная работа №B1 - Изучение шаблона проектирования MVC](/lwB1/README.md) * [Лабораторная работа №B2 - Разработка чат-бота для Telegram](/lwB2/README.md) ## Правила допуска до экзамена diff --git a/lwB1/README.md b/lwB1/README.md new file mode 100644 index 0000000..76363ba --- /dev/null +++ b/lwB1/README.md @@ -0,0 +1,52 @@ +# Лабораторная работа №B1 - Изучение шаблона проектирования MVC + +## Цель работы + +Понимание шаблона проектирования MVC и его применения при проектировании интернет-приложений. + +## Ход выполнения работы + +Необходимо вспомнить, что говорилось на лекции про данный шаблон проектирования. + +Также крайне рекомендуется осознать материал отсюда: + +- ; +- . + +Что следует понять из представленных выше и, возможно, каких других статей: + +1. Какие есть компоненты в шаблоне MVC и как они зависят друг от друга. +2. Как реализуется шаблон в ASP.NET Core. +3. Как создавать контроллеры и представления для них. +4. Где находится общий шаблон всех представлений и как его подключить. +5. Как передаются параметры на действия контроллера. +6. Что такое `wwwroot` и как использовать файлы из этой директории в веб-приложении. + +Что необходимо сделать для выполнения лабораторной работы: + +1. Создать приложение ASP.NET Core (Model-View-Controller). + Можно создать как через `dotnet new mvc -o test-mvc-proj`, так и через интерфейс Visual Studio. +2. Скопировать скрипты, изображения и таблицы стилей в `wwwroot`. + Контент, который уже есть в этой папке, можно удалить. +3. Заменить мастер-шаблон сайта на ваш шаблон из лабораторных работ по блоку front-end. + Как вы могли заметить, в замечаниях преподаватель всегда старался указать, что все страницы вашего веб-сайта должны выглядеть похожим образом. + Такой подход помогает потом "натянуть" вёрстку на веб-приложение как раз благодаря единому мастер-шаблону. + Если же у Вас несколько разных видов дизайна сайта (например, отдельно для главной страницы и для других), можно сделать несколько мастер-шаблонов. +4. Создать контроллеры и действия в них по смыслу тех страниц, что вы сверстали. + Например, страницы входа и регистрации можно преобразовать в действия `Signin` и `Signup` в контроллере `Account` (класс будет называться `AccountController`). + Страницы по заказу можно поместить в контроллер `Order`. + Главная страница - это по умолчанию действие `Index` в контроллере `Home`. + Страницы "О сайте", "Контакты" и аналогичные также рекомендуется размещать в контроллере `Home`. +5. Создать представления, связанные с действиями контроллеров. + Получить доступ к отображению представлений определённых действий можно следующим образом: `{адрес-сайта}/{контроллер}/{действие}`. + Действие `Index` и контроллер `Home` можно опускать из адреса. + Например, адрес сайта - или . + В этом случае главную страницу можно открыть по адресам , или . + Страница регистрации тогда будет доступна по адресу и никак иначе. +6. Заполнить представления разметкой из статических файлов. + Как можете догадаться, вставлять надо не полную разметку файла, а только отличающуюся у страниц часть для `RenderBody`. +7. Изменить ссылки (в меню, на страницах сайта) на новые. + Можно использовать новую возможность ASP.NET Core - TagHelpers. + [Пример использования TagHelper для ссылок тут](https://docs.microsoft.com/ru-ru/aspnet/core/mvc/views/tag-helpers/built-in/anchor-tag-helper?view=aspnetcore-7.0#asp-controller). +8. Ещё раз проверить, что сайт запускается. +9. Продемонстрировать работу приложения на лабораторном занятии и ответить на вопросы преподавателя.