Подтвердить что ты не робот

Есть ли хорошие рамки для настольных приложений Java?

Я разработал много настольных приложений в Swing, даже те, которые немного сложнее, с интеграцией Hibernate и Spring. Я узнал, что многие вещи повторяются и должны выполняться быстро и удобно, например, жизненный цикл приложений, протоколирование, оповещения, авторизация, формы и их проверка. Я начал искать рамки. Как я понял, я встречал Swing Application Framework, который уже несколько лет мертв. Spring RCP действительно оправдал мои ожидания, особенно создание форм на основе модели Java Bean - это то, что мне понравилось, но я понял, что он тоже мертв. Netbeans RCP не для меня, я использую Eclipse, и я не хочу использовать другую среду IDE для разработки рабочего стола. Я не очень рад Eclipse RCP, у меня появилось ощущение, что он слишком ориентирован на Eclipse, я бы предпочел что-то низкое, связанное с любым инструментом, кроме того, это не так просто изучить.

Я удивлен, что существует настолько слабая поддержка для разработки настольных бизнес-приложений на Java. Он, как Java, использовался только в веб-среде. Каков предпочтительный язык для создания таких приложений? И если я хочу остаться с Java, есть ли шанс найти что-то похожее на Spring RCP (до сих пор я не мог)?

4b9b3361

Ответ 1

Я задал подобный вопрос некоторое время назад, см. Swing desktop-development, если вы заинтересованы.

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

Я использовал Spring -RCP для двух проектов. Это было здорово, но в наши дни это довольно непригодно, потому что вы застряли с ним spring 2.5. Также он "чувствует" немного медленнее для меня и действительно голоден на 64-битных машинах, что наиболее вероятно: https://jira.springsource.org/browse/SPR-9628

Я ждал проекта Valkyrie, но, похоже, уже мертв

Думаю, вы не найдете ничего, что полностью покрыло бы ваши требования. http://swingx.java.net/ может предложить вам несколько GUI-Widgets, таких как JXDatePicker. Я также рекомендую JGoodies Binding и JGoodies Form, оба отличные. ЕСЛИ вы используете клиент-серверное приложение, я настоятельно рекомендую использовать Spring -Remoting (например, HTTP Invoker) с Spring -Security. Действительно делает вещи проще.

Мне нравится разрабатывать настольные приложения с Swing, но, к несчастью, вам действительно нужно "пройти лишнюю милю". Клиент-сервер-связь, безопасность или даже валидация - всего лишь несколько примеров многих вещей, которые кажутся сложными в наши дни (по сравнению с современными webframeworks). Также вы можете узнать, что не так легко автоматически создавать, подписывать и развертывать приложение с помощью java-webstart, как и должно быть.

Spring -RCP был самым близким к "полному" рабочему столу, который я нашел до сих пор, и он был мертв годами.

Удачи!

Ответ 2

Попробуйте griffon. Это основано на groovy языке и вдохновлено grails framework. Он работает на JVM, язык очень дружелюбный для Java-программистов.

Цитата с сайта

Griffon - это платформа приложений для разработки рабочего стола приложений в JVM, причем Groovy является основным языком выбор. Вдохновленный Граалем, Гриффон следует Конвенции Парадигма конфигурации, в сочетании с интуитивной архитектурой MVC и интерфейс командной строки.

.... Архитектура очень расширяема.

Рамка Griffon расширяема через плагины. Есть много Выбери из. Например, вы найдете плагины для стороннего Swing такие компоненты, как Swingx, Jide и Macwidgets; постоянство плагины, такие как DataSource, GSQL, Hibernate и другие; 3D-графика и поддержка анимации возможна через JOGL, LWJGL и Processing. И много больше!

Ответ 3

В основном это зависит от размера приложения.

Для приложений меньшего и среднего размера имеет смысл использовать JavaFX 2, который не использует язык, отличный от другого, вы можете начать с некоторых из основных руководств.

Как вы уже упоминали для приложения уровня предприятия Eclipse RCP и Netbeans RCP - хороший выбор.

Netbeans RCP намного проще для разработки, вы не должны отклонять его только из-за настроек IDE. Существует бесплатный book, который является хорошей отправной точкой.

Существует также опция e4, которая должна быть значительным улучшением для eclipse, но я не могу сказать, что я ее еще использовал

Соответствующий ресурс, заслуживающий внимания, может быть:

http://netbeans.dzone.com/why-from-eclipse-rcp-to-netbeans-platform

Netbeans RCP vs Eclipse RCP

Ответ 4

Отъезд JGoodies. Мало того, что Look and Feel намного лучше, они также предлагают рамки для разработки приложений Swing.

Большая проблема, когда дело касается настольных приложений, заключается в том, что это действительно зависит от того, что вы пытаетесь создать. В отличие от webapps, где webpage- > request- > webpage, настольное приложение может в значительной степени что-либо сделать. Стандартного цикла нет даже для бизнес-приложений. Это гораздо больше похоже на AJAX, чем на ваш обычный Java EE или PHP webapp. И сколько библиотек AJAX фактически предлагают инфраструктуру, отличную от вызова и обновления определенных компонентов.

У вас могут быть обновлены меню, кнопки, панели, вещи, отображаемые "на лету", изменение графиков, обновление данных и т.д.

Если вы просто ищете формы, JGoodies, вероятно, лучший выбор.

Ответ 5

Я не знаю какой-либо структуры как таковой, но Netbeans предоставляет мастер перетаскивания для компонентов Swing. Eclipse также имеет похожий плагин, но он основан на плагине Netbeans.

Ответ 6

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

Я бы рекомендовал извлечь их в свою личную библиотеку "Core", которую вы можете использовать и использовать во всех своих проектах. Поскольку вы уже реализовали то, о чем говорите, их проще обобщить, чем изучить совершенно новую структуру. Возможно, частный проект Maven?

Ориентация на развитие продвигается к Web и Mobile, поэтому мы не должны ожидать каких-либо значительных усилий со стороны поставщиков рамок для рабочего стола.