Перенос legacy-приложения на Cuba Platform

Добрый день!
В компании существует учётное приложение, написанное на Delphi и MSSQL 15 лет назад. Сотни форм, журналов, справочников, БД объёмом несколько сотен ГБ. Есть большое желание перевести клиентскую часть на новую платформу, при этом БД желательно не трогать совсем или трогать по минимуму. Рассматриваем голый Vaadin и Cuba Platform. Если с Vaadin всё более-менее понятно - практически полная свобода действий в плане взаимодействия с БД, создания интерфейсов - всё ограничено только доступным набором компонентов, и есть только один минус - требуется время на разработку своей мини-платформы, то у Cuba как у готовой платформы скорее всего ограничений больше, в связи с чем возник ряд вопросов, буду очень благодарен, если смогу получить на них ответы:

  1. Все сущности в БД создаются, обновляются и удаляются через вызовы хранимых процедур - в них скрыта практически вся бизнес-логика работы системы. Процедуры требуют для своей работы временную таблицу, содержащую сущности для обработки. Как это будет выглядеть на Cuba - хотя бы примерное направление действий, и так чтобы не писать кучу кода для каждой сущности каждый раз
  2. Есть журналы, которые формируются на основе данных, возвращаемых из хранимых процедур и табличных функций, которые имеют набор входных параметров(фильтров) - дата, клиент, и т.п. Такие журналы могут быть связаны с другими сущностями в системе, из журналов могут открываться карточки редактирования объектов, другие журналы (например детализация суммарного показателя и т.п.) Возможно ли всё это сделать на Cuba - опять же, насколько это можно стандартизовать чтобы не писать большие объёмы кода (какие-то родительские классы, хелперы и т.п.)
  3. Есть своя система разграничения доступа, основанная на том, кто вошёл в систему, его роли и названии объекта к которому осуществляется доступ. Каждый пользователь использует для работы свой логин в MSSQL, запросы к БД должны осуществляться именно под этим логином, чтобы правильно работала бизнес-логика системы. Возможна ли интеграция существующей системы безопасности и разграничения прав в Cuba ?

Конечно вопросов намного больше, но нужно с чего-то начать. Хочется понять - получим ли мы больше преимуществ от использования Cuba в нашем конкретном случае или нам будет проще использовать Vaadin в котором у нас будут больше развязаны руки, но и работы соответственно тоже придётся сделать больше?
Заранее спасибо!

1 симпатия

Добрый день!

Судя по вашему описанию, вам нужно заменить только фронтенд имеющейся системы, и оставить БД и бизнес-логику нетронутой.
Я бы не советовал использовать для этой цели CUBA, так как это не UI-фреймворк.
Оставить схему БД и данные не составило бы труда, но работать через хранимые процедуры, да еще и запускаемые от логинов пользователей - это будет слишком трудоемко и ненатурально для CUBA.

2 симпатии