Какую технологию выбрать для смешанного редактора?

Хочу написать приложение примерно такого толка:
Пример интерфейса
5e3532d19113e080161692.png

Слева - панель инструментов, из которой можно перетаскивать компоненты на рабочее поле.
В принципе из картинки должна быть примерно понятна общая идея: на поле можно создать много контейнеров, а в них поместить разный контент. Справа снизу - окно, которое изначально является невидимым, а появляется при нажатии на оранжевую кнопку со знаком вопроса.

Из неочевидного - структура контейнера заранее не известна. То есть у пользователя должна быть возможность разместить компоненты внутри например вот так:
Пример
5e353de052c09060631393.png

В идеале эти текстовые блоки должны быть "плавающими" - например, чтобы можно было изменить размер мышкой и перенести нижний блок вбок, а текст сожмется\перенесется.
Помимо этого, желательно (но не обязательно) иметь возможность поместить текстовый блок над картинкой (блоки с надписями ТРЕУГ, КРУГ), чтобы добавлять какие-то подписи прямо в нужное место картинки без необходимости ее перерисовывать.

При этом еще необходимо будет реализовать сохранение всего текста и изображений в БД, чтобы бэкапить записи.

UPD. Забыл сразу написать, что очень желательна возможность приближения\отдаления.

Основная мотивация:
1) Избавиться от ограничений линейной структуры текстовых редакторов и размера их листа
2) Придание конспектам более наглядного вида - как будто перед вами детективная доска с подозреваемыми, уликами и красными ниточками, обозначающими связь между всеми этими вещами
3) Практика программирования. В итоге должен получиться этакий mindmap-редактор, в котором будет реализовыван функционал, отсутствующий в уже существующих редакторах

Из кандидатов на роль технологии приходит на ум только Wpf и Electron. Производительность и объем памяти не важен (хотя конечно если карта из 100 блоков займет 10Гб RAM и будет перемещаться с лагами в 5 секунд, то тогда важно). В Wpf знаю все рисуется весьма быстро и можно сделать модные кастомные контролы, но это несопоставимо сложнее, чем сделать аналогичные через html и css. В .Net удобные средства работы с БД и я неплохо знаю C#, но основная сложность реализации здесь лежит на интерфейсе, так что это не главный критерий, могу для этого и JS посмотреть, если интерфейсную часть так будет сделать ощутимо проще.

Так что вопрос получается таким: на чем такую задачу делать в целом проще и сподручнее?
Я могу попробовать написать Hello world на том и на том, но как бы первое впечатление не оказалось обманчивым. Поэтому интересно выслушать тех, кто имел опыт создания чего-то такого и может объективно посоветовать. Может даже какие-то другие технологии (кроме С++ и Qt, он платный).
  • Вопрос задан
  • 90 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы