Sova-online - альтернатива Lotus Notes

A

aon24

Приветствую, коллеги!

Я программирую на LN с 1997, для меня это среда родная.
Но мир меняется, правительство не дремлет, IBM отказалось, да и ценник кусается...
Короче, я пытаюсь сделать аналог LN на Python(сервер) и ReactJS(клиент).

Проект Sova-online . Лицензия MIT (все открыто, все бесплатно).
Я разместил на хабре статью Multi-page SPA на Питоне. Двусмысленное название, - это маркетинговый ход.

Multipage - не главное

Главное, это использование архитектуры LN в серверной части и попытка повторить лучшее из лотусового дизайна в браузере.
Питон - красивый язык и в нем все есть: smtp, imap4, ssl, http и много-много еще.
Классы Document, Database, DocumentCollection на Питоне можно сделать удобней, чем в lotusscript.
Код:
d = db.getDocumentByUNID(unid)
d.number = doc.number or 'б/н'
d.save(True)
React - это мое. Стойкая ненависть к html и javascript у меня полностью исчезла после появления ES2015 и ReactJS :)
Я сделал лотусоориентированный транспайлер для прорисовки форм:
питоновский
Код:
[ label('Комментарий'), {'field': ('notes', 'tx')} ]
преобразуется в React-компоненты и отобразится в браузере как метка поля и текстовое поле "notes".
Можно упростить: labField('Комментарий', 'NOTES') сделает то же самое.
Конечно, это не LN Designer, но и формы ведь не каждый день рисуешь.
С видами тоже вопрос решаем, хотя здесь, так сказать, есть резервы для роста.
Для каждой формы queryOpen, querySave на сервере, init, validate на клиенте.

Если есть идеи, замечания, пишите на [email protected]
Алексей Носиков
 

Вложения

  • lot_2.png
    lot_2.png
    69,8 КБ · Просмотры: 414
Последнее редактирование модератором:

lmike

нет, пердело совершенство
Lotus Team
27.08.2008
7 729
572
Приветствую, коллеги!

Я программирую на LN с 1997, для меня это среда родная.
Но мир меняется, правительство не дремлет, IBM отказалось, да и ценник кусается...
Короче, я пытаюсь сделать аналог LN на Python(сервер) и ReactJS(клиент).

Проект Sova-online . Лицензия MIT (все открыто, все бесплатно).
Я разместил на хабре статью Multi-page SPA на Питоне. Двусмысленное название, - это маркетинговый ход.

Multipage - не главное

Главное, это использование архитектуры LN в серверной части и попытка повторить лучшее из лотусового дизайна в браузере.
Питон - красивый язык и в нем все есть: smtp, imap4, ssl, http и много-много еще.
Классы Document, Database, DocumentCollection на Питоне можно сделать удобней, чем в lotusscript.
Код:
d = db.getDocumentByUNID(unid)
d.number = doc.number or 'б/н'
d.save(True)
React - это мое. Стойкая ненависть к html и javascript у меня полностью исчезла после появления ES2015 и ReactJS :)
Я сделал лотусоориентированный транспайлер для прорисовки форм:
питоновский
Код:
[ label('Комментарий'), {'field': ('notes', 'tx')} ]
преобразуется в React-компоненты и отобразится в браузере как метка поля и текстовое поле "notes".
Можно упростить: labField('Комментарий', 'NOTES') сделает то же самое.
Конечно, это не LN Designer, но и формы ведь не каждый день рисуешь.
С видами тоже вопрос решаем, хотя здесь, так сказать, есть резервы для роста.
Для каждой формы queryOpen, querySave на сервере, init, validate на клиенте.

Если есть идеи, замечания, пишите на [email protected]
Алексей Носиков
если вы это из академического интереса, да освоить "новые" технологии - да на здоровье :)
Полагаю о проектах Apache CouchDB и Couchbase Documentation знаете
писать свой бэк , имея подобные проекты, я считаю нецелесообразно
фронт - пишите на чем хотите, СДК подробные
 
  • Нравится
Реакции: Desoxyn
A

aon24

Про БД я вообще не упоминал. Можно использовать и CouchDB, и MongoDB, и РБД.
Переход на другую платформу - это гораздо больше, чем смена базы данных.
Пользователь, много лет использующий ЛН, должен в браузере получить нужный функционал и интерфейс не хуже, чем был.
Те веб-клиенты, которые я видел, в качестве замены десктопных приложений, не годятся.
Я пытаюсь научить браузер работать в стиле толстого клиента, а тысячи строк lotuscript заменить на сотни строк на Питоне.
 

lmike

нет, пердело совершенство
Lotus Team
27.08.2008
7 729
572
Про БД я вообще не упоминал. Можно использовать и CouchDB, и MongoDB, и РБД.
Переход на другую платформу - это гораздо больше, чем смена базы данных.
Пользователь, много лет использующий ЛН, должен в браузере получить нужный функционал и интерфейс не хуже, чем был.
Те веб-клиенты, которые я видел, в качестве замены десктопных приложений, не годятся.
Я пытаюсь научить браузер работать в стиле толстого клиента, а тысячи строк lotuscript заменить на сотни строк на Питоне.
утопическое желание, и есть vaadin, а на нем есть CUBA если мы про клиентскую часть
что можно сделать на CUBA не секрет - ТЕЗИС...

и вот мне не проще влезать в питон вместо java/js и не считаю питон ч-л лучше java
Переход на другую платформу (с LDN) подразумевает:
-администрирование
-кластеризация
-аутентификация
-интеграция с библиотеками на java
-стек JSF, OSGi
-перенос кода
-сохранение структуры сущностей
я не увидел ничего из перечисленного в вашем проекте
каким бы не был "ограниченным" LS - у него есть порог входа и он достаточно низкий, а дальше java, я не вижу смысла в питоне и мало себе представляю подобную схему "замены"
аналог LN на Python(сервер) и ReactJS(клиент)
тема считаю не раскрыта
 
  • Нравится
Реакции: rinsk
A

aon24

vaadin 8 или vaadin 10 ? Они вроде как не совместимы. CUBA на 10 работает?
Кстати они оба платные.

питон ч-л лучше java ?
нет не лучше. Но писать на нем проще (imho), т.е. код дешевле (я работал на С++, Jave, LS. Последние 7 лет на Питоне).

Переход на другую платформу (с LDN) подразумевает:
-администрирование
есть администрирование БД и администрирование приложения. В ЛН сервер приложения и сервер БД общий.
При переходе от ЛН это будут разные сервера. Серверы БД администрирования почти не требуют (они крутятся месяцами),
приложение требует внимания постоянно, и это не зависти от платформы.

-кластеризация
в Сове обращение к БД идет через алиас. Сами БД могут быть раскиданы по нескольким серверам с разными платформами.

-аутентификация
аутентификация есть (пользователи, группы, роли), авторизация тоже есть

-интеграция с библиотеками на java, стек JSF, OSGi
чего нет, того нет

-перенос кода
переноса кода нет, но есть его стремительное переписывание :)

-сохранение структуры сущностей
это запросто. У ЛН сущности предсказуемы и легко сохраняются
 

rinsk

Lotus Team
12.11.2009
1 116
112
По моему ничего плохого, сделать что то похожее на ЛН нет. Уж сколько этих проектов было:) Другое дело - вряд ли это будет именно альтернатива ЛН. Что мы будем в итоге альтенативить? RAD ? С пайтоном вряд ли - там же не только синтаксис языка но кое что другое. БД? Ну как бы то же до фига бакэнда всякого - но есть и свои плюшки лнд. UI? Ну кто только не пытался "сделать html как в делфи" - тот же extjs то же весь кнопочный и всякооконный... Но наивные десктоп рулят пока. Не надо их копировать совсем в угоду юзверям...
С ЛН работаю с версии 3.1 и сейчас переполз почти полностью под веб. Думаю что лет через 5 от ЛН останется его весьма мощный бакэнд с нечто другим в виде ui.
 
Последнее редактирование:

rinsk

Lotus Team
12.11.2009
1 116
112
Кста - aon24, а как в твоей нотации организуется позиционирование элементов на форме? Как я успел заметить - элементы имеют фиксированные координаты в рамках фиксированной же размера окна.
 
A

aon24

Кста - aon24, а как в твоей нотации организуется позиционирование элементов на форме? Как я успел заметить - элементы имеют фиксированные координаты в рамках фиксированной же размера окна.
позиционирование организуется сверху вниз слева направо (т.е. никак) :)
Рисую таблица, в ней поля. У меня и в ЛН так было.
Размер и прочее задается стилями.
Можешь сравнить питоновский скрипт (лучше рассматривать в eclipse или np++) и результат
 

jess_hide

Green Team
04.09.2018
14
2
Не особо для меня понятно)), но идея крута, чувак делай вещи, и не слушай никого)
 
  • Нравится
Реакции: aon24

rinsk

Lotus Team
12.11.2009
1 116
112
позиционирование организуется сверху вниз слева направо (т.е. никак) :)
Рисую таблица, в ней поля. У меня и в ЛН так было.
Размер и прочее задается стилями.
Можешь сравнить питоновский скрипт (лучше рассматривать в eclipse или np++) и результат

Не понятно, почему предпроцессор (пусть на питоне) всегда динамически генерирует метаданные для формы, когда можно это сделать 1 раз и отдавать готовый джейсон.
Этот подход позволит легко реализовать версионинг форм для ретроспективных данных.
В моем случае, когда форм разных под сотню - использование любого описательного механизма представления формы смерти подобно)
Был сделан редактор на ЛН, в который девочки набивают визуальное представление, а за мной реализация БП на бэке и фронте , ну и добавление в рендер всяких элементов формы.
Сейчас ищу готовый визуальный или не сильно визуальный редактор форм, с целью перетащить сей процесс в веб.
и это вся байда по идее - никак не завязано прям уж крепко на ЛНД - просто под него проще писать и на LS\Java чисто бакэнд БД.
т.е. как бэ то же получается "Альтенатива Lotus Notes" но на IBM Domino :)))

PS - ушел от table к grid.
 
A

aon24

Не понятно, почему предпроцессор (пусть на питоне) всегда динамически генерирует метаданные для формы, когда можно это сделать 1 раз и отдавать готовый джейсон.
Этот подход позволит легко реализовать версионинг форм для ретроспективных данных.
В моем случае, когда форм разных под сотню - использование любого описательного механизма представления формы смерти подобно)
Был сделан редактор на ЛН, в который девочки набивают визуальное представление, а за мной реализация БП на бэке и фронте , ну и добавление в рендер всяких элементов формы.
Сейчас ищу готовый визуальный или не сильно визуальный редактор форм, с целью перетащить сей процесс в веб.
и это вся байда по идее - никак не завязано прям уж крепко на ЛНД - просто под него проще писать и на LS\Java чисто бакэнд БД.
т.е. как бэ то же получается "Альтенатива Lotus Notes" но на IBM Domino :)))

PS - ушел от table к grid.
Все сделано так, как ты сказал: формы генерятся 1 раз и записываются в словарь с ключом "crc32". Если не указано "NotCaching" для данной формы.
При этом одна и та же форма может сохраняться в нескольких вариантах в зависимости от режима (read/edit), от имени/группы пользователя, от алиаса БД.
На клиенте они тоже кэшируются, у скриптов и стилей через :: добавлены дата-время (тоже кэшируются). Обмен только данными.
Визуальный редактор - это хорошо. Написать что-ли свой для Совы?...

Я тоже работал с 3.1 на Windows 3.11, приходилось и с Lotus 1-2-3 бодаться
 
Последнее редактирование модератором:

lmike

нет, пердело совершенство
Lotus Team
27.08.2008
7 729
572
Кстати они оба платные.
это не так Лицензия и Цены | CUBA.platform
куба бесплатна как и результат разработки на ней - свободен для распространения, Студия платна (если для к-л ощутимого проекта), но она не есть платформа!
нет не лучше. Но писать на нем проще (imho), т.е. код дешевле (я работал на С++, Jave, LS. Последние 7 лет на Питоне).
как на мой взгляд нет + деплоймент проще на java (конечно - там где она есть, на АРМах с ней не так однозначно), добавим сюда еще груви и скалу (и все что живет на жвм), средства разработки и отладки более развиты (на мой взгляд)
При переходе от ЛН это будут разные сервера. Серверы БД администрирования почти не требуют (они крутятся месяцами),
приложение требует внимания постоянно, и это не зависти от платформы.
и это минус, в массе случаев - когда нет единой точки управления и обслуживания - нужны отдельные спецы изначально. Вот кочдб - сделали максимально близко к домине и все что нужно - "морду" оформить
в Сове обращение к БД идет через алиас. Сами БД могут быть раскиданы по нескольким серверам с разными платформами.
и мы плавно подходим к моему тезису выше - нуже спец по БД/кластеризации и т.п.
аутентификация есть (пользователи, группы, роли), авторизация тоже есть
она ну уровне приложения, но не БД, полагаю она только базовая ибо держать ЛДАП - мы приходим еще к одному сервису, т.е. об интеграции с ч-л придется очень напряженно думать
это запросто. У ЛН сущности предсказуемы и легко сохраняются
но это надо воспроизводить, я к примеру пользуюсь JSON по http из домины, еще планирую задействовать DDS (Domino Data Service) по факту - это готовый REST искаропки, у вас это еще пилить и пилить (если вообще станет вопрос так). И, да - в кочдб это есть
По моему ничего плохого, сделать что то похожее на ЛН нет
я с этим не спорю, меня смущает выбор инструмента
С ЛН работаю с версии 3.1 и сейчас переполз почти полностью под веб. Думаю что лет через 5 от ЛН останется его весьма мощный бакэнд с нечто другим в виде ui.
я знаком с ним с 4-ой версии (и тренинги проходил по нему), а экзамены сдавал по 4.5 (в 97). Меня смущает что фронт взяли эклипс и забросили на полпути, там и вебкит есть для рендерера...
Как бэк - да, "Эта штука сильнее, чем «Фауст» Гете" :)
 

lmike

нет, пердело совершенство
Lotus Team
27.08.2008
7 729
572
использование любого описательного механизма представления формы смерти подобно)
визуальное д.б. визуальным ;)
я вона на табуле выдергиваю области из ПДФ и вставляю в натсройки, в БД, а код обрабатывает, по "этому", данные
я не могу себе представить ужас - когдаб сидел с линейкой и калькулятором и пересчитывал в пиксели ;)
 
  • Нравится
Реакции: alexas1

lmike

нет, пердело совершенство
Lotus Team
27.08.2008
7 729
572
Не особо для меня понятно)), но идея крута, чувак делай вещи, и не слушай никого)
детали возникают при реализации, для этого нужно иметь четкое представление - как оно есть сейчас и что получим в результате
слово замена (альтернатива) - это значит сокращение расходов на разработку/поддержку-сопровождение/обслуживание, если получим что-то другое, решающее несколько другие задачи и иначе - это на замена ;)
 
Последнее редактирование:
A

aon24

это не так Лицензия и Цены | CUBA.platform
куба бесплатна как и результат разработки на ней - свободен для распространения, Студия платна (если для к-л ощутимого проекта), но она не есть платформа!как на мой взгляд нет + деплоймент проще на java (конечно - там где она есть, на АРМах с ней не так однозначно), добавим сюда еще груви и скалу (и все что живет на жвм), средства разработки и отладки более развиты (на мой взгляд)и это минус, в массе случаев - когда нет единой точки управления и обслуживания - нужны отдельные спецы изначально. Вот кочдб - сделали максимально близко к домине и все что нужно - "морду" оформитьи мы плавно подходим к моему тезису выше - нуже спец по БД/кластеризации и т.п.она ну уровне приложения, но не БД, полагаю она только базовая ибо держать ЛДАП - мы приходим еще к одному сервису, т.е. об интеграции с ч-л придется очень напряженно думать
но это надо воспроизводить, я к примеру пользуюсь JSON по http из домины, еще планирую задействовать DDS (Domino Data Service) по факту - это готовый REST искаропки, у вас это еще пилить и пилить (если вообще станет вопрос так). И, да - в кочдб это есть
я с этим не спорю, меня смущает выбор инструмента
я знаком с ним с 4-ой версии (и тренинги проходил по нему), а экзамены сдавал по 4.5 (в 97). Меня смущает что фронт взяли эклипс и забросили на полпути, там и вебкит есть для рендерера...
Как бэк - да, "Эта штука сильнее, чем «Фауст» Гете" :)
Ты все правильно пишешь. Переход с ЛН на что-либо в общем случае не прост. и не быстр.
Сравнивать яву и питон, я думаю, нет смысла.
То, что я предлагаю, не универсальное решение. Я использовал Сову для замены нашего приложения (около 150 форм, не считая отчетов, 500кб ЛС, явы нет).
С системой постоянно работали 1200 чел, и вопрос сохранения интерфейса стоял очень остро.
Еще момент: ты в теме, знаешь свое приложение, знаешь яву и т.д.
А представь ситуацию: приложение крутится много лет, что там внутри никто не знает, разработчик стал начальником или ван-вэй-тикет,
а правительство говорит... (сам знаешь что).
Ч.д.? - Х.з.
Я реально крутой делопроизводитель: обсуждал, как лучше сделать ДО, с замгубернаторами в 2-х регионах и одним замминстра РФ.
И немного программист. Редкое сочетание.
Я знаю, что и как делать в плане морды и функционала. Но проектировать БД не возмусь. Программист, с которым я работал, нынче играет в рок-группе.
В Сове nsf заменен на 1 таблицу из 5 полей на SQLite :)
Для полнотекстового поиска я пробовал Sphinx Search. Отличная вещь, автор Аксенов, но зарегистрировано в США.
Короче, если кому-то нужно избавиться от ЛДН, я готов. Но без явы, извини.
Доводилось мне видеть и бухгалтерию на ЛН, - это без меня :)
 

rinsk

Lotus Team
12.11.2009
1 116
112
Визуальный редактор - это хорошо. Написать что-ли свой для Совы?...
Ну а нафига именно для совы ? ИМХО - эт штука в итоге на выходе должна дать внятный джейсон с метой по типам полей. порядку расположения и маркеры его поведения (hide when типа)).
рендеру на бэке или фронте останется его отрисовать согласно БП.
а уж на чем рендер делать - фиолетово...
 

lmike

нет, пердело совершенство
Lotus Team
27.08.2008
7 729
572
Sphinx is publicly distributed under GNU General Public License (GPL)
в здравом смысле - регистрация не имеет значения, в таком ракурсе
Короче, если кому-то нужно избавиться от ЛДН, я готов. Но без явы, извини.
есть 100500 способов, зависит от задачи - как ты сам это понимаешь, если ЛДН брали на поиграться - можно менять на что хошь ;)
Доводилось мне видеть и бухгалтерию на ЛН, - это без меня
есть 1Це и интегрровать его с ЛДН, не нужно революций (уже наелись) ;)
 
A

aon24

детали возникают при реализации, для этого нужно иметь четкое представление - как оно есть сейчас и что получим в результате
слово замена (альтернатива) - это значит сокращение расходов на разработку/поддержку-сопровождение/обслуживание, если получим что-то другое, решающее несколько другие задачи и иначе - это на замена ;)
При чем тут сокращение расходов?
ЛДН в основном в госструктурах.
Правительство сказало: "Нельзя!" - значит будет замена.
А на что менять? Большинство российских СЭД под винду. А если винду запретят?
А тут я с Совой :)
 
A

aon24

Ну а нафига именно для совы ? ИМХО - эт штука в итоге на выходе должна дать внятный джейсон с метой по типам полей. порядку расположения и маркеры его поведения (hide when типа)).
рендеру на бэке или фронте останется его отрисовать согласно БП.
а уж на чем рендер делать - фиолетово...
согласен, так и надо делать. Или найти уже сделанный.
Я в свое время написал конвертор из ЛН форм в html. Сохраняешь в дизайнере форму как xml, прогоняешь через конвертор, получаешь форму с полями, на html.
Редкое г.вно в результате получалось.
 

lmike

нет, пердело совершенство
Lotus Team
27.08.2008
7 729
572
При чем тут сокращение расходов?
ЛДН в основном в госструктурах.
Правительство сказало: "Нельзя!" - значит будет замена.
А на что менять? Большинство российских СЭД под винду. А если винду запретят?
А тут я с Совой :)
ТЭЗИС - кроссплатформа, самиже и рарабатывают платформу (CUBA) все Российское. В пресейле мне развернули на контейнер центОС (на proxmox). Система очень гибкая, мне понра...
А с поддержкой Совы вполне может случиться подобное
Программист, с которым я работал, нынче играет в рок-группе.
и фсё? ;)
и вместо разработки Совы, могли приспособить кочдб - там JS обертку на чёмхошь сделать
 
Последнее редактирование:
Мы в соцсетях:

1 августа стартует курс «Основы программирования на Python» от команды The Codeby

Курс будет начинаться с полного нуля, то есть начальные знания по Python не нужны. Длительность обучения 2 месяца. Учащиеся получат методички, видео лекции и домашние задания. Много практики. Постоянная обратная связь с кураторами, которые помогут с решением возникших проблем.

Запись на курс до 10 августа. Подробнее ...