IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

AWT/Swing Java Discussion :

Comparatif swing/eclipse RCP pour faire du client lourd [Débat]


Sujet :

AWT/Swing Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre émérite

    Inscrit en
    Décembre 2004
    Messages
    584
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 584
    Par défaut Comparatif swing/eclipse RCP pour faire du client lourd
    Bonjour

    Je me pose en ce moment la question suivante "quels sont les avantages et inconvénients respectifs d'eclipse rcp et swing en vue de faire du client lourd" ?

    Pour eclipse RCP, je vois :
    en + :
    # mécanisme de mise à jour
    # environnement préconstruit
    # communauté active
    en - :
    # SWT : pb du look sur différents os
    Pour swing je vois :
    en + :
    # portabilité
    en - :
    # tout à faire, pas de réutilisation possible

    Qu'en dites vous ? Comment compléteriez vous cette liste ?

    Merci d'avance
    ZedroS

  2. #2
    Expert confirmé
    Avatar de sinok
    Profil pro
    Inscrit en
    Août 2004
    Messages
    8 765
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Par défaut
    Pour swing:

    Tout refaire c'est un peu limite quand tu vois le nombre de composants, de framework dispo sur le net rien que pour en citer deux gros:
    • Swinglabs (en fait un regroupement de plusieurs projets dont swingx, JDIC...)
    • l2fprod commons qui n'est pas mal dans son style

    Sinon tu peux parfaitement faire du RCP en swing:

    http://spring-rich-c.sourceforge.net/

    Niveau communauté swing n'est pas dépourvu non plus, de loin pas...


    Sinon vis à vis de SWT un petit désavantage à rajouter: la gestion manuelle de la mémoire... Au revoir garbage collector

  3. #3
    Rédacteur
    Avatar de lunatix
    Homme Profil pro
    Architecte technique
    Inscrit en
    Novembre 2002
    Messages
    1 960
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Architecte technique

    Informations forums :
    Inscription : Novembre 2002
    Messages : 1 960
    Par défaut
    tu peux aussi utiliser netbeans platform (un equivalent de eclipse rcp)
    tu as de nombreux tutoriels ici http://platform.netbeans.org/tutorials/index.html

  4. #4
    Membre émérite

    Inscrit en
    Décembre 2004
    Messages
    584
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 584
    Par défaut
    Merci pour vos réponses.

    En gros, si je récapitule, il y d'abord le choix entre SWT et Swing à faire, puis à regarder en détail les plates formes RCP à choisir.

    Du coup, pour (tenter de) rendre intelligilible tout cela, j'ai fait ça :
    1 - comparatif des bibliothèques de GUI en Java:

    1.1 Swing
    + portable
    + purement java
    + fort soutien de Sun
    + communauté importante (le sous forum dédié à 4148 discussions)
    - a connu des problèmes de lenteur (?) : sont ils vraiment résolus, notamment par rapport à SWT ?

    1.2 SWT
    + fort soutien d'ibm
    + à la mode (me semble t il)
    = portabilité "moyenne" réalisée via des implémentations systèmes
    - pas de garbage collector : risques mémoire

    2 - comparitif des widgets inclus de base et ceux disponibles par ailleurs

    2.1 widgets inclus dans Swing
    TODO

    2.2 widgets additionnels à Swing

    2.2.A swinglabs (http://swinglabs.org/)

    Swinglabs regroupe plusieurs sous projets, voyons les plus significatifs (à priori).

    2.2.A.1 SwingX

    Ensemble de composants : fenêtre de login, astuce du jour, liste de choix avec auto complétion, calendrier, panneau avec bloc

    (TaskPane), pour les autres composant le manque de doc fait que j'ai du mal à en comprendre l'intérêt
    + beau ?
    + ??
    - manque de documentation
    - ??

    2.2.A.2 SwingWorker

    Résoud la problématique du lancement de tâches dont le temps d'exécution est long. Sans Swingworker ces tâches font que

    l'application ne répond plus.
    + utile
    + ??
    - problème spécifique à Swing ??

    2.2.A.3 JDIC

    Ensemble d'outils pour déployer et intégrer du java sur un bureau, notamment : intégrer le navigateur web natif, lancer des

    applications de la machine, intégrer l'application dans la barre des tâches, faire des installer JNLP (pour Java Web Start)
    + à priori plein de bones choses
    + ??
    - ??

    2.2.A.4 Wizard

    Bibliothèque permettant de réaliser aisément des wizards.
    + ??
    - petite communauté (peu de mails sur la mailing list developpeurs)

    2.2.B l2fprod

    TODO

    2.3 widgets inclus dans Swt

    TODO

    2.4 widgets addtionels à Swt

    ??

    3 - les RCP eux mêmes

    3.1 Netbeans RCP
    TODO

    3.2 Eclipe RCP
    TODO

    3.3 Spring Rich Client
    + communauté non négligeable (1,005 posts sur le forum utilisateurs avec de nombreuses réponses, environ 130 mails/mois sur la mailing list developpeurs)
    + ??
    - seulement en alpha
    - pas de gui, tout dans le code
    - peu de doc
    - ??
    J'avoue ne pas avoir fini, mais je pense vraiment continuer.

    Autres points : toutes les remarques sont les bienvenues. Comme vous pouvez le voir j'ai tenté d'intégrer vos réponses et de les creuser.

    Par ailleurs, je me pose la question de l'intégration de 3D dans ces différents RCP : avez vous des pistes/idées sur le sujet ?

    Encore merci

    ZedroS

  5. #5
    Membre émérite
    Avatar de divxdede
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    525
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Avril 2004
    Messages : 525
    Par défaut
    Pour un petit projet personnel je me suis basé sur Netbeans RCP
    Justement pour être capable d'evaluer la plateforme.

    cf: http://www.jprintcover.com

    Si tu as des questions (pas trop compliqué) sur la plateforme pour ton comparatif, n'hezite pas.

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    77
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 77
    Par défaut
    Salut,

    J'ai bossé pendant 1 an sur un projet utilisant Eclipse RCP et y a du pour et du contre :
    - La modularité étant le maitre mot, il convient de bien penser son architecture de plugins, les interractions sont complexes à gérer et non débuggé par Eclipse (au format xml). Le nommage doit être d'une cohérence sans faille.
    - Les fonctionnalités (mises à jour, préférences, worskpace, vue, aide, éditeurs ...) directement disponibles sont très utiles et plutot bien pensées.
    - La doc en français est quasi inexistante dès lors qu'on rentre dans les détails, tout est en anglais et pas toujours évident à trouver.
    - Le code source d'Eclipse que l'on parcourt nécessairement lorsque l'on fait une appli RCP (pour voir comment ils font tel truc) n'est pas documenté et pas facile à suivre.
    - notre entreprise avait apprécier la qualité graphique et ergonomique des résultats
    - développement rapide de certaines fonctionnalités complexes (tableaux, arbres, tris, recherche, complétion ...
    - Malgré ce qu'on pensait (jar de SWT différents selon les plateform), on avait eu certaines supprises suivant les OS, la présentation était parfois mal faite sous Windows ou sous Linux.

    Voilà une idée générale.

  7. #7
    Expert éminent
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Billets dans le blog
    1
    Par défaut
    Salut,


    Citation Envoyé par ZedroS
    - a connu des problèmes de lenteur (?) : sont ils vraiment résolus, notamment par rapport à SWT ?
    Les performances de Swing se sont nettement améliorer depuis Java 1.2. De plus la plupart de ces "problèmes" venait du fameux bugs des carré gris, causé à cause d'une mauvaise gestion des threads...


    Citation Envoyé par ZedroS
    2.2.A.2 SwingWorker

    Résoud la problématique du lancement de tâches dont le temps d'exécution est long. Sans Swingworker ces tâches font que

    l'application ne répond plus.
    + utile
    + ??
    - problème spécifique à Swing ??
    Ce n'est pas un problème spécifique à Swing !
    La plupart des API graphique sont mono-thread, et implique donc deux choses :
    • l'utilisation de thread séparé pour les tâche de fond.
    • l'utilisation du thread qui gère l'UI pour mettre à jour l'affichage.


    C'est la même chose pour SWT d'ailleur, et les méthodes asyncExec() et syncExec() de la classe Display de SWT correspondent aux invokeLater() et invokeAndWait() de la classe SwingUtilities...

    Il me semble d'ailleur que SWT est encore plus sévère en provoquant une exception si on modifie l'UI depuis un mauvais thread...

    Sinon pour SwingWorker je rajouterais :
    + En standard dans Java 6
    + Simplifie grandement la gestion des threads.


    Enfin pour JDIC, il faut quand même rajouter ceci :
    + Certaine fonctions (ouverture du navigateur/client email, ouverture des fichiers avec le programme associé, intégration dans la barre des tâche) sont déjà intégré dans Java 6 en standard !
    - La portabilité n'est pas parfaite, notamment sous Mac


    Citation Envoyé par Jense
    L'autre avantage de SWT (pour moi), c'est justement qu'il s'adapte au look&feel de l'OS.
    Swing peut également s'adapter au Look de l'OS en utilisant le LookAndFeel système. Il suffit de rajouter une ligne de code (5avec le try/catch qui va avec) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    		try {
    			UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
    		} catch (Exception e) {
    			// IGNORED !
    		}
    a++

  8. #8
    Membre émérite
    Avatar de n!co
    Profil pro
    Inscrit en
    Février 2004
    Messages
    831
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 831
    Par défaut
    J'ai aussi du faire ce choix pour l'application que je développe.

    Pour rajouter un petit arguement au débat, si tu veux faire un peu mumuse avec tes composants graphiques, c'est imposible avec SWT. Il n'y a pas de notion d'héritage juste de la composition de plusieurs composants.

  9. #9
    Membre averti

    Profil pro
    Inscrit en
    Juillet 2011
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2011
    Messages : 7
    Par défaut réflection
    Les clients RCP offrent des applications presque complètes, à personnaliser pour obtenir sa propre application.
    C'est une bonne approche mais il existe une autre approche consistant à générer et à personnaliser via la réflection un prototype d'application (voir ReflectionUI).

Discussions similaires

  1. Devrait-on faire un client lourd en Java ?
    Par hugo123 dans le forum Interfaces Graphiques en Java
    Réponses: 47
    Dernier message: 13/04/2021, 09h32
  2. Réponses: 4
    Dernier message: 09/12/2005, 15h48
  3. Réponses: 5
    Dernier message: 24/09/2005, 20h31
  4. Que choisir pour faire un Client/Serveur
    Par Crayon dans le forum Composants VCL
    Réponses: 5
    Dernier message: 10/04/2005, 17h43
  5. Réponses: 9
    Dernier message: 24/05/2003, 10h25

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo