From df5b49e8435dbc76076aaf97e6b36c3cd9cac019 Mon Sep 17 00:00:00 2001 From: Vladislav Moiseev Date: Wed, 17 Apr 2024 09:16:14 +0400 Subject: [PATCH] =?UTF-8?q?=D0=9F=D1=80=D0=B8=D0=BC=D0=B5=D0=BD=D0=B8?= =?UTF-8?q?=D1=82=D1=8C=20=D0=BF=D0=B0=D1=82=D1=87?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 3 ++- lwB1/README.md | 53 +++++++------------------------------------------- 2 files changed, 9 insertions(+), 47 deletions(-) diff --git a/README.md b/README.md index dda644f..65cf0e8 100644 --- a/README.md +++ b/README.md @@ -21,12 +21,13 @@ - [Лабораторная работа №3 - Динамика сайта (JavaScript)](./lw03/README.md) - [Лабораторная работа №4 - Разворачивание локального веб-сервера (PHP)](./lw04/README.md) - [Лабораторная работа №5 - Создание веб-приложения при помощи ASP.NET Core](./lw05/README.md) +- [Лабораторная работа №6 - Изучение шаблона проектирования MVC](./lw06/README.md) Лабораторные работы на выбор: - [Лабораторная работа №F1 - Одностраничное приложение (React)](./lwF1/README.md) - [Лабораторная работа №F2 - Получение данных через API (Fetch)](./lwF2/README.md) -- [Лабораторная работа №B1 - Изучение шаблона проектирования MVC](./lwB1/README.md) +- [Лабораторная работа №B1 - Создание онлайн-чата при помощи WebSocket](./lwB1/README.md) - [Лабораторная работа №B2 - Разработка чат-бота для Telegram](./lwB2/README.md) ## Правила допуска до экзамена diff --git a/lwB1/README.md b/lwB1/README.md index 76363ba..95480cf 100644 --- a/lwB1/README.md +++ b/lwB1/README.md @@ -1,52 +1,13 @@ -# Лабораторная работа №B1 - Изучение шаблона проектирования MVC +# Лабораторная работа №B1 - Создание онлайн-чата при помощи WebSocket ## Цель работы -Понимание шаблона проектирования MVC и его применения при проектировании интернет-приложений. +Изучить протокол WebSocket и его реализацию (например, socket.io или SignalR). ## Ход выполнения работы -Необходимо вспомнить, что говорилось на лекции про данный шаблон проектирования. - -Также крайне рекомендуется осознать материал отсюда: - -- ; -- . - -Что следует понять из представленных выше и, возможно, каких других статей: - -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. Продемонстрировать работу приложения на лабораторном занятии и ответить на вопросы преподавателя. +1. Определиться с технологией. + Например, можно использовать ASP.NET с SignalR или nodejs с socket.io. +2. Реализовать онлайн-чат из примера для демонстрации работы технологии. +3. Доработать онлайн-чат: добавить новое текстовое поле "Имя" (_nickname_), которое также надо задать до отправки сообщения на сервер. +4. Продемонстрировать работу изменённого чата с использованием нескольких клиентов (например, несколько браузеров).