web-dev-qa-db-fra.com

Existe-t-il un bon cadre pour les applications de bureau Java?

J'ai développé de nombreuses applications de bureau dans Swing, même celles un peu plus complexes, avec l'intégration d'Hibernate et de Spring. J'ai découvert que beaucoup de choses se répètent et doivent être effectuées rapidement et de manière pratique, comme le cycle de vie des applications, la journalisation, les alertes, les autorisations, les formulaires et leur validation. J'ai commencé à chercher des cadres. J'ai rencontré Swing Application Framework, qui est mort depuis plusieurs années. Spring RCP a vraiment répondu à mes attentes. Créer des formulaires basés sur le modèle Java Bean est ce que j’ai aimé, mais j’ai réalisé qu’il était mort aussi. Netbeans RCP n'est pas pour moi, j'utilise Eclipse et je ne souhaite pas utiliser un autre IDE pour le développement de postes de travail. Je ne suis pas vraiment enthousiasmé par Eclipse RCP, j’ai le sentiment qu’il est trop orienté Eclipse, je préférerais quelque chose de bas couplé à n’importe quel outil. 

Je suis surpris de constater que le support d'applications pour le développement d'applications de bureau basées sur Java est si faible. C'est comme si Java n'était utilisé que dans l'environnement Web. Quelle est la langue préférée pour faire de telles applications alors? Et si je veux rester avec Java, y a-t-il une chance de trouver quelque chose de similaire à Spring RCP (jusqu'à présent, je ne pouvais pas le faire)?

27
user1091733

j'ai posé une question similaire il y a quelque temps, voir Swing desktop-development si vous êtes intéressé.

Ma conclusion était/est qu'il n'y a tout simplement aucun framework pouvant faire pour votre application de bureau, ce que tout le grand bazillion de WEBframeworks peut faire pour votre application web. Cela semble absurde, mais d'après mon expérience, en raison des excellents frameworks Web et de l'absence de frameworks de bureau, il est devenu beaucoup plus facile de développer une application Web. 

J'utilise Spring-RCP pour 2 projets. C'était génial, mais il est quasiment inutilisable de nos jours, parce que vous êtes obligé de sortir 2.5 avec. En outre, il "me semble" un peu lent pour moi et a vraiment besoin de beaucoup de mémoire sur les machines 64 bits, ce qui est probablement un problème Spring-Swing: https://jira.springsource.org/browse/SPR-9628

J'ai attendu le projet Valkyrie, mais il semble déjà être mort

Je pense que vous ne trouverez rien qui couvre complètement vos besoins. http://swingx.Java.net/ pourrait peut-être vous offrir quelques widgets graphiques, comme JXDatePicker. Je recommande également JGoodies Binding et JGoodies Form, les deux sont excellents. SI vous utilisez une application client-serveur, je vous recommande vivement d'utiliser Spring-Remoting (par exemple, HTTP Invoker) avec Spring-Security. Rend vraiment les choses plus simples.

J'aime développer des applications de bureau avec Swing, mais malheureusement, il faut vraiment "faire un effort supplémentaire". La communication client-serveur, la sécurité ou même la validation ne sont que quelques exemples des nombreuses choses qui semblent trop compliquées de nos jours (par rapport au webframeworks moderne). En outre, vous découvrirez peut-être qu'il n'est pas aussi facile de créer, signer et déployer automatiquement une application avec Java-Webstart comme il se doit.

Spring-RCP était l’objet le plus proche d’un framework de bureau "complet" que j’ai trouvé jusqu’à présent et qui est mort depuis des années.

Bonne chance!

7
Mario B

S'il vous plaît essayez griffon . Ceci est basé sur langage groovy et inspiré par grails framework . Il fonctionne sur JVM, le langage est très convivial pour les programmeurs Java.

Citation du site

Griffon est un framework d’application pour développer des postes de travail applications de la machine virtuelle Java, Groovy étant la langue principale de choix. Inspiré par Grails, Griffon suit la Convention sur Paradigme de configuration, associé à une architecture MVC intuitive et à une interface en ligne de commande.

.... L'architecture est très extensible.

Le framework Griffon est extensible via des plugins. Il y en a beaucoup à choisissez parmi. Par exemple, vous trouverez des plug-ins pour une tierce partie Swing des composants tels que Swingx, Jide et Macwidgets; persistance liée des plugins tels que DataSource, GSQL, Hibernate, entre autres; Graphiques 3D et le support d'animation est possible via JOGL, LWJGL et Processing. Et beaucoup plus!

11
Jayan

Cela dépend principalement de la taille de l'application. 

Pour les applications plus petites et moyennes, il est judicieux d’utiliser JavaFX 2 sans utiliser un langage différent, vous pouvez commencer par quelques-uns des didacticiels de base .

Comme vous l'avez mentionné pour les applications d'entreprise, Eclipse RCP et Netbeans RCP sont un bon choix. 

Netbeans RCP est beaucoup plus simple pour le développement, vous ne devez pas le rejeter uniquement à cause des préférences IDE. Il existe un livre gratuit = qui constitue un bon point de départ.

Il y a aussi l'option de e4 qui devrait représenter une amélioration significative pour Eclipse mais je ne peux pas dire que je l'ai déjà utilisée

Ressource utile à regarder pourrait être: 

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

Netbeans RCP vs Eclipse RCP

9
Mite Mitreski

Départ JGoodies . Non seulement l'apparence et la convivialité sont bien meilleures, elles offrent également un cadre pour la conception d'applications Swing.

Le gros problème en ce qui concerne les applications de bureau est que cela dépend vraiment de ce que vous essayez de concevoir. Contrairement aux applications Web dont la page Web-> demande-> page Web, une application de bureau peut pratiquement tout faire. Il n'y a pas de cycle standard, même pour les applications professionnelles. C'est beaucoup plus comme AJAX que de dire votre Java EE normal ou PHP webapp. Et combien de bibliothèques AJAX offrent réellement un cadre autre qu’appeler et mettre à jour des composants spécifiques. 

Vous pouvez avoir des menus, des boutons, des panneaux en cours de mise à jour, des rendus en cours d'exécution, des graphiques en train de changer, des données en cours de mise à jour, etc. 

Si vous ne cherchez que des formulaires, alors JGoodies est probablement votre meilleur choix.

4
Stephane Grenier

Je ne connais aucun framework en tant que tel, mais Netbeans fournit un assistant de glisser-déposer pour les composants Swing. Eclipse a aussi un plugin similaire mais il est basé sur le plugin Netbeans.

1
TechSpellBound

J'ai découvert que beaucoup de choses se répètent et doivent être effectuées rapidement et de manière pratique, comme le cycle de vie des applications, la journalisation, les alertes, les autorisations, les formulaires et leur validation.

Je vous conseillerais de les extraire dans votre bibliothèque "principale" personnelle, que vous pourrez partager et utiliser dans tous vos projets. Puisque vous avez déjà implémenté les choses dont vous parlez, il devrait être plus facile de les généraliser que d’étudier un tout nouveau cadre. Probablement un projet privé Maven?

Le développement se concentre sur le Web et le mobile. Nous ne devrions donc pas nous attendre à des efforts considérables de la part des fournisseurs d'infrastructure pour Desktop.

1
Ivan Nikitin