Skip to main content

Введение

N2O Framework - библиотека с открытым исходным кодом, написанная на Java и ReactJS. Позволяет создавать веб приложения со сложными пользовательскими интерфейсами без глубоких знаний веб технологий и фронтенд фреймворков.

N2O имеет встроенную библиотеку ReactJS компонентов с готовой вёрсткой, поведением и легким связыванием с данными. Разработка интерфейсов происходит в декларативном стиле на высокоуровневом языке прикладной логики (N2O DSL), основанном на XML. Все страницы приложения динамические и могут быть изменены runtime без пересборки и остановки сервера. Подключение к данным можно реализовать декларативным способом через SQL, REST, EJB, RMI, Spring и другие технологии.

N2O Framework состоит из клиентской и серверной части. Сервер написан на Java с использованием библиотеки Spring Boot, отвечает за подготовку состояния React компонентов и связывание их с данными. Клиент имеет SPA архитектуру, написан с использованием библиотеки ReactJS и Redux.

N2O - компоненто-ориентированный фреймворк и его можно расширить под любые требования. Например, подключить стороннюю библиотеку React компонентов или реализовать новый способ получения данных. В N2O есть механизмы быстрого подключения системы авторизации, журналирования, аудита, отчетов.

Область применения#

N2O Framework упрощает создание интерфейсов за счет повышения уровня абстракции разработки. Но как и любая другая абстракция, имеет свою цену за гибкость.

N2O отлично подходит для приложений с множеством форм, списков, таблиц, работающих с простыми CRUD операциями. Однако будут сложности с реализацией приложений с уникальным и неповторимым дизайном страниц, нетипичной логикой обработки событий или жесткими требованиями к структуре и консистентности данных.

Особенности#

  • Конструирование WEB интерфейсов в декларативном стиле на высокоуровневом языке прикладной логики (N2O DSL) на основе XML
  • Для разработки интерфейсов и связи с данными не требуется знаний web технологий и frontend фреймворков
  • Возможность изменения страниц приложения без пересборки проекта и остановки сервера
  • Автоматическое связывание таблиц, форм и других визуальных компонентов с данными
  • Встроенная библиотека ReactJS компонентов с настраиваемой вёрсткой и поведением
  • Отсутствие зависимости от языка программирования бизнес логики

Функциональность#

  • Конструирование шаблона приложения, структуры меню, страниц, панелей, компонентов ввода и вывода
  • Настройка обработчиков событий (нажатий кнопок, ссылок), отправка запросов на сервер, открытие модальных окон, вложенных страниц
  • Условия видимости и доступности полей, кнопок, панелей
  • Фильтрация дочерних записей, Master/Detail фильтрации
  • Широкий и расширяемый выбор протоколов доступа к данным: REST, SQL, EJB, Spring
  • Валидация данных по условиям или с помощью запросов на сервер
  • Декларативное управление правами доступа, интеграция со Spring Security
  • Поддержка микросервисного окружения, интеграция со Spring Cloud

Архитектура#

N2O - клиент-серверный фреймворк. Клиент отвечает за отрисовку и логику пользовательского взаимодействия. Сервер — за подготовку начального состояния компонентов и связывание данных. [.thumb]

scaledwidth=75%

Технологии клиента:

  • ReactJS
  • Redux
  • Bootstrap 4

Технологии сервера:

  • Java 11
  • Spring Framework
  • Spring Boot