Skip to content

Разработка корпоративных приложений. Яковлева Яна Анатольевна 6413

License

Notifications You must be signed in to change notification settings

dou1eur/enterprise-development-yakovleva

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Разработка корпоративных приложений

Таблица с успеваемостью

Задание

Цель

Реализация проекта сервисно-ориентированного приложения.

Задачи

  • Реализация объектно-ориентированной модели данных,
  • Изучение реализации серверных приложений на базе WebAPI/OpenAPI,
  • Изучение работы с брокерами сообщений,
  • Изучение паттернов проектирования,
  • Изучение работы со средствами оркестрации на примере .NET Aspire,
  • Повторение основ работы с системами контроля версий,
  • Unit-тестирование.

Лабораторные работы

1. «Классы» - Реализация объектной модели данных и unit-тестов
В рамках первой лабораторной работы необходимо подготовить структуру классов, описывающих предметную область, определяемую в задании. В каждом из заданий присутствует часть, связанная с обработкой данных, представленная в разделе «Unit-тесты». Данную часть необходимо реализовать в виде unit-тестов: подготовить тестовые данные, выполнить запрос с использованием LINQ, проверить результаты.

Хранение данных на этом этапе допускается осуществлять в памяти в виде коллекций.
Необходимо включить как минимум 10 экземпляров каждого класса в датасид.

2. «Сервер» - Реализация серверного приложения с использованием REST API
Во второй лабораторной работе необходимо реализовать серверное приложение, которое должно: - Осуществлять базовые CRUD-операции с реализованными в первой лабораторной сущностями - Предоставлять результаты аналитических запросов (раздел «Unit-тесты» задания)

Хранение данных на этом этапе допускается осуществлять в памяти в виде коллекций.

3. «ORM» - Реализация объектно-реляционной модели. Подключение к базе данных и настройка оркестрации
В третьей лабораторной работе хранение должно быть переделано c инмемори коллекций на базу данных. Должны быть созданы миграции для создания таблиц в бд и их первоначального заполнения.
Также необходимо настроить оркестратор Aspire на запуск сервера и базы данных.
4. «Инфраструктура» - Реализация сервиса генерации данных и его интеграция с сервером
В четвертой лабораторной работе необходимо имплементировать сервис, который генерировал бы контракты. Контракты далее передаются в сервер и сохраняются в бд. Сервис должен представлять из себя отдельное приложение без референсов к серверным проектам за исключением библиотеки с контрактами. Отправка контрактов при помощи gRPC должна выполняться в потоковом виде. При использовании брокеров сообщений, необходимо предусмотреть ретраи при подключении к брокеру.

Также необходимо добавить в конфигурацию Aspire запуск генератора и (если того требует вариант) брокера сообщений.

5. «Клиент» - Интеграция клиентского приложения с оркестратором
В пятой лабораторной необходимо добавить в конфигурацию Aspire запуск клиентского приложения для написанного ранее сервера. Клиент создается в рамках курса "Веб разработка".

Задание. Общая часть

Обязательно:

  • Реализация серверной части на .NET 8.
  • Реализация серверной части на ASP.NET.
  • Реализация unit-тестов с использованием xUnit.
  • Использование хранения данных в базе данных согласно варианту задания.
  • Оркестрация проектов при помощи .NET Aspire
  • Реализация сервиса генерации данных при помощи Bogus и его взаимодейсвие с сервером согласно варианту задания.
  • Автоматизация тестирования на уровне репозитория через GitHub Actions.
  • Создание минимальной документации к проекту: страница на GitHub с информацией о задании, скриншоты приложения и прочая информация.

Факультативно:

  • Реализация авторизации/аутентификации.
  • Реализация atomic batch publishing/atomic batch consumption для брокеров, поддерживающих такой функционал.
  • Реализация интеграционных тестов при помощи .NET Aspire.
  • Реализация клиента на Blazor WASM.

Внимательно прочитайте дискуссии о том, как работает автоматическое распределение на ревью. Сразу корректно называйте свои pr, чтобы они попали на ревью нужному преподавателю.

По итогу работы в семестре должна получиться следующая информационная система:

C4 диаграмма image1

Варианты заданий

Номер варианта задания присваивается в начале семестра. Изменить его нельзя. Каждый вариант имеет уникальную комбинацию из предметной области, базы данных и технологии для общения сервиса генерации данных и сервера апи.

Список вариантов
Список предметных областей

Схема сдачи

На каждую из лабораторных работ необходимо сделать отдельный Pull Request (PR).

Общая схема:

  1. Сделать форк данного репозитория
  2. Выполнить задание
  3. Сделать PR в данный репозиторий
  4. Исправить замечания после code review
  5. Получить approve
  6. Прийти на занятие и защитить работу

Критерии оценивания

Конкурентный принцип. Так как задания в первой лабораторной будут повторяться между студентами, то выделяются следующие показатели для оценки:

  1. Скорость разработки
  2. Качество разработки
  3. Полнота выполнения задания

Быстрее делаете PR - у вас преимущество. Быстрее получаете Approve - у вас преимущество. Выполните нечто немного выходящее за рамки проекта - у вас преимущество.

Шкала оценивания

  • 3 балла за качество кода, из них:
    • 2 балла - базовая оценка
    • 1 балл (но не более) можно получить за выполнение любого из следующих пунктов:
      • Реализация факультативного функционала
      • Выполнение работы раньше других: первые 5 человек из каждой группы, которые сделали PR и получили approve, получают дополнительный балл
  • 3 балла за защиту: при сдаче лабораторной работы вам задается 3 вопроса, за каждый правильный ответ - 1 балл

У вас 2 попытки пройти ревью (первичное ревью, ревью по результатам исправления). Если замечания по итогу не исправлены, то снимается один балл за код лабораторной работы.

Вопросы и обратная связь по курсу

Чтобы задать вопрос по лабораторной, воспользуйтесь соотвествующим разделом дискуссий или заведите ишью.
Если у вас появились идеи/пожелания/прочие полезные мысли по преподаваемой дисциплине, их можно оставить здесь.

About

Разработка корпоративных приложений. Яковлева Яна Анатольевна 6413

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published