Богатые клиентские платформы против JavaFX 2 против Swing - PullRequest
13 голосов
/ 15 ноября 2011

Довольно скоро нам нужно будет разработать графический интерфейс для создания конфигураций (если честно, скриптов) для нашего решения EAI на работе.Подумайте о типичном редакторе рабочего процесса.Визуализация реальных потоков, скорее всего, будет полностью настраиваемой задачей, будь то в Swing, SWT или JavaFX 2. У меня есть проблемы с выбором, делать ли все остальное самостоятельно или с помощью платформы с расширенными возможностями клиента.

В частности, я заметил, что JavaFX 2 привлекает много внимания и, похоже, действительно выдвигается Oracle как следующая большая вещь в ландшафте графического интерфейса Java.Демонстрации выглядят интересными, и, возможно, этот новый API больше ориентирован на производительность, а не на тонны стандартного кода, который Swing имеет тенденцию навязывать.Использование более новой технологии, которая получает большую поддержку, кажется безопасным вариантом для будущего обслуживания.

Использование RCP имело бы определенные преимущества для этого проекта.Независимо от того, будем ли мы использовать Eclipse или NetBeans в качестве платформы, существующие плагины / модули для просмотра базовой конфигурации (XML), контроля версий и т. Д. Обеспечат мощную функциональность с минимальными затратами труда.Мне также нравится идея иметь типы проектов нашего программного обеспечения рядом с проектами Java в том же графическом интерфейсе.Даже такие простые вещи, как управление окнами и индивидуальное расположение панелей, намного лучше обрабатываются RCP, чем то, что мы могли бы сделать.

Итак, вопрос в том, какая технология или их комбинация жизнеспособны?Мои варианты, насколько я вижу, таковы:

  • Eclipse.Я не слишком хочу использовать SWT, так как я больше знаком с Swing.NetBeans также является моей основной средой разработки, и я с ней наиболее знаком.Это всегда казалось более интуитивным.
  • NetBeans.Это позволило бы разрабатывать пользовательские компоненты в Swing.Более низкая кривая обучения для меня.
  • NetBeans + JavaFX 2. Эта идея мне нравится ... Используйте NetBeans для совершенства RCP и используйте JavaFX 2 для пользовательских компонентов.JavaFX 2, очевидно, интегрируется с Swing, но насколько хорошо это можно сделать в NetBeans?
  • Swing или JavaFX 2. Все ли графические интерфейсы работают сами или используют некоторые существующие инфраструктуры, чтобы получить большую часть того, что предлагает RCP,Это кажется большой работой, но также предлагает превосходный контроль.Я немного не хочу попробовать это в Swing.Насколько хорошо JavaFX 2 подойдет для этого?

В основном мой единственный опыт работы с графическим интерфейсом - это Swing для небольших приложений.Это первый раз, когда я пойду за чем-то, что будет оправдывать RCP.Но JavaFX 2 кажется дальнейшим шагом, и я не хочу пропустить лодку на этом.Если Swing может уйти, я бы предпочел использовать новую технологию.

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

Я понимаю, что это несколько открытый вопрос, но я не могу придумать более подходящее место.Я не ищу дебаты «что такое лучший RCP / JavaFX лучше Swing».Я ищу действительные баллы за / против их использования в этом контексте.

Ответы [ 3 ]

11 голосов
/ 12 января 2012

Мое мнение в несколько строк,

JavaFX2 может быть интегрирован в приложения Swing и SWT в панель / контейнер.

Swing не предоставляет структурированную архитектуру для работы с многокомпонентными приложениями, Eclipse RCP делает, но она тяжелее и иногда слишком сложна (WindowWorkbench и т. Д.) И ее трудно настраивать.

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

JavaFX будет стандартом пользовательского интерфейса Java на долгие годы. Он не может быть плохим выбором, поэтому его архитектура довольно хороша и мощна Кроме того, javaFX2 может быть использован в браузере и / или развернут в Интернете с помощью JNLP. Не мешайте изучать сложные недокументированные фреймворки (например, EclipseRCP), создайте свой !! и будьте свободны сделать приложение, необходимое вашему клиенту: D

Я работал 3 года в Swing Appz, 2 года в Eclipse RCP и 2 года в приложениях Flex / Silverlight / JavafX

7 голосов
/ 16 ноября 2011

Вот несколько моментов и (личных) мнений, которые помогут вам определить правильное решение для вашей текущей ситуации:

Затмение против Netbeans

Лично мне не нравятся большие дискуссии о плюсах / минусах IDE. Просто используйте тот, который вам удобнее всего. Если вы работаете в команде, сделайте голосование. Учитывая Swing, обе IDE хороши (IMHO Netbeans имеет лучший конструктор GUI). Принимая во внимание JavaFX 2.0, обе среды также хороши, но обе имеют общее отсутствие разработчика GUI. Я бы не рекомендовал смесь IDE.

JavaFX 2.0 против Swing против SWT против Eclipse RCP

Что ж, я не хочу - я даже не могу - сказать вам, какая из перечисленных выше технологий пользовательского интерфейса является лучшей, поскольку я недостаточно знаю среду вашего проекта - опыт, человеческие ресурсы, бюджет, сроки и т. Д. Наличие точного графика времени и команды (?) Опытных разработчиков Swing должно привести решение к Swing. То же самое для SWT и Eclipse RCP. Передовые разработчики могут попробовать JavaFX. Я согласен, JavaFX привлекает много внимания, и вы получаете великолепно выглядящие демонстрации, но имейте в виду, что для использования JavaFX требуется - в дополнение к JRE - среда выполнения JavaFX на каждом клиенте.

Надеюсь, это поможет.

0 голосов
/ 05 июня 2014

Мы перешли на javaFx из-за использования FXML, вы можете использовать шаблон MVC, вы можете добавить javascript и css init, но это кажется медленным при изменении страницы

...