Skip to content

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

License

Notifications You must be signed in to change notification settings

comandir26/enterprise-development

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

48 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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

Цель

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

Задание "Пункт велопроката"

Лабораторная работа 1 - "Классы"

В рамках первой лабораторной работы была добавлена доменная модель с основными сущностями пункта велопроката и реализованы юнит-тесты.

В базе данных пункта проката хранятся сведения о велосипедах, их арендаторах и выданных в аренду транспортных средствах.

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

Арендатор характеризуется ФИО, телефоном.

При выдаче велосипеда арендатору фиксируется время начала аренды и отмечается ее продолжительность в часах.

Классы

  • Bike - характеризует велосипед
  • BikeModel - информация о модели велосипеда
  • Renter - информация об арендаторе
  • Rent - информация об аренде велосипеда, класс содержит как велосипед, так и арендатора

Тесты

BikeTests - юнит-тесты

  1. InformationAboutSportBikes - Вывести информацию обо всех спортивных велосипедах.
  2. TopFiveModelsProfit, TopFiveModelsRentDurationIds - Вывести топ 5 моделей велосипедов (по прибыли от аренды и по длительности аренды отдельно).
  3. MinMaxAvgRentalDuration - Вывести информацию о минимальном, максимальном и среднем времени аренды велосипедов.
  4. TotalRentalTimeByType - Вывести суммарное время аренды велосипедов каждого типа.
  5. TopThreeRenters - Вывести информацию о клиентах, бравших велосипеды на прокат больше всего раз.

Лабораторная работа 2 - "Сервер"

В рамках второй лабораторной работы было разработано серверное приложение с REST API для управления пунктом велопроката. Приложение предоставляет полный набор операций для работы с сущностями системы и аналитическими запросами.

Bikes.Domain - доменный слой, содержащий бизнес-сущности и интерфейсы репозиториев

Bikes.Application - слой приложения, содержащий DTO, сервисы и бизнес-логику

Bikes.Infrastructure.InMemory - инфраструктурный слой с реализацией in-memory репозиториев

Bikes.Api.Host - веб-слой с REST API контроллерами

Bikes.Tests - модульные тесты для проверки функциональности

Bikes.Contracts - слой DTO

Лабораторная работа 3 - "ORM"

В рамках третьей лабораторной работы хранение данных было переделано с InMemory коллекий на базу данных. Также был настроен оркестратор Aspire на запуск сервера и базы данных

Были добавлены слои:

Bikes.Infrastructure.MongoDb - инфраструктурный слой с реализацией хранения данных в БД MongoDb

Bikes.ServiceDefaults - слой инфраструктурных стандартов, cодержащий конфигурации и расширения по умолчанию для всех сервисов приложения

Bikes.AppHost - слой оркестрации приложений

Лабораторная работа 4 - "Инфраструктура"

В четвертой лабораторной работе был имплементирован сервис, который генерирует контракты. Контракты далее передаются в сервер и сохраняются в бд

Bikes.Generator - сервис генерации данных

Интеграция Kafka в существующие проекты:

Bikes.Api.Host:

KafkaConsumer - фоновая служба для потребления сообщений

Bikes.AppHost:

Добавлен Kafka-контейнер для брокера сообщений

About

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

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C# 100.0%