#java #веб_программирование
Нужен совет новичку на Java. Во всяких технологиях, IDE... уже как-то разбираемся (в основном для desktop приложений), но про развертывание приложений на web-сервере еще много вопросов. Основные особенности разрабатываемого приложения: Должны быть две версии - web и кроссплатформенная desktop. Удобство установки, использования, обновления настольной версии для пользователя. Версия web должна выполняться на стороне сервера, что бы снять нагрузку с клиента, например актуально для iPad. Небольшая БД, авторизация пользователей. Хотелось бы не писать один и тот же код по два раза каждый раз в ходе разработки и поддержки (для desktop и web отдельно). Приложение не очень сложное, предполагается развитие в сторону осуществления социальной сети между зарегистрированными пользователями, только для web-версии. Теперь вопросы: От чего отталкиваться, от desktop или web, т.е. выкладывать настольную версию на сервер или можно наоборот - заставить web-версию запускаться в Windows, Linux, Mac OS? Можно ли desktop-приложение Java разместить на web, что бы оно выполнялось на стороне сервера? Если web-приложение работает локально, надо запускать соответствующие сервера, что уже неудобно для обычного пользователя, нельзя ли обойтись по другому?
Ответы
Ответ 1
Не надо ни от чего отталкиваться. Разрабатывайте общие части в виде отдельных модулей-библиотек. Так получится переиспользование кода. Можно, но ни в коем случае не нужно. А зачем обычному пользователю запускать у себя сервера? UPD: хороший вариант, т.е. создаем два проекта и используем общие модули? еще не понимаю как интерфейс разрабатывать, отдельно придется писать? Ну да, делаете общую модель данных и общую бизнес логику в shared модулях и два отдельных приложения, которые эти модули используют. не нужно с учетом условия выполнения приложения на сервере? А какой смысл запускать десктопное приложение на сервере? Как вы себе это представляете? Как пользователь окно увидит? не совсем еще понимаю, а как локально можно запустить web-приложение? Традиционно веб-приложения выполняются на сервере и отображаются в веб-браузере пользователя + JavaScript выполняется на стороне клиента. UPD2 Чтобы показать друзьям, веб-приложение надо развернуть на сервере или на своей машине и открыть к нему доступ из интернета путём настройки своей машины и роутерамодемаetc. Если надо показать без доступа к интернету, то придётся все необходимые сервера устанавливать у них, либо использовать какие-то portable-версии этих серверов, которые работают без установки. Можно в одну директорию затолкать все нужные сервера (тот же tomcat не требует установки) и сервер БД, если требуется. И напишите скрипт, чтобы всё это запускать одним движением руки.Ответ 2
Хотелось бы не писать один и тот же код по два раза каждый раз в ходе разработки и поддержки (для desktop и web отдельно). Прочитайте про шаблон MVC, это поможет вам разобраться, каким образом избежать дубликации кода, когда необходимо иметь несколько различных представлений для одного и того же функционала (веб-приложение, десктопные приложения на различные ОС, мобильные платформы и т.д.) Если вкратце, вам необходимо разделить на отдельные независимые модули безнес-логику и визуальное отображение. Можно ли desktop-приложение Java разместить на web, что бы оно выполнялось на стороне сервера? Сервер — это просто компьютер, который умеет отвечать на HTTP-запросы HTTP-ответами. Он сможет выполнять те же функции, что и ваш домашний компьютер. Вам будет нужно принять HTTP-запрос, при его обработке вызвать функции, которые вы называете "desktop-приложение Java" и затем вывести результат работы пользователю через HTTP-ответ. Таким образом вы выполните код на стороне сервера.
Комментариев нет:
Отправить комментарий