Skip to content

Library for building offline-first browser-based applications :: платформа автономных веб-приложений

License

Notifications You must be signed in to change notification settings

rnpoddor/metadata.js

 
 

Repository files navigation

Stars Release NPM downloads NPM version

Metadata.js - проект с открытым кодом.
Приглашаем к сотрудничеству всех желающих. Будем благодарны за любую помощь.

English version

Недавно открыто сообщество по изучению metadata.js.

Почему Metadata.js?

Библиотека предназначена для разработки бизнес-ориентированных и учетных offline-first браузерных приложений и содержит JavaScript реализацию Объектной модели 1С. Библиотека эмулирует наиболее востребованные классы API 1С внутри браузера или Node.js, дополняя их средствами автономной работы и обработки данных на клиенте.

Для кого?

Для разработчиков мобильных и браузерных приложений, которым близка парадигма 1С на базе бизнес-объектов: документов и справочников, но которым тесно в рамках традиционной платформы 1С.
Metadata.js предоставляет программисту:

  • высокоуровневые data-объекты, схожие по функциональности с документами, регистрами и справочниками платформы 1С
  • инструменты декларативного описания метаданных и автогенерации интерфейса, схожие по функциональности с метаданными и формами платформы 1С
  • средства событийно-целостной репликации и эффективные классы обработки данных, не имеющие прямых аналогов в 1С

Предпосылки

Проект начинался с реализации лёгкого javascript клиента 1С (в дополнение к толстому, тонкому и веб-клиентам) и предназначался для чтения и редактирования данных, расположенных на сервере 1С с большим числом подключений (дилеры или интернет-витрина с сотнями анонимных либо авторизованных внешних пользователей). Позже, была реализована математика, использующая в качестве сервера хранилище данных на базе CouchDB и PouchDB с поддержкой прозрачной в реальном времени синхронизации с 1С

Автономное Web-приложение - это просто

Концепция и философия

В metadata.js предпринята попытка дополнить лучшее из современных технологий обработки данных инструментами, которых нам не хватало в повседневной работе

Структура системы на базе metadata.js

Структура metadata.js в браузере

Используем самое ценное от 1С

  • Эффективная модель Метаданных со ссылочной типизацией и подробным описанием реквизитов
  • Высокоуровневая объектная модель данных. Предопределенное (при необходимости, переопределяемое) поведение Документов, Регистров, Справочников и Менеджеров объектов, наличие стандартных реквизитов и событий, повышает эффективность разработки в разы по сравнению с фреймворками, оперирующими записями реляционных таблиц
  • Автогенерация форм и элементов управления

Чтобы предоставить разработчику на javascript инструментарий, подобный 1С-ному, на верхнем уровне фреймворка реализованы классы:

  • AppEvents, обслуживающий события при старте программы, авторизацию пользователей и состояния сети
  • Meta - хранилище метаданных конфигурации
  • DataManager с наследниками RefDataManager, EnumManager, InfoRegManager, CatManager, DocManager - менеджеры объектов данных - аналоги 1С-ных ПеречислениеМенеджер, РегистрСведенийМенеджер, СправочникМенеджер, ДокументМенеджер
  • DataObj с наследниками CatObj, DocObj, EnumObj, DataProcessorObj - аналоги 1С-ных СправочникОбъект, ДокументОбъект, ОбработкаОбъект

Отличия от конкурентов

Metadata.js не конкурирует с UI фреймворками, а дополняет их новой абстракцией в виде Объектов и Менеджеров данных. Использование этих классов упрощает разработку сложных интерфейсов бизнес-приложений. С классической платформой 1С, metadata так же, не конкурирует, т.к. рассчитана в основном, на работу в автономном режиме в браузере или на мобильном устройстве

Установка и подключение

см.: helloworld

Благодарности

  • Andrey Gershun & M. Rangel Wulff, authors of AlaSQL - Javascript SQL database library
  • Авторам PouchDB и CouchDB - NoSQL database and data synchronization engine
  • Прочим авторам за их замечательные инструменты, упрощающие нашу работу

Лицензия

MIT

Данная лицензия распространяется на все содержимое репозитория, но не заменеют существующие лицензии для продуктов, используемых библиотекой metadata.js

(c) 2014-2018, компания Окнософт (info@oknosoft.ru)

About

Library for building offline-first browser-based applications :: платформа автономных веб-приложений

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • JavaScript 89.8%
  • CSS 9.8%
  • Other 0.4%