Merge pull request 'Добавление л/р 6 и изменение л/р B1' (#1) from lw06 into main
Reviewed-on: https://git.is.ulstu.ru/v.moiseev/intprog/pulls/1
This commit is contained in:
commit
0ce84a1428
@ -21,12 +21,13 @@
|
|||||||
- [Лабораторная работа №3 - Динамика сайта (JavaScript)](./lw03/README.md)
|
- [Лабораторная работа №3 - Динамика сайта (JavaScript)](./lw03/README.md)
|
||||||
- [Лабораторная работа №4 - Разворачивание локального веб-сервера (PHP)](./lw04/README.md)
|
- [Лабораторная работа №4 - Разворачивание локального веб-сервера (PHP)](./lw04/README.md)
|
||||||
- [Лабораторная работа №5 - Создание веб-приложения при помощи ASP.NET Core](./lw05/README.md)
|
- [Лабораторная работа №5 - Создание веб-приложения при помощи ASP.NET Core](./lw05/README.md)
|
||||||
|
- [Лабораторная работа №6 - Изучение шаблона проектирования MVC](./lw06/README.md)
|
||||||
|
|
||||||
Лабораторные работы на выбор:
|
Лабораторные работы на выбор:
|
||||||
|
|
||||||
- [Лабораторная работа №F1 - Одностраничное приложение (React)](./lwF1/README.md)
|
- [Лабораторная работа №F1 - Одностраничное приложение (React)](./lwF1/README.md)
|
||||||
- [Лабораторная работа №F2 - Получение данных через API (Fetch)](./lwF2/README.md)
|
- [Лабораторная работа №F2 - Получение данных через API (Fetch)](./lwF2/README.md)
|
||||||
- [Лабораторная работа №B1 - Изучение шаблона проектирования MVC](./lwB1/README.md)
|
- [Лабораторная работа №B1 - Создание онлайн-чата при помощи WebSocket](./lwB1/README.md)
|
||||||
- [Лабораторная работа №B2 - Разработка чат-бота для Telegram](./lwB2/README.md)
|
- [Лабораторная работа №B2 - Разработка чат-бота для Telegram](./lwB2/README.md)
|
||||||
|
|
||||||
## Правила допуска до экзамена
|
## Правила допуска до экзамена
|
||||||
|
34
lw06/README.md
Normal file
34
lw06/README.md
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
# Лабораторная работа №6 - Изучение шаблона проектирования MVC
|
||||||
|
|
||||||
|
## Цель работы
|
||||||
|
|
||||||
|
Понимание шаблона проектирования MVC и его применения при проектировании интернет-приложений.
|
||||||
|
|
||||||
|
## Ход выполнения работы
|
||||||
|
|
||||||
|
Необходимо вспомнить, что говорилось на лекции про данный шаблон проектирования.
|
||||||
|
|
||||||
|
Также крайне рекомендуется осознать материал отсюда:
|
||||||
|
|
||||||
|
- <https://metanit.com/sharp/aspnet6/>;
|
||||||
|
- <https://learn.microsoft.com/ru-ru/aspnet/core/mvc/overview>.
|
||||||
|
|
||||||
|
Что следует понять из представленных выше и, возможно, каких других статей:
|
||||||
|
|
||||||
|
1. Какие есть компоненты в шаблоне MVC и как они зависят друг от друга.
|
||||||
|
2. Как реализуется шаблон в ASP.NET Core.
|
||||||
|
3. Как создавать контроллеры и представления для них.
|
||||||
|
4. Где находится общий шаблон всех представлений и как его подключить.
|
||||||
|
5. Как передаются параметры на действия контроллера.
|
||||||
|
6. Что такое `wwwroot` и как использовать файлы из этой директории в веб-приложении.
|
||||||
|
|
||||||
|
## Защита работы
|
||||||
|
|
||||||
|
Для защиты лабораторной работы необходимо продемонстрировать аналогичную работу из курса "Разработка профессиональных приложений", где есть:
|
||||||
|
|
||||||
|
- Отдельный слой представления;
|
||||||
|
- Отдельный слой бизнес-логики;
|
||||||
|
- Наличие API в стиле REST;
|
||||||
|
- Наличие паттерна MVC.
|
||||||
|
|
||||||
|
> Как понимаю, это соответствует лабораторной работе №5.
|
@ -1,52 +1,13 @@
|
|||||||
# Лабораторная работа №B1 - Изучение шаблона проектирования MVC
|
# Лабораторная работа №B1 - Создание онлайн-чата при помощи WebSocket
|
||||||
|
|
||||||
## Цель работы
|
## Цель работы
|
||||||
|
|
||||||
Понимание шаблона проектирования MVC и его применения при проектировании интернет-приложений.
|
Изучить протокол WebSocket и его реализацию (например, socket.io или SignalR).
|
||||||
|
|
||||||
## Ход выполнения работы
|
## Ход выполнения работы
|
||||||
|
|
||||||
Необходимо вспомнить, что говорилось на лекции про данный шаблон проектирования.
|
1. Определиться с технологией.
|
||||||
|
Например, можно использовать ASP.NET с SignalR или nodejs с socket.io.
|
||||||
Также крайне рекомендуется осознать материал отсюда:
|
2. Реализовать онлайн-чат из примера для демонстрации работы технологии.
|
||||||
|
3. Доработать онлайн-чат: добавить новое текстовое поле "Имя" (_nickname_), которое также надо задать до отправки сообщения на сервер.
|
||||||
- <https://metanit.com/sharp/aspnet6/>;
|
4. Продемонстрировать работу изменённого чата с использованием нескольких клиентов (например, несколько браузеров).
|
||||||
- <https://docs.microsoft.com/ru-ru/aspnet/core/mvc/overview?view=aspnetcore-7.0>.
|
|
||||||
|
|
||||||
Что следует понять из представленных выше и, возможно, каких других статей:
|
|
||||||
|
|
||||||
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` можно опускать из адреса.
|
|
||||||
Например, адрес сайта - <http://localhost:5000/> или <https://localhost:5001/>.
|
|
||||||
В этом случае главную страницу можно открыть по адресам <http://localhost:5000/>, <http://localhost:5000/Home/> или <http://localhost:5000/Home/Index>.
|
|
||||||
Страница регистрации тогда будет доступна по адресу <http://localhost:5000/Account/Signup> и никак иначе.
|
|
||||||
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. Продемонстрировать работу приложения на лабораторном занятии и ответить на вопросы преподавателя.
|
|
||||||
|
Loading…
Reference in New Issue
Block a user