Инвентаризация стека

Heavy Equipment Manager

Backend (бортовое ПО)

Язык и фреймворки

Технология Версия
C# 12
.NET 8
ASP.NET Core
EF Core 8

База данных

Технология
SQLite

Библиотеки

Логирование

Библиотека Описание
Serilog структурированное логирование
NLog библиотека логирования

Работа с базой данных

Библиотека Описание
EFCore.BulkExtensions массовые операции с базой данных

Сериализация данных

Библиотека Описание
Newtonsoft.Json сериализация и десериализация JSON

Утилиты и инфраструктура

Библиотека Описание
DI dependency injection (внедрение зависимостей)
DebounceThrottle дебаунс и троттлинг для управления частотой вызовов
Quartz планирование выполнения фоновых задач

Работа с файлами

Библиотека Описание
IxMilia работа с CAD файлами (DXF, DWG)

Геопространственные данные

Библиотека Описание
GMap.NET.Core работа с картами и геоданными

Тестирование

Библиотека
Moq
xUnit

Библиотеки, разработанные компанией

Оборудование и протоколы

Библиотека Описание
CanIXLib rep Библиотека высокоуровневого взаимодействия с энкодерами IXARC
McuCanClient rep
SocketCANProxy rep
HppCore используется для непосредственного парсинга данных с антенны по протоколу NMEA. Неизвестно где репозиторий и исходники.

Устройства и системы

Библиотека
DAS5
Das2000 rep
MSenseIsLib rep

Вычисления и статистика

Библиотека
HemStatisticCalculation rep
SectorsCalculationLib rep

Парсинг и конвертация данных

Библиотека
PlanParse rep
Tridb.Parser rep
RstConverter rep

Базовые библиотеки

Библиотека
MMLib.Core rep

Сервисы

Библиотека
RtkBaseStationService rep

Протоколы

Сетевые

Протокол
HTTP
WebSocket
SignalR

Аппаратные и специализированные

Протокол Описание
CAN 2.0
J1939
SocketCAN
NMEA протокол для работы с антенной

Устройства и системы

Устройство
Ritm
Msense docs
RionHda docs case
SST810 docs case
DAS docs

CS

Язык и фреймворки

Технология Версия
C# 9
.NET 6

База данных

Технология
MS SQL

Библиотеки

Логирование

Библиотека Описание
NLog библиотека логирования
log4net библиотека логирования

Протоколы и коммуникации

Библиотека Описание
EGTS протокол ГЛОНАСС для передачи телематических данных
M2Mqtt MQTT клиент для обмена сообщениями
SSH.NET SSH клиент для удаленного доступа
FluentFTP FTP клиент для работы с файловыми серверами

Сериализация данных

Библиотека Описание
Google.Protobuf Protocol Buffers для сериализации структурированных данных
Newtonsoft.Json сериализация и десериализация JSON

Работа с файлами

Библиотека Описание
SharpZipLib работа с ZIP архивами
netDxf работа с файлами DXF (AutoCAD)
HttpMultipartParser парсинг multipart/form-data запросов

Геопространственные данные

Библиотека Описание
Proj.NET библиотека для работы с картографическими проекциями
DotSpatial.Projections работа с пространственными проекциями
GMap.NET.Core работа с картами и геоданными
NetTopologySuite библиотека для работы с геометрией и пространственными данными

Устойчивость и мониторинг

Библиотека Описание
Polly библиотека для реализации политик устойчивости (retry, circuit breaker)
prometheus-net экспорт метрик для Prometheus

Валидация

Библиотека Описание
FluentValidation валидация данных с fluent API

Утилиты

Библиотека Описание
Ulid генерация уникальных идентификаторов (ULID)
Timestamps
Hardware.Info получение информации об аппаратном обеспечении

UI фреймворк

Библиотека Описание
Stylet MVVM фреймворк для WPF приложений

Внешние API

Библиотека Описание
redmine-api клиент для работы с API Redmine

Прочее

Библиотека
NetLibrary
Watson
NReco

Библиотеки, разработанные компанией

Вычисления и статистика

Библиотека
HemStatisticCalculation rep
SectorsCalculationLib rep

Парсинг и конвертация данных

Библиотека
PlanParse rep
Tridb.Parser rep
RstConverter rep

Протоколы

Протокол
HTTP
WebSocket
TCP (RITM)

Тестирование

Библиотека
xUnit

Front (бортовое ПО, Electron)

Фреймворк и основные инструменты

Технология Версия
Angular 18.2.13
Angular CLI 18.2.12
TypeScript 5.4.5
Node.js 20.11.1

Менеджеры состояния

Библиотека Версия Описание
RxJS ~7.5.2 реактивное программирование с Observable
@ngrx/store 18.0.1 управление состоянием приложения
@ngrx/effects 18.0.1 обработка побочных эффектов
@ngrx/operators 18.0.0 операторы для работы со store
@ngrx/store-devtools 18.0.1 инструменты разработчика для отладки
@reduxjs/toolkit 1.9.7 управление состоянием на основе Redux

UI-библиотеки и компоненты

Библиотека Версия Описание
Angular Material 18.0.5 библиотека Material Design компонентов
Angular CDK 18.0.5 набор инструментов для создания UI компонентов
ngx-color 9.0.0 компонент выбора цвета
ngx-toastr 19.0.0 уведомления и toast сообщения
OpenLayers (ol) 10.2.1 библиотека для работы с картами

Анимация и взаимодействие

Библиотека Версия Описание
@angular/animations 18.2.13 анимации для Angular приложений
Color 4.2.3 работа с цветами и их преобразованиями

Формы

Библиотека Версия Описание
@angular/forms 18.2.13 Reactive Forms

API и коммуникации

Библиотека Версия Описание
@microsoft/signalr 6.0.1 клиент SignalR для real-time коммуникации
@ngx-translate/core 14.0.0 интернационализация и локализация
@ngx-translate/http-loader 7.0.0 загрузка переводов через HTTP

Electron

Библиотека Версия Описание
Electron 29.2.0 фреймворк для создания десктопных приложений
electron-builder 24.9.1 сборка и упаковка Electron приложений
electron-log 5.1.1 логирование для Electron приложений
auto-launch 5.0.6 автозапуск приложения при старте системы

Тестирование

Библиотека Версия Описание
Karma ~6.3.13 test runner для JavaScript
Jasmine ~4.0.0 фреймворк для unit тестирования
karma-jasmine ~4.0.1 адаптер Jasmine для Karma
karma-coverage 2.2.1 генерация отчетов о покрытии кода тестами
karma-chrome-launcher ~3.1.0 запуск тестов в Chrome
karma-jasmine-html-reporter 1.7 HTML отчеты для Jasmine тестов
karma-mocha-reporter 2.2.5 репортер для Karma с поддержкой Mocha стиля

Вспомогательные библиотеки

Утилиты

Библиотека Версия Описание
Lodash 4.17.21 утилиты для работы с массивами, объектами и функциями
semver 7.6.0 работа с семантическими версиями

Математика и вычисления

Библиотека Версия Описание
ml-matrix 6.11.0 работа с матрицами и линейной алгеброй

Геопространственные данные

Библиотека Версия Описание
proj4 2.7.5 преобразование координат между различными системами координат

Валидация

Библиотека Версия Описание
zod 3.22.4 валидация схем TypeScript

Специализированные библиотеки

Библиотека Версия Описание
@libs/rst-transform трансформация RST данных
@libs/ngx-vk 2.1.2 компоненты для работы с VK API

Инструменты разработки

Инструмент Версия Описание
ESLint 8.57.0 линтер для JavaScript и TypeScript
Prettier 3.2 форматирование кода
Husky 7.0.4 Git hooks для автоматизации задач
Lint-staged 12.3.2 запуск линтера только для измененных файлов
Concurrently 7.4.0 параллельное выполнение команд
Custom Webpack кастомизация конфигурации Webpack
@angular-builders/custom-webpack:browser 18.0.0 кастомный builder для Angular с Webpack

WEB (клиентская часть)

Angular и инструменты

Технология Версия Описание
Angular 15.2.9
Angular CLI 15.2.8
Angular CDK 15.2.9
Angular Elements 15.2.9
Angular Router
Angular Forms ReactiveFormsModule и FormsModule
Angular Language Service 15.2.9
Angular Compiler CLI 15.2.9
TypeScript 4.8.4

Менеджеры состояния

Библиотека Версия Описание
RxJS 7.5.7 библиотека для реактивного программирования
RxJS-compat 6.5.4 обеспечение обратной совместимости с RxJS v6
Akita (@datorama/akita) 7.1.1 менеджер состояний
@datorama/akita-ngdevtools 6.0.1 инструменты разработчика для Akita

UI и компоненты

Базовые UI библиотеки

Библиотека Версия Описание
Angular Material 15.2.9 библиотека Material Design UI-компонентов для Angular
@ngx-translate/core 14.0.0 интернационализация
@ngx-translate/http-loader 7.0.0 интернационализация

Формы и ввод данных

Библиотека Версия Описание
@ng-select/ng-select 10.0.4 компонент выпадающего списка с расширенной функциональностью
ngx-mask 15.1.5 директива для маскирования ввода (ограничение формата вводимых данных)

Таблицы и списки

Библиотека Версия Описание
@swimlane/ngx-datatable 20.1.0 таблицы
ngx-pagination 6.0.3 компонент для постраничной навигации

Визуализация данных

Библиотека Версия Описание
ngx-echarts 8.0.0 Angular-обертка для библиотеки диаграмм ECharts

Календари и события

Библиотека Версия Описание
@fullcalendar/angular 6.1.7 календарь
@fullcalendar/interaction 6.1.7 для интерактивности календаря

Медиа

Библиотека Версия Описание
ng-gallery 5.0.0 компонент галереи изображений

Интерактивность

Библиотека Версия Описание
angular-gridster2 15.0.4 создание сеток и панелей с перетаскиванием
angular-resizable-element 7.0.2 утилиты для изменения размера элементов
@perfectmemory/ngx-contextmenu 15.1.1 контекстное меню для Angular

Средства анимации и взаимодействия

Библиотека Версия Описание
@angular/animations библиотека для создания анимаций в Angular

Инструменты работы с формами

Библиотека Версия Описание
Angular Forms модули для работы с реактивными и шаблонными формами (ReactiveFormsModule, FormsModule)

API-клиенты и работа с HTTP

Библиотека Версия Описание
Angular HttpClient модуль для выполнения HTTP-запросов из @angular/common/http
sockjs-client 1.5.0 для работы с WebSocket

Инструменты тестирования

Библиотека Версия Описание
Jasmine 5.1.0 фреймворк для модульного тестирования
jasmine-core 5.1.1 фреймворк для модульного тестирования
Karma 6.4.2 тест-раннер
karma-chrome-launcher 3.2.0 запуск тестов в Chrome
karma-coverage-istanbul-reporter 3.0.3 отчеты о покрытии кода тестами
karma-jasmine 5.1.0 интеграция Jasmine с Karma
karma-jasmine-html-reporter 2.1.0 HTML-отчеты о результатах тестов
Protractor 7.0.0 для e2e-тестов

Карты и визуализация

Карты

Библиотека Версия Описание
ol 7.5.1 библиотека для работы с веб-картами
ol-ext 4.0.23 расширения для OpenLayers
turf анализ и обработка геоданных

Графики и диаграммы

Библиотека Версия Описание
echarts 5.5.0 библиотека для создания интерактивных диаграмм

3D визуализация

Библиотека Версия Описание
three.js 0.167.1 библиотека для работы с 3D-графикой в браузере
three-addons 1.2.0 дополнительные инструменты для three.js

Работа с файлами и данными

Работа с файлами

Библиотека Версия Описание
file-saver 2.5.0 сохранение файлов на клиентской стороне
jszip 3.10.1 создание и чтение ZIP-архивов

Excel

Библиотека Версия Описание
exceljs 4.2.1 работа с Excel-файлами
xlsx 0.18.5 чтение и запись Excel-файлов

PDF

Библиотека Версия Описание
pdfmake 0.2.4 генерация PDF-документов
html2pdf.js 0.10.1 преобразование HTML в PDF

Изображения

Библиотека Версия Описание
html2canvas 1.4.1 преобразование HTML в canvas
html-to-image 1.10.8 преобразование HTML в изображения

Утилиты для данных

Библиотека Версия Описание
moment 2.29.1 утилиты для работы с датами и временем
lodash 4.17.21 утилиты для работы с данными

Прочее

Утилиты

Библиотека Версия Описание
tslib 2.0.0 вспомогательные функции для TypeScript
ts-md5 1.2.7 реализация MD5-хеширования для TypeScript

Парсинг данных

Библиотека Версия Описание
fast-xml-parser 3.19.0 XML-парсер

Геопространственные данные

Библиотека Версия Описание
proj4 2.7.5 библиотека для преобразования координат

Работа с файлами

Библиотека Версия Описание
dxf-parser 1.9.0 чтение и запись DXF-файлов
dxf-writer 1.9.0 чтение и запись DXF-файлов

Инструменты разработки

Инструмент Версия Описание
tslint 6.1.0 проверка качества кода TypeScript
patch-package 8.0.0 применение патчей к пакетам npm

PMA & SMA

PitManagerAndroid

Язык, сборка и плагины

Технология Версия Описание
AGP 8.5.2 сборка Android-модулей (app/library)
Kotlin 1.9.24 основной язык проекта
KSP 1.9.24-1.0.20 генерация кода (Room, Hilt и др.) вместо kapt
Kotlin Serialization Plugin 1.9.24 кодоген для kotlinx.serialization
Hilt Gradle Plugin 2.50 интеграция DI в сборку
Safe Args 2.7.7 типобезопасная генерация аргументов навигации (gradle plugin + artifacts)

Базовые Android-зависимости

Библиотека Версия Описание
androidx.core:core-ktx 1.12.0 Kotlin-утилиты для Android API
androidx.appcompat 1.6.1 совместимость и темы
androidx.annotation 1.9.1 аннотации (nullability и пр.)
Material Components 1.12.0 UI-компоненты по Material Design
ConstraintLayout 2.1.4 верстка сложных экранов
RecyclerView 1.3.0 списки и адаптеры

Архитектура, жизненный цикл, сервисы

Библиотека Версия Описание
Lifecycle ViewModel KTX 2.7.0 ViewModel, корутины
androidx.lifecycle:lifecycle-service 2.8.3 LifecycleService для сервисов с управляемым жизненным циклом

Навигация

Библиотека Версия Описание
Navigation Fragment/UI KTX 2.7.7 графы, NavController, deep links
Hilt Navigation Fragment 1.2.0 внедрение зависимостей в фрагменты с навигацией

DI

Библиотека Версия Описание
Hilt Android 2.50 внедрение зависимостей
Hilt Android Compiler 2.50 кодоген для Hilt
androidx.hilt:hilt-compiler 1.2.0 доп. кодоген (WorkManager/Nav и пр.)

Данные и хранение

Библиотека Версия Описание
Room (room-runtime, room-ktx, room-compiler) 2.6.1 БД, DAO, транзакции, Flow
DataStore Preferences 1.0.0 безопасное key-value-хранилище настроек/состояний

Сеть, сериализация, локальный сервер

Библиотека Версия Описание
OkHttp 4.12.0 HTTP-клиент, интерсепторы, TLS
Gson 2.9.0 JSON-сериализация/парсинг (где нужно)
kotlinx-serialization-json 1.6.3 современная сериализация под Ktor/модели
Ktor Server (ktor-server-core, ktor-server-cio) 2.3.7 встраиваемый локальный HTTP-сервер
ktor-server-content-negotiation + ktor-serialization-kotlinx-json 2.3.7 JSON-ответы
ktor-server-cors 2.3.7 CORS-политики
ktor-server-call-logging 2.3.7 логирование запросов

Карты, гео и локация

Библиотека Версия Описание
osmdroid-android 6.1.18 карта, тайлы, оверлеи
osmbonuspack 6.9.0 маршруты, маркеры, доп. утилиты поверх osmdroid
proj4j 1.1.3 проекции и преобразование координат

UI-утилиты

Библиотека Версия Описание
Intuit sdp/ssp 1.0.6 масштабируемые dp/sp для адаптивной верстки

Утилиты/инфраструктура

Библиотека Версия Описание
commons-io 2.10.0 файловые утилиты, потоки
ckchangelog 1.2.2 экран/диалог change log
ANR-WatchDog 1.4.0 детектор ANR

Тестирование

Библиотека Версия Описание
JUnit 4.13.2 базовые юнит-тесты
AndroidX Test Ext JUnit 1.1.5 интеграция JUnit для Android
AndroidX Test Runner 1.5.2 раннер инструментальных тестов
kotlinx-coroutines-test 1.8.1 тесты корутин/TestDispatcher

StaffManagerAndroid

Язык, сборка и плагины

Технология Версия Описание
AGP 8.3.0 сборка Android-модулей (application/library)
Kotlin 1.9.0 основной язык проекта
KSP 1.9.0-1.0.13 генерация кода (Room, Hilt и др.) вместо kapt
Hilt Gradle Plugin 2.50 DI-интеграция на этапе сборки
Safe Args 2.7.7 типобезопасная генерация аргументов навигации (gradle plugin + artifacts)

Базовые Android-зависимости

Библиотека Версия Описание
androidx.core:core-ktx 1.12.0 Kotlin-утилиты для Android API
androidx.appcompat 1.6.1 обратная совместимость и темы
ConstraintLayout 2.1.4 разметка сложных экранов
Material Components (Views) 1.11.0 UI-компоненты по Material Design 2
Multidex 2.0.1 поддержка проектов с большим числом методов (выход за пределы одного DEX)

Архитектура, жизненный цикл

Библиотека Версия Описание
Lifecycle ViewModel KTX 2.7.0 ViewModel, корутины
Lifecycle Service 2.7.0 LifecycleService для сервисов с управляемым жизненным циклом

Навигация

Библиотека Версия Описание
Navigation Fragment/UI KTX 2.7.7 NavController, графы, deep links

DI

Библиотека Версия Описание
Hilt Android 2.50 внедрение зависимостей
Hilt Android Compiler 2.50 кодоген для Hilt

Данные и хранение

Библиотека Версия Описание
Room (room-runtime, room-ktx, room-compiler) 2.6.1 БД, DAO, транзакции, Flow
DataStore Preferences 1.0.0 безопасное key-value-хранилище настроек/состояний

Сеть и сериализация

Библиотека Версия Описание
Retrofit 2.9.0 декларативные API-интерфейсы
converter-gson 2.9.0 JSON-конвертер для Retrofit
OkHttp 4.12.0 HTTP-клиент
OkHttp Logging Interceptor 4.12.0 детальное логирование запросов/ответов
Gson 2.9.0 парсинг/сериализация JSON, совместим с Retrofit-конвертером

UI: Compose + классические Views

Библиотека Версия Описание
Material3 (Compose) 1.2.1 современный UI-стек на Compose
Glide 4.16.0 загрузка и кэширование изображений
Compose ui-tooling-preview 1.6.4 предпросмотры в IDE
Compose ui-tooling 1.6.4 инструменты разработчика

Карты, гео и локация

Библиотека Версия Описание
osmdroid-android 6.1.18 карта, тайлы, оверлеи

UI-утилиты

Библиотека Версия Описание
Intuit sdp-android 1.0.6 масштабируемые dp для адаптивной верстки

Утилиты/инфраструктура

Библиотека Версия Описание
commons-io 2.10.0 файловые утилиты, потоки

Тестирование

Библиотека Версия Описание
JUnit 4.13.2 базовые юнит-тесты
AndroidX Test Ext JUnit 1.1.5 интеграция JUnit для Android
AndroidX Test Runner 1.5.2 раннер инструментальных тестов
kotlinx-coroutines-test 1.8.1 тесты корутин/TestDispatcher

Общая информация

Параметр Значение
Язык Kotlin
UI View и XML
Работа с сетью синхронизация с сервером происходит по TCP через Socket-подключение, для HTTP-запросов используется OkHttpClient и Retrofit
Dependency injection Hilt
Локальная база данных Room
Хранение настроек приложения DataStore
Паттерн разработки MVVM
Движок карты OpenStreetMap

DM & DB

CS

Язык и фреймворки

Технология Версия
C# 9
.NET 8
.NET Framework 4.8
ADO.NET

База данных

Технология
MS SQL
PostgreSQL

Библиотеки

Протоколы и коммуникации

Библиотека Описание
EGTS протокол ГЛОНАСС для передачи телематических данных
SSH.NET SSH клиент для удаленного доступа
FluentFTP FTP клиент для работы с файловыми серверами
RITM

Логирование

Библиотека Описание
NLog библиотека логирования

Геопространственные данные

Библиотека Описание
GMap.NET.Core работа с картами и геоданными

Устройства и системы

Библиотека
DASLib

Языки баз данных

Язык Описание
T-SQL язык запросов для MS SQL Server
pgSQL язык запросов для PostgreSQL

Бортовое ПО

Язык и фреймворки

Технология Версия
C# 9
.NET 8
.NET Framework 4.8
ADO.NET

База данных

Технология
Compact

Библиотеки

Протоколы и коммуникации

Библиотека Описание
EGTS протокол ГЛОНАСС для передачи телематических данных
SSH.NET SSH клиент для удаленного доступа
FluentFTP FTP клиент для работы с файловыми серверами
RITM

Логирование

Библиотека Описание
NLog библиотека логирования

Геопространственные данные

Библиотека Описание
GMap.NET.Core работа с картами и геоданными

Устройства и системы

Библиотека
DASLib

WMM

Backend (Node.js веб-сервер)

Язык и фреймворки

Технология Версия
Node.js 18
JavaScript
TypeScript

Фреймворки и библиотеки

Веб-сервер

Библиотека Описание
Express веб-фреймворк для Node.js

База данных

Библиотека Описание
TypeORM ORM для работы с базами данных

Сеть и коммуникации

Библиотека Описание
sockjs библиотека для WebSocket-подключений
http-proxy-middleware проксирование HTTP-запросов

Инструменты разработки

Инструмент Описание
prettier форматирование кода

База данных

Технология
MS SQL
PostgreSQL

Frontend (Angular)

Язык и фреймворки

Технология Версия
Angular 15+
TypeScript
JavaScript

UI-библиотеки и компоненты

Библиотека Описание
Angular Material библиотека Material Design UI-компонентов для Angular
angular-gridster2 создание сеток и панелей с перетаскиванием
ngx-datatable таблицы
@perfectmemory/ngx-contextmenu контекстное меню для Angular
@ng-select/ng-select компонент выпадающего списка

Менеджеры состояния

Библиотека Описание
RxJS библиотека для реактивного программирования
Akita менеджер состояний

Коммуникации

Библиотека Описание
sockjs-client клиент для WebSocket-подключений

Интернационализация

Библиотека Описание
@ngx-translate/core интернационализация и локализация

Карты и визуализация

Библиотека Описание
ol (OpenLayers) библиотека для работы с веб-картами
echarts библиотека для создания интерактивных диаграмм

Инструменты разработки

Инструмент Описание
prettier форматирование кода

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) библиотека для работы с веб-картами

Применяемые технологии

1. Стек для легаси продуктов

1.1 Backend

Языки и платформы

Технология Версия Статус Обоснование
C# - ✅ Поддерживать Версия языка определяется используемой версией .NET
.NET Framework 4.8 ✅ Поддерживать Финальная версия платформы с поддержкой до 2028 года

Обоснование: для легаси продуктов приоритетом является стабильность и минимизация рисков изменений. .NET Framework 4.8 является финальной версией платформы и будет поддерживаться Microsoft до 2028 года.

Базы данных

Технология Статус Обоснование
MS SQL Server ⚠️ Мигрировать постепенно Используется в легаси, при плановом рефакторинге рекомендуется переход на PostgreSQL
PostgreSQL ✅ Поддерживать Универсальная production-ready СУБД с активным развитием и широкой поддержкой
SQL Compact ❗ Мигрировать Устаревшая БД, ограниченная функциональность и сильная зависимость от Windows
SQLite ✅ Поддерживать Легковесная встраиваемая БД для локального хранения данных

Обоснование: PostgreSQL рекомендуется как целевая платформа для новых и модернизируемых компонентов. SQL Compact признана устаревшей и требует поэтапной миграции без полного переписывания системы.

ORM и работа с БД

Библиотека Версия Статус Обоснование
Entity Framework - ✅ Поддерживать Используется в проектах на .NET Framework, версия определяется поддерживаемой платформой
ADO.NET - ⚠️ Мигрировать постепенно Прямая работа с БД в легаси системах без изменения архитектуры

Обоснование: для легаси-систем допускается постепенный отказ от прямого использования ADO.NET в пользу Entity Framework. ADO.NET остается допустимым для сложных SQL-сценариев, bulk-операций и модулей без планового рефакторинга. Полный отказ от ADO.NET не является целью; приоритетом является повышение поддерживаемости кода без увеличения рисков и с сохранением возможности повторного использования наработок при дальнейшей модернизации системы.

Логирование

Библиотека Статус Обоснование
Serilog ✅ Поддерживать Современная библиотека, поддерживает структурированные логи, гибкие sinks, интеграцию с облачными и аналитическими системами (ELK, Seq, Splunk)
NLog ⚠️ Мигрировать постепенно Рабочее решение для легаси, поддерживает различные targets, но уступает Serilog по структурированности и интеграции с современными системами
log4net ❗ Мигрировать Устаревшая библиотека, сложно работать с разными типами вывода, не поддерживает современные аналитические стеки (например ELK), рекомендуется мигрировать на Serilog

Обоснование: Для новых модулей и постепенной миграции рекомендуется Serilog — она обеспечивает структурированные логи, гибкие sinks, поддержку облачных и аналитических систем и упрощает централизованное логирование. Это повышает поддерживаемость и интеграцию кода, при этом не требует срочной полной переписки существующего логирования.

Сериализация

Библиотека Статус Обоснование
Newtonsoft.Json ✅ Поддерживать Замена не критична
Google.Protobuf ✅ Поддерживать Эффективная бинарная сериализация

Обоснование: Для легаси-систем Newtonsoft.Json остаётся стандартом сериализации. Замена на System.Text.Json не требуется, если нет критичных требований к производительности.

Протоколы и коммуникации

Библиотека Статус Обоснование
M2Mqtt ⚠️ Рассмотреть обновление Устаревающая библиотека MQTT, рекомендуется плановая замена на MQTTnet при модернизации системы
SSH.NET ✅ Поддерживать Стабильная библиотека для работы по SSH, безопасно использовать в легаси
FluentFTP ✅ Поддерживать Активно поддерживается, надежная реализация FTP
EGTS ✅ Поддерживать Специфичный протокол для ГЛОНАСС, поддержка критична для существующих модулей

Обоснование: M2Mqtt устаревает и имеет ограниченное развитие, поэтому для новых модулей или при рефакторинге рекомендуется использовать MQTTnet. Для существующих легаси систем текущая библиотека работает стабильно, срочной замены не требуется. Остальные протоколы остаются актуальными и безопасными для использования.


2. Стек для новых продуктов

2.1 Backend

Языки и платформы

Технология Версия Обоснование
.NET 10 (LTS) LTS-версия с долгосрочной поддержкой (до 14.10.2028), оптимальна для новых production-проектов
C# Актуальная (в составе .NET 10) Синхронизирована с платформой, новые конструкции упрощают код
ASP.NET Core 10.x Высокопроизводительный веб-фреймворк, стандарт для backend на .NET

Обоснование: .NET 10 и C# 14 обеспечивают улучшенную производительность, кроссплатформенность, новые языковые конструкции, расширенные стандартные библиотеки и интеграцию с облаком и микросервисами. Долгосрочная поддержка снижает риски техдолга.

Базы данных

Технология Обоснование
PostgreSQL Универсальное решение
SQLite Лёгкая встроенная БД для локальных решений

ORM и работа с БД

Библиотека Версия Обоснование
Entity Framework Core Актуальная версия для используемой .NET платформы Поддерживает последние возможности ORM, высокую производительность и совместимость с актуальными инструментами

Логирование

Библиотека Версия Обоснование
Serilog Актуальная версия для .NET 10 Современное структурированное логирование, лёгкая интеграция с облачными и аналитическими системами (ELK, Seq, Splunk), поддержка централизованного логирования

Обоснование: Serilog — стандарт для новых .NET проектов. Поддерживает структурированные логи, гибкие sinks и интеграцию с системами мониторинга, повышая удобство эксплуатации и поддерживаемость кода.

Сериализация

Библиотека Обоснование
System.Text.Json Встроенная в .NET, высокая производительность
MemoryPack Для высокопроизводительной бинарной сериализации, оптимально при рефакторинге корпоративного протокола RITM
Google.Protobuf Эффективная бинарная сериализация, только по согласованию

Обоснование: Для новых проектов рекомендуется использовать System.Text.Json как стандартную библиотеку сериализации: она встроена в .NET, быстрее Newtonsoft.Json, поддерживает современные конструкции Span/Memory и структурированные JSON-схемы. MemoryPack подходит для высокопроизводительных бинарных сценариев, в том числе при переходе с RITM.

Протоколы и коммуникации

Библиотека Обоснование
MQTTnet Современный MQTT клиент (вместо M2Mqtt)
SignalR Real-time коммуникация
NModbus Протокол Modbus)

Архитектурные паттерны и инструменты

CQRS / Mediator

Библиотека Обоснование
MediatR Реализация паттерна Mediator для разделения команд и запросов
❓ TODO Рассмотреть переход в сторону бесплатного и поддерживаемого решения

Валидация

Библиотека Обоснование
FluentValidation Fluent API для проверки сложных условий, повышает читаемость и поддерживаемость кода
❓ TODO Рассмотреть библиотеки для реализации Result паттерна

Маппинг / DTO

Библиотека Обоснование
AutoMapper Автоматический маппинг объектов, уменьшает ручной код при трансформации DTO и моделей
❓ Mapster Быстрая и лёгкая альтернатива AutoMapper с source generators и меньшей конфигурацией

❓ TODO: проверить Mapster, подходит ли для проектов, протестировать source generators и сложные сценарии маппинга

Устойчивость / Политики

Библиотека Обоснование
Polly Реализация retry, circuit breaker и других политик устойчивости

DI / Инъекция зависимостей

Библиотека Обоснование
Microsoft.Extensions.DependencyInjection Стандартный контейнер DI для .NET
Scrutor Расширение для автоматической регистрации сервисов по соглашению, удобно для модульных проектов

Хостинг и фоновые задачи

Библиотека / Инструмент Обоснование
Microsoft.Extensions.Hosting Управление жизненным циклом приложений, интеграция с DI и background-сервисами
IHostedService / BackgroundService Простые фоновые задачи внутри приложения, периодичность через Timer/Task.Delay
Quartz.Extensions.Hosting Планировщик с гибким расписанием и поддержкой критичных задач

Обоснование использования:

Геопространственные данные

Библиотека Обоснование
GMap.NET.Core Работа с картами и геоданными
GeoJSON.Net Работа с форматом GeoJSON
DotSpatial.Projections Работа с пространственными проекциями
NetTopologySuite Работа с геометрией и пространственными данными

Тестирование

Библиотека Обоснование
xUnit Фреймворк для unit-тестов
Moq Создание моков для зависимостей
AutoFixture.Xunit Генерация тестовых данных
MockQueryable.Moq Моки для IQueryable

Заключение