Введение
N2O Framework - библиотека с открытым исходным кодом, написанная на Java и React. Позволяет создавать веб приложения со сложными пользовательскими интерфейсами без глубоких знаний веб технологий и фронтенд фреймворков.
N2O имеет встроенную библиотеку React компонентов с готовой вёрсткой, поведением и легким связыванием с данными. Разработка интерфейсов происходит в декларативном стиле на высокоуровневом языке прикладной логики (N2O DSL), основанном на XML. Все страницы приложения динамические и могут быть изменены runtime без пересборки и остановки сервера. Подключение к данным можно реализовать декларативным способом через SQL, REST, EJB, RMI, Spring и другие технологии.
N2O Framework состоит из клиентской и серверной части. Сервер написан на Java с использованием библиотеки Spring Boot, отвечает за подготовку состояния React компонентов и связывание их с данными. Клиент имеет SPA архитектуру, написан с использованием библиотеки React и Redux.
N2O - компоненто-ориентированный фреймворк и его можно расширить под любые требования. Например, подк лючить стороннюю библиотеку React компонентов или реализовать новый способ получения данных. В N2O есть механизмы быстрого подключения системы авторизации, журналирования, аудита, отчетов.
Область применения
N2O Framework упрощает создание интерфейсов за счет повышения уровня абстракции разработки. Но как и любая другая абстракция, имеет свою цену за гибкость.
N2O отлично подходит для приложений с множеством форм, списков, таблиц, работающих с простыми CRUD операциями. Однако будут сложности с реализацией приложений с уникальным и неповторимым дизайном страниц, нетипичной логикой обработки событий или жесткими требованиями к структуре и консистентности данных.
Особенности
- Конструирование WEB интерфейсов в декларативном стиле на высокоуровневом языке прикладной логики (N2O DSL) на основе XML
- Для разработки инте рфейсов и связи с данными не требуется знаний web технологий и frontend фреймворков
- Возможность изменения страниц приложения без пересборки проекта и остановки сервера
- Автоматическое связывание таблиц, форм и других визуальных компонентов с данными
- Встроенная библиотека React компонентов с настраиваемой вёрсткой и поведением
- Отсутствие зависимости от языка программирования бизнес логики
Функциональность
- Конструирование шаблона приложения, структуры меню, страниц, панелей, компонентов ввода и вывода
- Настройка обработчиков событий (нажатий кнопок, ссылок), отправка запросов на сервер, открытие модальных окон, вложенных страниц
- Условия видимости и доступности полей, кнопок, панелей
- Фильтрация дочерних записей, Master/Detail фильтрации
- Широкий и расширяемый выбор протоколов доступа к данным: REST, SQL, EJB, Spring
- Валидация данных по условиям или с помощью запросов на сервер
- Декларативное управление правами доступа, интеграция со Spring Security
- Поддержка микросервисного окружения, интеграция со Spring Cloud
Архитектура
N2O - клиент-серверный фреймворк. Клиент отвечает за отрисовку и логику пользовательского взаимодействия. Сервер — за подготовку начального состояния компонентов и связывание данных. [.thumb]
Технологии клиента:
- React
- Redux
- Bootstrap 4
Технологии сервера:
- Java 11
- Spring Framework
- Spring Boot