Цели Платформы до конца 2022 года

Коллеги, приветствую!

Множество разных событий подарило нам первое полугодие. Никогда такого не было, и вот опять - жизнь и сама ситуация в мире вносят свои коррективы. Расскажем, чем мы планируем заниматься в ближайшие полгода:

Цифровой суверенитет

В рамках импортозамещения, мы планируем:

  • Подтвердить работоспособность BarsUp.Net на одной из отечественных ОС, функционирующей на сервере с процессорами Байкал

  • Пройти повторную сертификацию совместимости с отечественными ОС (Astra Linux, AltLinux, ROSA, РЕД ОС).

.NET 6

Обновление программной платформы до актуальной LTS-версии принесет нам исправление багов, повышение общей производительности, ускорение работы со строками и регулярными выражениями, плюс новые классные фичи нашего любимого языка C# и много чего еще полезного и интересного.

Рефакторинг мигратора

Существующая реализация предполагает, что каждая миграция модуля должна иметь атрибут [MigrationDependsOn], с помощью которого мигратор выстраивает порядок проведения миграций.
При этом никак не учитывается взаимозависимости модулей, и миграции в рамках одного модуля могут пойти не по порядку, если разработчик неверно указал зависимость, либо не указал ее вовсе.
Так же изменения коснутся формата указания версии миграции. На текущий момент атрибут [Migration] позволяет указать в качестве версии любое строковое значение - Version_1, 2018-1-02, 05.02.2020, 1 - многие это видели в своих проектах и в модулях Платформы.

Мы планируем изменить правила описания миграций следующим образом:

  1. Версия миграции должна отражать дату и время ее создания. Фактически, версия миграции - это новая версия схемы данных модуля, поэтому мы, скорее всего, вместо одного строкового значения будем указывать версию миграции в формате [Migration(Год, Месяц, День, Час, Минута, Секунда)] - это позволит исключить путаницу в версиях и будет явно отражать дату и время миграции.
  2. Сортировка миграций будет основана на
    • зависимости модулей (SetDependencies / DepedsOn<M>)
    • версии миграции в виде даты

Таким образом, не будет необходимости указывать зависимости между миграциями одного модуля, либо зависимых модулей - прямые миграции (Up) будут выполняться в порядке зависимостей модулей с сортировкой по дате.

Рефакторинг ядра

Сейчас в модулях ядра (Core, DataAccess, Web, Security) слишком много кода - тут и основные контракты аутентификации/авторизации, и контракты на слой доступа к данным, и миграции и тд.
Мы вынесем бОльшую часть абстракций в отдельные проекты, чтобы ядро Платформы на старте приложения выполняло следующие действия:

  • загрузка конфигурации приложения - из файлов, переменных окружения и переданных аргументов
  • настройка логирования - конфигурирование логгера (SeriLog) на основе переданной конфигурации
  • конфигурирование хост-приложения и запуск веб-сервера при необходимости - в некоторых проектах есть необходимость обрабатывать сообщения из очереди, но нет необходимости обрабатывать http-запросы.

Разделение модулей на UI и сервисы/контроллеры

Этим мы планировали заняться еще в прошлом году, однако приоритеты были смещены и эта активность была перенесена на год текущий.
Сейчас же активность по разделению модулей обусловлена в том числе и тем, что мы должны в будущем перейти на новый ui-фреймворк Plex.Vue.

Изменение целевого UI-фреймворка

К концу года, по готовности фрейморка Plex.Vue мы планируем осуществить переход на него как на уровне фреймворка BarsUp.Net, так и на уровне кодогенерации BarsUp.Designer - после этого этапа, каждый пользователь сможет мышкой накликать себе не только систему с реестрами и карточками, но и что-то красивое, подобное нашему новому Порталу :wink:

4 Лайков