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

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

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

6 ответов

Решение

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

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

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

Я ждал Project Valkyrie, но он, кажется, уже мертв

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

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

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

Удачи!

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

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

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

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

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

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

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

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

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

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

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

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

Netbeans RCP против Eclipse RCP

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

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

У вас могут быть меню, кнопки, панели, которые обновляются, объекты отображаются на лету, меняются графики, обновляются данные и т. Д.

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

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

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

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

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

Другие вопросы по тегам