Богатые клиентские платформы против JavaFX 2 против Swing

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

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

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

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

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

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

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

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

Ответ 1

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

Eclipse vs. Netbeans

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

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

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

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

Ответ 2

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

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

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

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

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

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

Ответ 3

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