Или удаленный пользовательский интерфейс через веб-браузер
3-й вариант: веб-приложение, выполняющее все ваши бизнес-логи c на стороне сервера, с пользовательским интерфейсом, запущенным удаленно в веб-браузере с использованием автоматического сгенерированный HTML / CSS / JavaScript. Пользователь будет использовать веб-браузер, а не веб-браузер.
В этом случае клиент никогда не обращается к вашей базе данных напрямую и не запускает какой-либо конфиденциальный код. Я думаю об этом как о современном перевоплощении старой X Window System (приложение на сервере, пользовательский интерфейс удаленно отображается).
Существует две такие платформы:
- Vaadin с чистым Java на сервере. Построен на основе изношенной Java технологии сервлетов .
- Xojo Web Edition (ранее известной как RealBasi c) запуск проприетарного скомпилированного объектно-ориентированного языка программирования на сервере.
В обоих этих продуктах веб-браузер используется для отображения виджетов пользовательского интерфейса, таких как метки, поля , кнопки, всплывающие меню, списки и сетки данных. Когда пользователь использует любой из этих виджетов, на стороне сервера возникает событие. Затем ваша бизнес-логика c выполняется на стороне сервера. Ваша бизнес-логика c и соединения с базой данных живут только на сервере. Клиент не получает ничего, кроме данных, отображаемых в формах на экране.

Обе эти платформы автоматически генерируют все HTML, CSS, JavaScript, DOM, AJAX, WebSocket, и Pu sh код. Так что вам не нужно осваивать эти веб-технологии. Обе эти платформы могут использоваться с любым современным веб-браузером, поскольку они используют только стандартные веб-технологии. Никаких плагинов или апплетов не задействовано.
Вам нужно будет переписать ваше приложение. Но это может быть не так страшно, как кажется. Большая часть работы в настольном приложении заключается в разработке, разработке деталей взаимодействия с пользователем и определении бизнес-правил. Это все перешло бы к вашей работе с Ваадином или Ходжо. И если вы используете Vaadin, весь ваш код не GUI Java будет напрямую передан.
Если ваше местное локальное приложение имело специальные функции, которые нельзя воссоздать в рамках ограничений веб-приложения, тогда этот подход не подходит. Но вы сказали, что основной целью вашего приложения является база данных CRUD . Такие бизнес-ориентированные на формы приложения являются основным назначением для Vaadin & Xojo Web Edition .
Запуск веб-приложения в автономном режиме
Vaadin имеет раннюю поддержку Progressive Web Apps (PWA) , чтобы включить веб-приложение, работающее в автономном режиме. В настоящее время самые передовые, но улучшающиеся браузеры уже поддерживают необходимую инфраструктуру. Если PWA можно заставить работать хорошо, некоторые виды настольных приложений можно заменить веб-приложением PWA.
См. Руководство по прогрессивному веб-приложению Vaadin .