Java Swing или Windows Forms для настольных приложений?

Я пишу толстое клиентское приложение, которое в идеале хотел бы быть кросс-платформенным, но может рассчитывать только на Windows-based, основываясь на следующем:

  • Я намного сильнее на С#, чем Java (хотя у меня есть опыт Enterprise Java на несколько лет).
  • Я не очень много работал с Windows Forms или Java Swing, просто играю приложения для каждого, хотя Мне комфортно в Windows Формы, отличные от Swing
  • Меня беспокоит производительность приложений Swing (по сравнению с Windows Forms), но я интересно, улучшились ли вещи за последние пару лет.
  • Я полностью открыт для разработки на любой платформе... здесь нет MS или Java snobbery. На самом деле, если вы хотите сказать мне сделать это в Qt, wxWidgets или что-то еще, я буду слушать!

Если кто-то из вас перешел из Windows Forms в Swing, какие были самые большие препятствия?

Было ли первое обращение к кросс-платформенной стоимости в конце, или было бы более быстрым и менее гибким Windows-only приложение было лучше?

Если вы используете Java Swing, какую IDE вы предпочитаете для компоновки формы перетаскивания?

Ответ 1

Я разрабатываю сложный графический интерфейс с низкой задержкой в ​​банке, используя платформу NetBeans RCP. Существует много людей, использующих Netbeans. Я также работаю с разработчиками WinForm.

У парней WinForm есть чрезвычайно богатые и высокопроизводительные/низкопроизводительные сетки и виджеты, особенно коммерческие предложения, такие как Infragistics. Приложения Netbeans могут иметь большие следы ресурсов, поэтому на самом деле это должно быть то, что ваш клиент тратит большую часть своих вычислительных ресурсов.

Если он должен быть плотным, а интерфейс богатым или быстрым, то Winforms - это путь.

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

Сказав это, Netbeans IDE ужасает! Вы бы предпочли посетить блог Geertjan, если вы подойдете к нему.

Регулярно проверяйте свой код на ветку при использовании редактора Matisse Graphics, он часто гаснет и разбивает ваши макеты и не удается отменить. Основополагающая обработка зависимостей платформы RCP - если она вас закручивает - может быть сложной, но все же лучше, чем OSGi!

Удачи, разработка графического интерфейса не так проста, как говорят люди!

Ответ 2

Похоже, что вы хотите услышать: "Не используйте свинг с Winforms", так что вот оно: Не используйте свинг. Если вы чувствуете себя более комфортно с С#, я думаю, что единственная причина, по которой вам нужно это делать.

Приложения Swing бывают быстрыми, и вся платформа достаточно хороша, но для ее изучения определенно требуется некоторое время.

Если вы решите попробовать, я предлагаю либо Netbeas, либо IntellJ Idea, у обоих есть отличные разработчики графического интерфейса.

Но на самом деле, просто держись с С#

Ответ 3

Загрузите Netbeans и попробуйте сделать в нем простое приложение Swing. Редактор графического интерфейса действительно приятный и мощный, и позволяет легко избежать выполнения дизайна вручную. Затем вы добавляете функциональность с фрагментами кода, размещенными там, где вам сообщают Netbeans.

Я делал это при простом "чтении в листе Excel в JTable и загрузке приложения JTable в базу данных" с нуля через день. Я планировал просто сделать графический интерфейс в Netbeans, а затем импортировать его в Eclipse и выполнять там работу, но было намного проще оставаться в Netbeans.

Попробуйте, вам может понравиться.

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

Ответ 4

Ну, конечно, это вопрос вкуса, но для среды только для окон я бы предпочел формы окон (которые вы теоретически могли бы запускать на других платформах через Mono) или WPF (что является лучшим вариантом для насколько я заинтересован). Я видел много действительно уродливых приложений Swing, которые, однако, являются кросс-платформой. Действительно, с небольшой дополнительной работой вы можете получить почти собственный взгляд на каждой платформе. Вы можете использовать NetBeans для перетаскивания с Swing.

Ответ 5

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

Я быстро просмотрел Visual Guide для Swing Components (Windows Look and Feel), и все компоненты, как представляется, имеют стиль Windows XP, что может быть проблемой, если ваша программа будет запущена в Windows Vista/7 (при этом библиотека Swing вполне может повториться при запуске под Vista/7, но я ничего не смог найти что сказано в любом случае).

Ответ 6

Легче работать с Forms из-за лучших инструментов дизайна в Visual Studio и помощи из msdn и других источников. Похоже, что Swing начинается медленно, по сравнению с формами. Видеть: http://www.codeproject.com/KB/dotnet/RuntimePerformance.aspx Также сегодня Swing используется меньше, чем другие технологии.

Ответ 7

Правила С#... Нет проблем с С# (.NET), если вы хотите быстро разработать приложение. В качестве примера вы можете сравнить варианты (гибкость) datagrid с паршивым JTable. Я уверен, что вы не будете удивлены.

Ответ 8

Я вижу, что люди говорят, что используют winforms для быстрой разработки, что многие могут не понимать, что вы не можете применять шаблон дизайна управления представлением модели или любой шаблон проектирования для winforms. Netbeans также не позволяет использовать шаблоны проектирования, и он скрывает код. Если вы используете java, не используйте gui builders, введите его вручную. Я использовал оба языка и наслаждаюсь качелями больше, потому что я могу смоделировать код gui, как я хочу. Winforms не дает вам эту свободу. Также у java есть намного больше библиотек. Мне потребовался месяц, чтобы узнать, как развиваться качание на профессиональном уровне, просматривая видео удэми, которое я купил, и получи видео.