# BMLinux

### Backend (бортовое ПО)

#### Язык и фреймворки

| Технология | Версия |
|------------|--------|
| C# | 13.0 |
| .NET | 9.0 |
| ASP.NET Core | 9.0.9 |

#### База данных

| Технология |
|------------|
| SQLite |

#### Библиотеки

**ORM и работа с базой данных**

| Библиотека | Версия | Описание |
|------------|--------|----------|
| Microsoft.EntityFrameworkCore | 9.0.9 | ORM для работы с базами данных |
| Microsoft.EntityFrameworkCore.Sqlite | 9.0.9 | провайдер SQLite для EF Core |
| Microsoft.EntityFrameworkCore.Design | 9.0.9 | инструменты дизайна для EF Core |

**Логирование**

| Библиотека | Версия | Описание |
|------------|--------|----------|
| Serilog | 4.3.0 | структурированное логирование |
| Serilog.AspNetCore | 9.0.0 | интеграция Serilog с ASP.NET Core |
| Serilog.Sinks.Console | 6.0.0 | вывод логов в консоль |

**Валидация**

| Библиотека | Версия | Описание |
|------------|--------|----------|
| FluentValidation | 12.0.0 | валидация данных с fluent API |
| FluentValidation.DependencyInjectionExtensions | 12.0.0 | расширения для DI |

**Маппинг объектов**

| Библиотека | Версия | Описание |
|------------|--------|----------|
| AutoMapper | 14.0.0 | автоматическое маппинг объектов |

**Медиатор и CQRS**

| Библиотека | Версия | Описание |
|------------|--------|----------|
| MediatR | 12.5.0 | реализация паттерна Mediator |
| MediatR.Contracts | 2.0.1 | контракты для MediatR |

**Сериализация**

| Библиотека | Версия | Описание |
|------------|--------|----------|
| MemoryPack | 1.21.4 | высокопроизводительная сериализация |

**Планирование задач**

| Библиотека | Версия | Описание |
|------------|--------|----------|
| Quartz | 3.15.0 | планирование выполнения фоновых задач |
| Quartz.Extensions.DependencyInjection | 3.15.0 | интеграция Quartz с DI |
| Quartz.Extensions.Hosting | 3.14.0 | интеграция Quartz с Hosting |

**Устойчивость и политики**

| Библиотека | Версия | Описание |
|------------|--------|----------|
| Polly | 8.6.3 | библиотека для реализации политик устойчивости (retry, circuit breaker) |
| System.Threading.RateLimiting | 9.0.9 | ограничение скорости выполнения операций |

**Геопространственные данные**

| Библиотека | Версия | Описание |
|------------|--------|----------|
| NetTopologySuite | 2.6.0 | библиотека для работы с геометрией и пространственными данными |
| DotSpatial.Projections | 4.0.656 | работа с пространственными проекциями |
| GeoJSON.Net | 1.4.1 | работа с форматом GeoJSON |
| GMap.NET.Core | 2.1.7 | работа с картами и геоданными |

**Протоколы и коммуникации**

| Библиотека | Версия | Описание |
|------------|--------|----------|
| MQTTnet | 4.3.7.1207 | MQTT клиент для обмена сообщениями |
| Microsoft.AspNetCore.SignalR.Client | 9.0.9 | клиент SignalR для real-time коммуникации |
| NModbus | 3.0.81 | протокол Modbus |
| w7rus.SerialPortWrapper | 1.2.0 | работа с последовательным портом |

**Аутентификация и авторизация**

| Библиотека | Версия | Описание |
|------------|--------|----------|
| Microsoft.AspNetCore.Authentication.JwtBearer | 9.0.9 | аутентификация через JWT токены |

**Утилиты**

| Библиотека | Версия | Описание |
|------------|--------|----------|
| Scrutor | 6.1.0 | сканирование и регистрация сервисов |
| Ardalis.SmartEnum | 8.2.0 | типобезопасные перечисления |
| SharpGIS.NmeaParser | 3.0.0 | парсинг данных NMEA |
| System.IO.Hashing | 9.0.9 | вычисление хешей |

**API документация**

| Библиотека | Версия | Описание |
|------------|--------|----------|
| Swashbuckle.AspNetCore | 9.0.4 | генерация Swagger/OpenAPI документации |

#### Тестирование

| Библиотека | Версия | Описание |
|------------|--------|----------|
| xunit | 2.9.3 | фреймворк для unit тестирования |
| xunit.runner.visualstudio | 3.1.4 | интеграция xUnit с Visual Studio |
| Moq | 4.20.72 | библиотека для создания моков |
| AutoFixture.Xunit | 4.19.0 | автоматическая генерация тестовых данных |
| MockQueryable.Moq | 8.0.0 | моки для IQueryable |
| Microsoft.NET.Test.Sdk | 17.14.1 | SDK для тестирования |
| coverlet.collector | 6.0.4 | сбор данных о покрытии кода тестами |
| EntityFramework | 6.5.1 | для тестирования |

---

### Frontend (бортовое ПО)

#### Фреймворк и основные инструменты

| Технология | Описание |
|------------|----------|
| Angular | |
| Electron | фреймворк для создания десктопных приложений |
| Nx Monorepo | инструмент для управления монорепозиторием |

#### Менеджеры состояния

| Библиотека | Описание |
|------------|----------|
| Ngxs | управление состоянием для Angular приложений |

#### UI-библиотеки и компоненты

| Библиотека | Описание |
|------------|----------|
| Angular Material | библиотека Material Design UI-компонентов для Angular |

#### Карты и визуализация

| Библиотека | Описание |
|------------|----------|
| OpenLayers (ol) | библиотека для работы с веб-картами |