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

C# Discussion :

Bonne manière de developper des interfaces graphiques.


Sujet :

C#

  1. #1
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2019
    Messages
    173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Aube (Champagne Ardenne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2019
    Messages : 173
    Points : 67
    Points
    67
    Par défaut Bonne manière de developper des interfaces graphiques.
    Bonjour,

    Je suis actuellement en train de développer une interface graphique pour interroger,modifier, etc (vous connaissez la musique) dans une base de données.
    Actuellement mon programme winform est assez lourd, j'ai pas mal de gridview pour voir les différents éléments de la base etc, au niveau du code c'est lourd aussi car beaucoup d'élements graphiques impliquent beaucoup de méthodes dans le programme.
    De plus lorsque on veut gérer les différents scénarios il faut être sur de ne pas oublier de rendre invisible certains panels etc....
    Tout ça pour dire que ça peut vite devenir le foutoir.

    Ma question c'est est ce qu'il existe des méthodes de travailles permettant de faire quelque chose de propre, surtout lorsque l'on doit ajouter de nouveaux éléments pour plus tard.
    Voilà merci d'avance et bonne journée.

  2. #2
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 150
    Points : 25 066
    Points
    25 066
    Par défaut
    faire des usercontrols peut être
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  3. #3
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2019
    Messages
    173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Aube (Champagne Ardenne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2019
    Messages : 173
    Points : 67
    Points
    67
    Par défaut
    Des users control me permettraient de mieux gérer les différentes parties à afficher ?
    Car je n'ai pas besoin d'afficher plusieurs fois les mêmes controles je cherche juste une manière d'avoir un code clair et des méthodes pour gérer les différents éléments à afficher en fonctions des actions de l'utilisateur.

  4. #4
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 150
    Points : 25 066
    Points
    25 066
    Par défaut
    Après tu décris pas trop ce que tu as non plus...
    Et un usercontrol même s'il n'est utilisé qu'à un endroit permet de séparer du code et donc de faciliter la maintenance.

    Si tu veux faire moins de code il faut factoriser, afficher une liste de client ou une liste de facture y a une requête de différence, et modifier un client ou une facture c'est modifier un ensemble de propriété qui ont une gestion différente en fonction du type de données.
    Donc au lieu de coder 80 écrans on peut coder une quinzaine de types à gérer.
    Potentiellement une fois qu'on a réfléchit et codé les bases on peut faire un écran d'affichage et la gestion des modifications en 20 lignes de code. Donc en faire 80 ça va vite.
    (L'autre avantage c'est que ca repose tout sur le même code donc y a moins de bugs)

    Automatiser est aussi une solution, quand on utilise des requetes, le datareader permet d'obtenir la liste des colonnes dans un select, leur type etc...
    la reflection permet d'analyser une classe au runtime, et donc de trouver la liste des propriétés et leur type, on peut aussi faire des attributs pour définir des comportements, et une fois le moteur codé on a juste à mettre des attributes du type [obligatoire], [numeric(min = 0, max =30)] et le moteur analyse ca pour créer l'interface et gérer la validation

    pour moi écrire à longueur de journée des if (txtnom.text = "") return false c'est pas vraiment ce qu'il y a de plus intéressant

    et sinon y a wpf qui une fois qu'on l'a compris demande souvent moins de code par rapport à winform, après quand on est sur une grosse appli historique c'est pas évident de trouver une utilité économique à perdre du temps pour migrer
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  5. #5
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2019
    Messages
    173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Aube (Champagne Ardenne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2019
    Messages : 173
    Points : 67
    Points
    67
    Par défaut
    Citation Envoyé par Pol63 Voir le message
    Après tu décris pas trop ce que tu as non plus...


    pour moi écrire à longueur de journée des if (txtnom.text = "") return false c'est pas vraiment ce qu'il y a de plus intéressant
    C'est justement là que je veux en venir, quand tu as plein d'événement de click bouton que dans chacun de ces événement il faut dire, faire disparaitre ça,ça,ça et ça.
    C'est super lourd au niveau du code.

    Pour ce qui est de WPF je n'ai pas bien saisie tout ce qui était MVVM il faudrait que je creuse plus de ce côté là, si j'ai bien compris la philosophie c'est que l'interface est à l'écoute des données (databinding) ?

  6. #6
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 150
    Points : 25 066
    Points
    25 066
    Par défaut
    oui entre autre, ca permet de mieux différencier le code de l'interface du reste du code
    l'interface ne se fait plus en posant des controles, mais en écrivant du XAML (syntaxe xml), et en théorie en c# on écrit plus telcontrol.tellepropriété = ca (enfin on essaye d'éviter)
    pour la visibilité ca serait dire en XAML que la visibilité de tel control dépend de la valeur de telle(s) propriété(s) de tel(s) control(s), et les propriétés notifient de leur changement, donc c'est automatique (les listbox et autres sont aussi à l'écoute de changement de collection, donc plus besoin de faire listbox.items.add non plus par exemple)
    mais il faut du temps pour appréhender le monstre et devenir plus productif qu'en winform

    mais wpf n'est qu'un Framework graphique, j'ai vu des gens taper des millions de lignes de XAML et de c# qui se ressemblent comme ils l'auraient fait en winform
    et les solutions techniques pour éviter tout ca en winform ne sont pas forcément les même en wpf, wpf est vraiment différent de winform

    après je vois que t'es étudiant, maitriser tout ca prend du temps, et si on veut taper moins de code et du code plus intéressant il faut être assez pointu techniquement, donc là aussi faut un peu de temps pour progresser
    (d'un autre côté en étant étudiant c'est bien le moment de potasser et t'as le temps ^^)
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  7. #7
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2019
    Messages
    173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Aube (Champagne Ardenne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2019
    Messages : 173
    Points : 67
    Points
    67
    Par défaut
    Oui je vois bien la chose, j'avais essayé de m'attaquer à tout ce qui était MVVM qui semble être les nouvelles normes de développement en entreprises, mais comme vous dîtes c'est un gros morceau...
    Pour l'instant je finis mon projet et je verrais par la suite à m'initier au WPF, databinding, MVVM etc...

  8. #8
    Expert confirmé

    Homme Profil pro
    Responsable déploiement (SCCM, InTune, GPO)
    Inscrit en
    Juillet 2014
    Messages
    3 177
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Responsable déploiement (SCCM, InTune, GPO)
    Secteur : Transports

    Informations forums :
    Inscription : Juillet 2014
    Messages : 3 177
    Points : 5 738
    Points
    5 738
    Par défaut
    au niveau du code c'est lourd aussi car beaucoup d'élements graphiques impliquent beaucoup de méthodes dans le programme
    Pol63 : Si tu veux faire moins de code il faut factoriser
    Je suis d'accord.


    mon programme winform est assez lourd, j'ai pas mal de gridview
    Les DataGridView s’optimise, si tu va assez loin il faut te pencher sur l’événement CellValueNeeded


    j'ai pas mal de gridview pour voir les différents éléments de la base
    Est t'on obliger de voir toute la base en une seule fois ?
    Peut être se contenter d'un seul DataGridView, et un choix de vue


    beaucoup d'élements graphiques impliquent beaucoup de méthodes
    C'est à dire ?

  9. #9
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2019
    Messages
    173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Aube (Champagne Ardenne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2019
    Messages : 173
    Points : 67
    Points
    67
    Par défaut
    Bonjour,

    Je ne comprends pas ce que vous entendez par "factoriser", auriez vous une source ?

    Pour ce qui est des éléments graphiques, je voulais dire que si j'ai 10 boutons sur ma form j'aurais 10 méthodes bouton[i]_click(...), et ça pour chaque éléments.
    Si on a des tabcontrol avec différents contrôles qui apparaissent,, on se retrouve vite avec beaucoup de méthode click,indexchanged etc.

    En ce moment je fait une interface graphique pour modifier des éléments dans ma base, donc j'ai fais un tabcontrol avec différents onglets, mais ensuite il y a différents panels pour les ajouts suppression etc.

  10. #10
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 150
    Points : 25 066
    Points
    25 066
    Par défaut
    le tabcontrol c'est le truc qui nécessite des usercontrols
    pour chaque tabpage tu fais un UC et tu le poses dans le tabpage
    sinon tu te retrouves avec une fenetre qui gère plein de choses, et ca c'est le truc à éviter, une classe (car une form est avant tout une classe) ne doit faire qu'une chose
    tout mélanger n'aide pas à s'y retrouver


    concernant la factorisation c'est le même principe qu'en maths ou (5x3) + (5x8) peut se factoriser en 5 x (3+8)
    5 n'apparait plus qu'une fois
    dans le code ca peut s'appliquer partout, perso dès que je vois 2 lignes/bouts de code qui se ressemblent je regarde s'il y un paramètre qui permettrait de ne l'écrire qu'une fois en fournissant ce paramètre
    si c'est entre plusieurs UC/forms qu'un truc serait utile on met ca en static dans une lib

    concernant l'accès aux données (avant l'utilisation massive d'EF certes) plein de débutants se retrouvaient dans plein de méthode avec 15 lignes de code pour ouvrir la connexion, définir la requete, exécuter la requete etc...
    là on fait une classe qui gère l'accès aux données à laquelle on peut spécifier une chaine de connexion, une requete etc... (propriétés) et du coup ca réduit à une ligne ou deux pour exécuter une requête
    par la même le code métier devient plus clair en faisant abstraction de l'aspect technique (d'une lecture ou d'un enregistrement ici)
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  11. #11
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2019
    Messages
    173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Aube (Champagne Ardenne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2019
    Messages : 173
    Points : 67
    Points
    67
    Par défaut
    le tabcontrol c'est le truc qui nécessite des usercontrols
    pour chaque tabpage tu fais un UC et tu le poses dans le tabpage
    sinon tu te retrouves avec une fenetre qui gère plein de choses, et ca c'est le truc à éviter, une classe (car une form est avant tout une classe) ne doit faire qu'une chose
    tout mélanger n'aide pas à s'y retrouver
    Je vais essayer de creuser du côté des UC, je n'en ai jamais fait.


    concernant l'accès aux données (avant l'utilisation massive d'EF certes) plein de débutants se retrouvaient dans plein de méthode avec 15 lignes de code pour ouvrir la connexion, définir la requete, exécuter la requete etc...
    là on fait une classe qui gère l'accès aux données à laquelle on peut spécifier une chaine de connexion, une requete etc... (propriétés) et du coup ca réduit à une ligne ou deux pour exécuter une requête
    par la même le code métier devient plus clair en faisant abstraction de l'aspect technique (d'une lecture ou d'un enregistrement ici)
    Si je te suis tu ferais, deux méthodes, une qui exécute des Insert, UPDATE etc et qui retournerait le nombre de lignes modifiées ou un booléen pour être sur qu'elle se soit bien déroulée.
    Et une méthode générale pour tout ce qui est SELECT et qui retourneraient un datatable ou un reader ?

  12. #12
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 150
    Points : 25 066
    Points
    25 066
    Par défaut
    Citation Envoyé par LecGaël Voir le message
    Je vais essayer de creuser du côté des UC, je n'en ai jamais fait.
    dans vs faire un form ou faire un uc c'est pareil, t'as une vue du design, tu poses des trucs dessus et tu mets du code
    la différence est qu'un form tu l'instancies et tu fais .show et un uc tu le poses sur quelque chose (= instancier + Controls.Add)


    Citation Envoyé par LecGaël Voir le message
    Si je te suis tu ferais, deux méthodes, une qui exécute des Insert, UPDATE etc et qui retournerait le nombre de lignes modifiées ou un booléen pour être sur qu'elle se soit bien déroulée.
    Et une méthode générale pour tout ce qui est SELECT et qui retourneraient un datatable ou un reader ?
    le nombre de lignes modifiées je suis pas fan, c'est pas toujours fiable
    après insert/update/delete c'est la même chose, ca peut n'etre qu'une méthode (c'est le cas dans le Framework avec ExecuteNonQuery) et qui retourne un booléen si ca s'est bien passé
    pour le select oui soit retourner le reader, soit un datatable, soit autre chose
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  13. #13
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2019
    Messages
    173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Aube (Champagne Ardenne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2019
    Messages : 173
    Points : 67
    Points
    67
    Par défaut
    D'accord, en l'occurrence j'avais déja dissocié deux méthodes, qui retournait un reader, mais est ce que retourner un reader ne comporte pas des risque sachant qu'il ne faut pas oublier de le ".Close()" ? ou alors peut on utiliser using(methode (return reader)){ .....} ?

    Donc un UC, je fais comme avec une forme, je code le comportement de la fenêtre en quelque sorte ?
    Et si je veux mettre un DGV dedans, quand je serais dans le code de ma form après ma requête, il faudra écrire uc.dgv.datasource = dataTable(reader) ?

  14. #14
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 150
    Points : 25 066
    Points
    25 066
    Par défaut
    les uc pour tabcontrol (ou autre menu) doivent être autonomes
    la fenetre ayant un tabcontrol n'aura donc pas de code du tout, le uc se débrouillera pour récupérer ses données lui même (tout comme une fenetre le ferait)
    la fenetre peut quand même avoir un peu de code pour gérer le tabcontrol, parfois on veut que quand on change d'onglet celui ci soit rafraichit, auquel cas c'est bien la fenetre qui va dire au uc hébergé de se rafraichir (pour ca une interface avec une méthode refreshdata permet aussi de gérér ca en une ligne de code peu importe le nombre de tabpages)

    pour un uc normal (genre regroupement d'un label, un textbox etc...) on accède pas à ses sous controle normalement, il est fait pour être un peu autonome
    on peut par contre lui rajouter des propriétés comme datatable DataToShow {get;set;} et dans le set on renvoi ce qu'on recoit vers le datagridview hébergé


    retourner un reader c'est bien et pas bien à la fois
    le retourner permet que l'appelant peut traiter les données au fur et à mesure de la lecture, ce qui est parfois une bonne idée, mais pas toujours non plus
    retourner juste les données (datatable ou autre) permet de s'assurer du .close et de verrouiller moins longtemps les données (et aussi de ne pas laisser l'appelant utiliser un objet sql) (perso je suis sur cette solution)


    après sur une classe d'accès aux données il faut penser à plein de choses pour avoir une converture assez complète, comme une propriété parameters qui permet de gérer les requetes paramétrées, des méthodes pour les transactions etc...
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  15. #15
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2019
    Messages
    173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Aube (Champagne Ardenne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2019
    Messages : 173
    Points : 67
    Points
    67
    Par défaut
    Auriez vous des sources, des exemples de codes pour de tels UC ?

  16. #16
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 150
    Points : 25 066
    Points
    25 066
    Par défaut
    Tels quoi ?
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  17. #17
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2019
    Messages
    173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Aube (Champagne Ardenne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2019
    Messages : 173
    Points : 67
    Points
    67
    Par défaut
    Des User control avec des datagridview ?

  18. #18
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 150
    Points : 25 066
    Points
    25 066
    Par défaut
    Si tu sais faire un form avec un dgv tu sais faire un uc avec un dgv, comme dit précédemment c'est pareil
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  19. #19
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2019
    Messages
    173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Aube (Champagne Ardenne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2019
    Messages : 173
    Points : 67
    Points
    67
    Par défaut
    Très bien je vais essayer de développer ça, je vous tiendrais au courant

  20. #20
    Expert éminent
    Avatar de StringBuilder
    Homme Profil pro
    Chef de projets
    Inscrit en
    Février 2010
    Messages
    4 146
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de projets
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2010
    Messages : 4 146
    Points : 7 388
    Points
    7 388
    Billets dans le blog
    1
    Par défaut
    Personnellement, je préfère passer par des objets métier plutôt que des DataTable.
    Ensuite, rien n'empêche ces objets métiers d'utiliser et exposer un DataTable, mais l'avantage c'est que tout le code "métier" sera géré au niveau de l'objet et non dans l'UC.

    Ainsi, quand on affiche un écran de commande, qui expose un premier datatable avec juste la ligne de commande, et un datatable avec un get;set; pour les lignes, un autres pour les livraison, etc.

    Et lors du premier appel du get d'un datatable, vous lancer le chargement effectif des données.
    Dans votre code, vous appelez une seule fois la commande, et lors de l'affichage du tabcontrol qui contient les lignes, vous n'avez qu'à appeler commande.lignes sans vous poser la question de comment les récupérer.
    On ne jouit bien que de ce qu’on partage.

Discussions similaires

  1. Réponses: 0
    Dernier message: 27/04/2006, 13h00
  2. Pluggin pour créer des interfaces graphiques en java
    Par achiou59 dans le forum Eclipse Java
    Réponses: 3
    Dernier message: 02/04/2006, 16h55
  3. [Debutant] Fixer la taille d'une interface graphique
    Par etiennegaloup dans le forum AWT/Swing
    Réponses: 9
    Dernier message: 25/02/2006, 13h03
  4. [JUnit] Les tests sur des interfaces graphiques
    Par adilo dans le forum Tests et Performance
    Réponses: 5
    Dernier message: 01/02/2006, 15h27
  5. Outil pour créer des interfaces graphiques
    Par Cyborg289 dans le forum Interfaces Graphiques en Java
    Réponses: 10
    Dernier message: 11/07/2005, 17h48

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