Инвентаризация стека
Heavy Equipment Manager
Backend (бортовое ПО)
Язык и фреймворки
| Технология |
Версия |
| C# |
12 |
| .NET |
8 |
| ASP.NET Core |
|
| EF Core |
8 |
База данных
Библиотеки
Логирование
| Библиотека |
Описание |
| Serilog |
структурированное логирование |
| NLog |
библиотека логирования |
Работа с базой данных
| Библиотека |
Описание |
| EFCore.BulkExtensions |
массовые операции с базой данных |
Сериализация данных
| Библиотека |
Описание |
| Newtonsoft.Json |
сериализация и десериализация JSON |
Утилиты и инфраструктура
| Библиотека |
Описание |
| DI |
dependency injection (внедрение зависимостей) |
| DebounceThrottle |
дебаунс и троттлинг для управления частотой вызовов |
| Quartz |
планирование выполнения фоновых задач |
Работа с файлами
| Библиотека |
Описание |
| IxMilia |
работа с CAD файлами (DXF, DWG) |
Геопространственные данные
| Библиотека |
Описание |
| GMap.NET.Core |
работа с картами и геоданными |
Тестирование
Библиотеки, разработанные компанией
Оборудование и протоколы
| Библиотека |
Описание |
| 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 |
протокол для работы с антенной |
Устройства и системы
CS
Язык и фреймворки
| Технология |
Версия |
| C# |
9 |
| .NET |
6 |
База данных
Библиотеки
Логирование
| Библиотека |
Описание |
| 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) |
Тестирование
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 |
работа с картами и геоданными |
Устройства и системы
Языки баз данных
| Язык |
Описание |
| T-SQL |
язык запросов для MS SQL Server |
| pgSQL |
язык запросов для PostgreSQL |
Бортовое ПО
Язык и фреймворки
| Технология |
Версия |
| C# |
9 |
| .NET |
8 |
| .NET Framework |
4.8 |
| ADO.NET |
|
База данных
Библиотеки
Протоколы и коммуникации
| Библиотека |
Описание |
| EGTS |
протокол ГЛОНАСС для передачи телематических данных |
| SSH.NET |
SSH клиент для удаленного доступа |
| FluentFTP |
FTP клиент для работы с файловыми серверами |
| RITM |
|
Логирование
| Библиотека |
Описание |
| NLog |
библиотека логирования |
Геопространственные данные
| Библиотека |
Описание |
| GMap.NET.Core |
работа с картами и геоданными |
Устройства и системы
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 |
База данных
Библиотеки
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) |
Архитектурные паттерны и инструменты
| Библиотека |
Обоснование |
| 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 |
Планировщик с гибким расписанием и поддержкой критичных задач |
Обоснование использования:
- IHostedService / BackgroundService — для простых фоновых задач, связанных с приложением.
- Quartz — для сложного расписания, устойчивости и управления job-ами.
Геопространственные данные
| Библиотека |
Обоснование |
| GMap.NET.Core |
Работа с картами и геоданными |
| GeoJSON.Net |
Работа с форматом GeoJSON |
| DotSpatial.Projections |
Работа с пространственными проекциями |
| NetTopologySuite |
Работа с геометрией и пространственными данными |
Тестирование
| Библиотека |
Обоснование |
| xUnit |
Фреймворк для unit-тестов |
| Moq |
Создание моков для зависимостей |
| AutoFixture.Xunit |
Генерация тестовых данных |
| MockQueryable.Moq |
Моки для IQueryable |
Заключение
- Для легаси систем главное — стабильность, постепенная миграция и сохранение существующих наработок.
- Для новых проектов — использовать современные, поддерживаемые технологии.