Как мне выбрать между использованием Swing GUI или облегченным веб-клиентом для пользовательского интерфейса моего Java-приложения? - PullRequest
6 голосов
/ 21 января 2010

Мне всегда кажется, что это внутренняя борьба, когда дело доходит до пользовательского интерфейса. Я создаю «движок» приложения и склоняюсь к тому, чтобы отложить пользовательский интерфейс после того, как мои алгоритмы работают. Затем я снова и снова пытаюсь решить, как позволить пользователю взаимодействовать с моей программой. Лично я фанат командной строки, но я не могу ожидать, что мои пользователи вообще.

Мне действительно нравится то, что возможно в браузере в эпоху web 2.0 и ajax. С другой стороны, сделать Swing-интерфейс также не так сложно, и вы можете рассчитывать на более согласованное представление для пользователя (хотя использование хорошего фреймворка JavaScript, такого как YUI или jQuery, имеет большое значение для нормализации браузеров).

Очевидно, что оба подхода имеют свои достоинства и недостатки. Итак, какие критерии / параметры / ситуации должны побудить меня использовать легкий (например, веб-интерфейс) графический интерфейс? Какие критерии / параметры / ситуации должны побудить меня использовать более тяжелый (например, основанный на Swing) графический интерфейс?

Я не собираюсь начинать пламенную войну, просто заинтересован в конструктивных / объективных мнениях сообщества.

Редактировать # 1 В свете первых нескольких ответов я хотел бы уточнить, что я бы хотел развернуть свое приложение независимо от того, не обязательно ли размещать его на каком-либо интернет-сервере. Поэтому мне пришлось бы развернуть его с помощью облегченной инфраструктуры веб-сервера в виде Jetty / Tomcat или аналогичной.

Ответы [ 8 ]

2 голосов
/ 21 января 2010

Это зависит от приложения, и это, по сути, вопрос удобства использования (хотя существуют такие аспекты, как хранение данных и требования к платформе). Подумайте о плюсах и минусах.

Плюсы облегченного веб-интерфейса:

  • Легкость распространения
  • Платформа независима
  • Простота обслуживания

Минусы легкого веб-интерфейса:

  • Меньше экологического контроля
  • Стандарты разметки варьируются в зависимости от браузера
  • Требуется веб-сервер и все, что с ним идет

Плюсы исполняемого пользовательского интерфейса

  • Больше контроля над окружающей средой (т.е. полноэкранные приложения и т. Д.)
  • Не обязательно подвержены задержкам и сбоям

Минусы исполняемого интерфейса

  • Загрузка обновлений может быть более сложной
  • Требуется установка
  • Потенциальные требования платформы (платформы, пакеты и т. Д.)
  • Потенциально требуется знание расширенных сетевых тем (веб-сервисы и т. Д.)
1 голос
/ 21 января 2010

Вам нужно разбить требования приложения, чтобы решить это ...

  1. У пользователей установлена ​​Java достаточной версии? Это должно быть, чтобы запустить графический интерфейс Swing.
  2. У вас есть веб-сервер?
  3. Вам нужна гибкость графического интерфейса Swing или доступность веб-интерфейса?
  4. Это Java Webstart и опция, если так, вы можете распространять графический интерфейс Swing через Интернет.
  5. Ваше приложение выполняет обширные вычисления или обработку? Если так, клиентское приложение может быть ответом.

Есть миллион таких вопросов. Я бы посоветовал провести мозговой штурм и отследить все плюсы и минусы каждого, прибавить балл, чем выбросить все это и уйти с чувством кишки:)

1 голос
/ 21 января 2010

Если это клиент-серверное приложение, я обычно выбираю веб-интерфейс для приложения.

Вы избавите себя от множества проблем с такими вещами, как установленные версии JRE, распространение обновлений, разрешения приложений, исчезнувшие ярлыки ...

1 голос
/ 21 января 2010

Один небольшой фактор, который вы можете принять во внимание, заключается в том, что пользователю придется пройти какой-то тип установки (хотя и минимальный), если вы распространяете свинг-приложение.

Также веб-приложение позволит вам точно отслеживать использование вашего приложения (с помощью Google Analytics или чего-то подобного). Не уверен, что это проблема, но она может пригодиться вам в будущем.

0 голосов
/ 21 января 2010

Не зная ничего о вашем приложении, я не могу дать наилучшую возможную рекомендацию. Однако я могу сказать из личного / профессионального опыта, что установка приложения на клиентские машины - это БОЛЬШАЯ боль в заднице, чем кажется.

С AJAX / web вам действительно нужно заботиться только о поддержке трех браузеров. При установке продукта на веб-сервере ошибки установки / обновления ощущаются только один раз.

Подобно автономному приложению Swing, вы получаете дело с действительно большим беспорядком, который устанавливает приложение на неизвестные системы. Этот беспорядок был настолько ужасным, что такие вещи, как AJAX, были действительно продвинуты, чтобы заставить веб-приложения вести себя как настоящие нативные приложения.

0 голосов
/ 21 января 2010

Сделайте быстрое предположение, я часто пытаюсь спросить себя / клиентов, имеет ли приложение высокий спрос на «запись». Для приложений, в основном доступных только для чтения, идеально подходит решение для тонких клиентов. Но если требуется много действий для записи, настольное приложение Swing обладает большей гибкостью.

Лично я всегда предпочитаю свинг настольное приложение. Его можно легко развернуть с помощью Java Webstart.

0 голосов
/ 21 января 2010

Подумайте о пользователях и вариантах использования вашего проекта.

Ожидают ли пользователи доступа к нему, когда они отключены от Интернета (например, в самолете или в кафе без доступа в Интернет)? Используйте Swing.

Хотите ли вы, чтобы пользователи имели доступ к одному и тому же инструменту с разных компьютеров (например, как на работе, так и дома)? Используйте веб-интерфейс.

Также подумайте, нужно ли пользователю сохранять и загружать данные, и создает ли инструмент файлы данных, которые некоторые могут посчитать конфиденциальными (если это так, может возникнуть проблема с хранением в сети).

0 голосов
/ 21 января 2010

Если вы ожидаете частых обновлений приложения, тогда лучше будет использовать веб-интерфейс, поскольку пользователю не придется обновлять клиент или устанавливать новый клиент, содержащий обновления. Если вы считаете, что пользователю может потребоваться возможность использовать приложение, когда он не подключен к Интернету, тогда качели будут лучше.

Просто две вещи с моей головы.

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