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 :

Choix version Java SE + APIs Swing [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
    Avatar de sironimo
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    669
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Mai 2004
    Messages : 669
    Par défaut Choix version Java SE + APIs Swing
    Bonjour, voilà je voudrais lancer un mini-débat concernant les versions Java Se 5.0 et 6.0 ainsi que sur les différentes APIS Swing.

    Je dois réaliser un projet avec une interface graphique importante ainsi qu'une grosse base de données derrière. Je me suis tourné vers une architecture 3-tiers avec l'utilisation du design pattern M-VC pour l'interfaçage graphique ainsi que du design pattern DAO au niveau de la liaison entre la couche métier et la couche BDD avec l'utilisation d'Hibernate pour obtenir une persistance des objets mais surtout une grand modularité au niveau du type de base de données, de passer facilement d'une base de données à l'autre, ie passer de MySQL à Oracle sans rien changer aux requêtes mais juste modifier le fichier properties d'Hibernate.

    Au niveau de l'interfaçage prahique, je compte utiliser Swing que j'ai préféré à SWT. Sans rentrer dans un débat SWt/Swing, j'ai choisi Swing car SWT est natif et cela risque d'être gênant des fois suivant la plate-forme mais aussi parce que SWT n'est pas encore aussi bien fourni comparé à l'API Swing.

    Je travaille actuellement sur un Windows SP2 avec Eclipse 3.2.1 et Java SE 5.0 update 10. Pour me simplifier la conception des IHM, je comptais me tourner vers un GUI qui serait un plug-in d'Eclipse. J'ai donc testé VE (Visual Editor) et Jigloo mais pour des raisons de licence, mon choix se tournait vers VE.

    Mais je me pose de plus en plus de questions. La première est : quelle version de Java SE choisir? la 5.0 ou la 6.0? En effet, depuis que je reparcoure le forum, je me rends compte que la version 6.0 intègre pas mal de nouvelles API en standard du type JDIC, JxTable, etc...

    Donc je me demande si mon intérêt ne serait pas d'avant de commencer à programmer de faire cette migration.

    Pour Java 5.0 SE, j'ai d'abord l'habitude de l'utiliser et je ne dirais pas que je le maîtrise loin de là mais je m'en sors. Le problème vient essentiellement du fait qu'il faut rajouter pas mal de librairies supplémentaires poura arirver à ce que l'on veut.

    Pour Java 6.0 SE, ce qui me fait un peur c'est sa jeunesse. En effet, la sortie officielle ne date que de décembre 2006 me semble et j'ai peur qu'il reste encore pas mal de bugs et que cela ralentisse mon développement. Mais bon, je me dis aussi que d'un autre côté, il faudra s'y mettre un jour ou tout du moins faire une migration mais surtout il intègre pas mal d'API en standard.

    Donc voilà le premier point du débat : quelle version me conseillez-vous pour le développement?

    Enfin, venons-en au dernier point, le choix des librairies. A la base, je comptais utiliser VE mais au fil des sujets, je me suis intéresséentre autre à l'API JForm. Du coup, l'utilité de VE diminue voire disparaît si je conçois mes formulaires avec JForm.

    Donc je vous propose par l'intermédiaire de ce sujet, de donner votre avis sur les différentes librairies Swing qui peuvent être utiles. J'ai consulté évidemment le lien concernant les meilleures API graphiques sur le site APIs graphiques Java mais j'attendais surtout ici votre avis et votre opinion sur leur utilisation.

    Voilà je vous remercie d'avance d'avoir pris le temps de lire et j'espère de répondre.

  2. #2
    Membre Expert Avatar de KiLVaiDeN
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    2 878
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 2 878
    Par défaut
    Salut,

    A priori, je dirais que pour une application client lourd, il vaut mieux que tu te lances avec Java 6.

    Bien que ce soit une technologie récemment promu "officielle", il y a assez longtemps qu'elle est en phase de test. La release parait stable, et je ne pense pas que tu rencontres de gros problèmes.

    Ils conseillent un développement avec Netbeans 5.5 chez Sun. Il prend en charge Java 6, et de plus, pour ton projet en SWING, Netbeans comprend un éditeur graphique du plus haut niveau en la matière de Matisse.

    En ce qui concerne ta base de données, ton choix d'Hibernate me parait pertinent dans la mesure où il te permet de changer de base de données si le besoin se ressent, en changeant de Dialect; Cependant, attention à bien définir tes classes et le lazy loading, afin d'obtenir les performances maximales, pour ma part j'ai toujours une petite appréhension à l'utilisation d'hibernate quand mon soucis est l'optimisation de l'application, car malgré les avantages qu'une telle api fourni, tu gardes peu de contrôle sur ce qui est vraiment fait au niveau des requêtes.

    J'ai pour ma part préféré choisir un mappeur comme Ibatis, qui laisse plus le choix au développeur au niveau des requêtes. J'étais parti sur un projet par une analyse objet, puis une génération de la base via Hibernate, mais je me suis rendu compte qu'il y subsistait quelques problèmes d'optimisation, et du coup, je suis parti à l'envers : j'ai gardé mon modèle objet, j'ai crée mon propre modèle conceptuel optimisé comme je l'entendais, et j'ai fais les mappings objets/relationnels avec Ibatis. Du coup j'ai profité à la fois de mon modèle objet comme je le souhaitais, et j'ai pu tunné mes requêtes comme je l'entendais également. La gestion du cache sur Ibatis est également facile à mettre en oeuvre.

    As-tu envisagé d'utiliser un framework comme Spring ? Ca pourrait grandement aider ton développement également.

    A+

  3. #3
    Membre Expert Avatar de KiLVaiDeN
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    2 878
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 2 878
    Par défaut
    Au fait, sans vouloir entrer dans une polémique, je pense que SWT est un bon choix.

    Le coté natif n'est pas un soucis, il suffit de voir comment eclipse tourne sur tous les environnements pour avoir une preuve de la stabilité de la librairie.

    Il y a un grand gain en performance selon moi à utiliser SWT.

    Essaie de voir si ton choix sur SWING est le bon, peut-être que SWT sera plus rapide et réactif..

    A+

  4. #4
    Membre émérite Avatar de g_rare
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    608
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 608
    Par défaut
    Citation Envoyé par KiLVaiDeN
    As-tu envisagé d'utiliser un framework comme Spring ? Ca pourrait grandement aider ton développement également.
    +1

    Notamment pour l'intégration transparente d'Hibernate derrière ton DAO, ainsi que pour le respect strict de MVC avec Swing (et un minimum d'impact si changement SWT ou autre par la suite).


  5. #5
    Membre émérite
    Avatar de sironimo
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    669
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Mai 2004
    Messages : 669
    Par défaut
    Tout d'abord merci pour vos réponses.

    Ayant débuté avec JCreator puis étant passé sous Eclipse peu de temps après, il est vrai que j'ai du mal à m'en défaire peut-être à tort. Donc c'est vrai que changer d'EDI me ne tente pas trop mais s'il faut passer à NetBeans pour me simplifier la tâche.

    En ce qui concerne le choix Hibernate vs Ibatis par exemple, je ne sais pas trop en fait . Idéalement, voilà ce que je voulais : créer ma base de données moi-même à la main et ensuite utiliser Hibernate pour faire le mapping. Peut-être je prends le problème à l'envers mais c'est dans ce sens que ça m'intéressait pour des raisons de simplicité car je ne maîtrise pas du tout Hibernate et générer ma base à partir de mes classes, j'ai peur de mélanger les notions d'objet et de données.

    Ensuite, pour le framework, oui je m'étais renseigné et documenté sur Struts ou encore Spring mais je ne sais pas pourquoi dans ma tête ça s'est bloqué à : framework = J2EE

    Je sais ça peut paraître bête mais c'est vrai que si j'arrive à franchier cette barrière spirituelle alors je pourrais m'orienter vers un projet J2SE avec utilisation du framework Spring notamment la gestion du MVC moi je dis pourquoi pas et l'intégration "facile?" d'Hibernate.

    Donc vous me conseilleriez de m'orienter vers un développement J2SE 6.0 avec framework Spring sous NetBeans 5.5 ?

    Enfin, le choix SWT/Swing je savais qu'on allait en reparler

    Pour SWT et ne m'étant pas non plus énormément documenté, le principal aspect qui m'a fait pencher du côté Swing c'est l'exhaustivité de l'API Swing par rapport à celle de SWT. Vous allez alors me demander que dois-je faire avec Swing que SWT ne saurait pas faire? Je vous répondrais que je ne sais pas et que c'est pour ça que j'ai besoin de vos lumières C'est vrai que l'aspect performance est très attractif mais à quel détriment?

  6. #6
    Membre chevronné Avatar de spekal
    Inscrit en
    Mai 2005
    Messages
    502
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 502
    Par défaut
    Il me semble que le débat java 5 vs Java 6 est surtout à mettre en rapport avec l'historique d'une appli.

    Si c'est une appli neuve, je ne vois vraiment pas pourquoi il faudrait discuter entre 5 et 6 : il faut choisir 6, à moins de ne pas avoir confiance dans le développement de java, et donc il faut choisir un autre environnement que java tout court.

    Si c'est une appli déjà existante, avec des clients et des utilisateurs, la situation est plus difficile : peuvent-ils/veulent-ils passer à java 6 ?

    Pour ce qui concerne les frameworks divers et variés, mon approche est qu'il faut vraiment se poser la question de savoir à quoi ils vont servir. La réponse habituelle est Si je change un jour ma base de données ce sera plus pratique ! ou alors : Ce sera plus générique !

    Pour moi, ce genre d'argument est insuffisant ; il faut vraiment le mettre en rapport avec un usage. Ex : Un de tes utilisateurs ou client va-t-il changer de base ?... Divers clients utiliser des bases différentes ?... Si oui, alors cela risque de vouloir dire bien autre chose pour ton appli qu'une simple réflexion sur un framework, et, la plupart du temps (99,99% des fois) la meilleure solution est de dire : On prend une seule base, et on fera des interfaces d'import / export. Plus bourrin, mais autrement plus simple et efficace.

    Donc, pour répondre à ta question sur les frameworks : pour quel usage ?

  7. #7
    Membre émérite
    Avatar de sironimo
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    669
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Mai 2004
    Messages : 669
    Par défaut
    En effet, vu sous cet angle l'aspect framework n'a pas un réel usage tout du moins point de vue utilisabilité. En ce qui concerne les histoires des bases différentes, c'est un problème qui peut arriver chez les utilisateurs mais aussi en interne. En effet, il me faudrait une base Oracle pour supporter les nombreuses données quotidiennes que je vais sauvegarder. N'ayant pas encore acheté de licence ni choisi le SGBDR encore, je pensais développer sous HSQL en attendant de bien choisir la base de données définitive. C'est à ce niveau-là que j'ai choisi Hibernate.

    Pour le framework en lui-même, je ne sais pas trop quoi en penser. Le logiciel que je dois développer va devenir la clé de voûte de solutions que la société proposera par la suite. Les prochaines applications seront des plug-ins du logiciel ou alors des variantes. Le côté framework m'intéressait plus pour cela que pour la gestion du changement possible de BDD.

    Il est possible aussi que je passe complètement à côté de la notion de framework et que je confonde finalement.

    Citation Envoyé par sironimo
    Salut, je pense avoir à rencontrer le même problème. Je dois développer une application avec une base de données assez conséquante.

    En effet, il s'agit d'une base de données médicales avec donc un enregistrement par minute et par client pour analyser sa situation physique. Cela représente donc 1440 enregistrements par jour et par patient.

    ps : pour ma part, je stocke des relevés cliniques donc pas mal de valeurs à virgules.
    Voici le type de données que je vais devoir gérer.

    Honnêtement, je sais plus trop quoi penser du framework et de son utilisation

Discussions similaires

  1. API Java VNC, sans Swing ni AWT
    Par Invité dans le forum API standards et tierces
    Réponses: 2
    Dernier message: 19/11/2009, 18h49
  2. [génèral] Choix version Oracle
    Par yelkoury dans le forum Oracle
    Réponses: 4
    Dernier message: 28/02/2006, 14h59
  3. [applet] gestion des versions Java
    Par bigVinz dans le forum Applets
    Réponses: 1
    Dernier message: 09/12/2005, 15h06

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