Доступен релиз платформы разработки информационных систем lsFusion 4.0. В основе платформы заложена одна из достаточно редких парадигм программирования – function-level (не путать с functional) программирование и, в частности поэтому, существенно отличается от всех существующих на рынке платформ (например SAP, Dynamics AX, 1С, .Net). Также внутри очень активно используются событийное, реактивное и объектно-ориентированное программирование, и все это, по уверению разработчиков, позволяет на порядок повысить скорость и качество разработки, а также быстродействие создаваемых систем. Код проекта написан на языке Java и распространяется под лицензией LGPLv3. Типовое решение для малого и среднего бизнеса на этой платформе (MyCompany) распространяется под лицензией Apache 2.0.
Основные изменения в четвёртой версии lsFusion 4.0:
- Добавлены новые представления списков, позволяющие отображать данные пользователю не только в виде обычных таблиц, но и в любом другом виде. Разработчик (как впрочем и пользователь) может выбирать представления как из набора предопределённых представлений так и добавлять свои.
- Добавлена поддержка группировочных представлений (одно из вариантов предопределённых представлений списков). В этих представлениях пользователь может самостоятельно группировать данные в любых разрезах и тем самым осуществлять базовую аналитику. Данные при этом могут отображаться в виде сводных таблиц (с возможностью упорядочивания, клиентской фильтрации, выгрузки в Excel и т.п.), а также в виде различных диаграмм и графиков.
- Добавлена поддержка карты и календаря (опять-таки варианты предопределённых представлений списков), а также так называемых кастомизируемых представлений, в которых разработчик может задать для отображения любую свою javascript-функцию (что позволяет использовать для отображения данных любые из существующих open-source javascript-компонентов).
- Практически полностью переработан дизайн пользовательского интерфейса, а также добавлена поддержка тёмной темы.
- Реализована поддержка различных дополнительных видов аутентификации “из коробки”: OAuth-аутентификация (Яндекс, Facebook, Google), аутентификация прямо в URL и / или заголовках запроса, саморегистрация (через web-интерфейс).
- Добавлена поддержка обратной интернационализации, когда строковые литералы задаются на одном конкретные языке, а при запуске они автоматически перекодируются в соответствующие идентификаторы (которые в свою очередь затем локализуются в зависимости от локали пользователя).
- Расширен базовый функционал пользовательского интерфейса: добавлено гораздо больше вариантов “перехода по ссылке”, появилось возможность переключаться в полноэкранный режим.
- Выполнено ряд оптимизаций, существенно улучшающих производительность системы в некоторых случаях: так, например, групповые изменения теперь выполняются “одним запросом”, значительно оптимизирована работа с DOM, появилась возможность отключать автоматическое обновление списков.
- Существенно расширены возможности языка, например, теперь разрешено: использовать выражения в заголовках контейнеров и форм, расширять форму прямо в месте вызова (с возможностью замыкания – обращения к параметрам в контексте вызова) и так далее.
Также [[https://habr.com/ru/company/lsfusion/blog/536898/ анонсирован] план на следующие (четвертую и пятую) версии:
- Увеличение асинхронности (а значит и эргономичности) пользовательского интерфейса: асинхронный ввод объектных данных на форме, асинхронные открытие и закрытие форм, асинхронное адаптивное обновление объектов и свойств.
- Поддержка агрегации и наследования форм.
- Совершенствование механизма расширений, в частности, добавление возможности изменять атрибуты элементов формы.
- Значительное расширение возможностей пользовательской настройки форм: например, возможность добавлять новые свойства на форму (и изменять старые), создавать предопределённые пользовательские фильтры, сохранять несколько вариантов настройки формы и так далее.
- Поддержка альтернативных представлений свойств (по аналогии с альтернативными представлениями списков объектов в четвёртой версии).
- Изменение механизма расположения контейнеров: в частности, добавление табличного расположения с выравниванием и по вертикали и по горизонтали одновременно, а также с расположением заголовков компонент в отдельных рядах / колонках.