Лабораторные работы не требуют выполнение их в строгом порядке. Обратите внимание, что каждая из 6 ниже лабораторных требует выполнить определенное задание по определенную роль. Так же для Fullstack-разработчика указывается допустимое время на каждую из лабораторных. ## Варианты команд В зависимости от количества человек в команде, распределите обязанности по дальнейшей работе. |№|Стек технологий|Минимальное количество участников| |---|---|---| |1|WPF + MVVM + PRISM + Git|2-3| |1.1|WPF + MVVM + PRISM + `appsettings.json` + Git|3-3| |1.5|ASP NET CORE + EF CORE + `.txt` + Git|2-2| |2|ASP NET CORE + EF CORE + PostgreSQL (Access) + Git|3-5| |3|ASP NET CORE + MVC + REST API + EF CORE + PostgreSQL (Access) + Git|6+| |4|BLAZOR + MVC + REST API + EF CORE + PostgreSQL (Access) + Git|6+| |5|WPF + MVVM + PRISM + ASP NET CORE + EF CORE + PostgreSQL (Access) + Git|10+| ## Лабораторная работа №6: Тимлид Организация работы в команде, использование системы контроля версий Git (https://git-scm.com). Для согласования работы между членами команды вам всем требуется завести аккаунт на GitHub (https://github.com/). Те, кто работают на ноутбуке или дома, могут использовать GitHub Desktop (https://desktop.github.com/). Учтите: на рабочих машинах в аудиториях доступа к GitHub у вас не будет. Все ваши изменения в коде, необходимо будет синхронизировать дома на своем ПК, и крайне желательно как перед началом лабораторной работы, так и по ее завершении. Тимлиду (главному по организации командной работы) требуется полностью руководить своей командой, а именно: - Отвечать за постановку задач - Проверять готовые модули, оценивать их качество - Быть готовым решать вопросы слияний всех ваших изменений в удаленный репозиторий - Помогать другим - Сдать проект в срок ## Лабораторная работа №7: Главный разработчик Основная роль главного разработчика - продумать систему, которая прямо или косвенно отражает вашу проектную деятельность. Ваша задача спроектировать и разработать систему так, чтобы она полностью отвечала следующим требованиям: 1. WPF – приложение для Windows c использованием паттерна MVVM (https://habr.com/ru/articles/338518/) или MVVMS 2. Многомодульное приложение, с использованием Фреймворка Prism (https://prismlibrary.com/docs/) 3. Работы с локальной базой данных (хотя бы с файлом конфигурации приложения) 4. Трехуровневая архитектура приложения (https://it-matika.pro/blog/novye-it-terminy/trehurovnevaya-arhitektura-prilozheniya) 5. SOLID (https://it-matika.pro/blog/novye-it-terminy/trehurovnevaya-arhitektura-prilozheniya) ## Лабораторная работа №8: Администратор БД Задача администратора БД - спроектировать и разработать слой данных для вашего проекта: - Данные конфигурации приложения, для того чтобы ваша программа была настраиваемой и гибкой для удобства пользования - Реляционные данные, хранимые в отдельной локальной БД. Организация взаимодействия с этими данными (можно использовать Entity Framework - https://habr.com/ru/companies/otus/articles/500012/) - Нереляционные данные (NoSQL - https://habr.com/ru/companies/otus/articles/500012/) по желанию. Пример СУБД Redis - https://ru.wikipedia.org/wiki/Redis ## Лабораторная работа №9 - Backend-разработчик Основная задача - это организация всей бизнес-логики приложения (слой бизнес-логики): - Обработка, преобразование и обмен данными между уровнем данных и уровнем представления. Для WPF: - Модели данных - Сервисы Для Prism: - Навигация между основными модулями в программе - Разработка главного модуля (Оболочки) - Навигация и регионы - Внедрение зависимостей: - Unity Application Block (Unity) - Managed Extensibility Framework (MEF) - Агрегаторы событий ## Лабораторная работа №10 - Frontend-разработчик Основная задача - это разработка отдельных модулей представлений. Для WPF: - Словари ресурсов (локальные и глобальные) - Пользовательские элементы управления - Настраиваемые элементы управления - ViewModel и View - Конвертеры для View - Команды (ICommand) Для Prism: - Локаторы вью-моделей - Модули ## Лабораторная работа №11: Тестировщик Основная задача - это проверка как отдельных модулей на стабильность работы, так и глобальное тестирование всего приложения. ## Критерии оценки проекта После всех лабораторных работ, организуется мероприятие по представлению результатов ваших работ в виде презентации, живой демонстрации работы программы либо ее видеозаписи. Представление оценивается по следующим критериям: | Корректность | Устойчивость | Юзабилити | Функциональность | ИТОГО | | ------------ | ------------ | --------- | ---------------- | --------- | | 20 баллов | 10 баллов | 10 баллов | 20 баллов | 60 баллов | После этого вам дается время на оформления РПЗ по результатам вашей работы в команде, для каждого члена команды свое РПЗ. Содержимое РПЗ оценивается в 40 баллов.