See site in english Voir le site en francais
Website skin:
home  download  forum  link  contact

Welcome, Guest. Please login or register.
Did you miss your activation email?

Login with username, password and session length

Author Topic: [C# - logiciel] GAO - Gestion des Addons pour Orbiter  (Read 5925 times)

0 Members and 1 Guest are viewing this topic.

Offline florian6973

  • Full Member
  • ***
  • Posts: 80
  • Karma: 8
13 March 2014, 11:28:21
Bonjour,

J'ai développé ces derniers temps un petit logiciel qui a pour but de rendre la gestion d'addons pour Orbiter très simple et rapide. ;) Ce logiciel bien sûr n'empêche en rien l'installation manuelle de certains addons. Il se nomme GAO (Gestion des Addons pour Orbiter).

Actuellement, GAO est assez stable mais pas complètement terminé : il peut rester quelques rares bugs :wall: ; le design de l'interface peut encore changer ; des fonctionnalités peuvent être ajoutées...

C'est une ancienne version : pour obtenir la dernière, voir la fin du message.
Pour télécharger l'exécutable (extraire l'archive puis lancer le program GAO.exe) : https://drive.google.com/file/d/0B5eGJmWOd6U2RHpZYmp1T29WQUE/edit?usp=sharing.
Pour télécharger le code source : https://drive.google.com/file/d/0B5eGJmWOd6U2eG50c3BWXzBrMDQ/edit?usp=sharing.

Si vous avez des idées de fonctionnalités, des remarques (positives ou négatives), des bugs, je suis preneur. :)

Quelques screenshots (s'ils ne s'affichent pas, vous pouvez les télécharger pour les voir) :

'Exigences' de GAO :

J'espère que ce logiciel vous sera utile !  ;)

Cordialement,

florian6973.

Mises à jour :

« Last Edit: 15 March 2014, 12:06:21 by florian6973 »

Offline SolarLiner

  • Global Moderator
  • Legend
  • *****
  • Posts: 2769
  • Country: France fr
  • Karma: 55
  • a été remercié par Le Créateur
Reply #1 - 13 March 2014, 14:07:39
Salut,
Belle initiative! Seulement, voilà quelques idées que je pourrais soumettre:
- "J'installe des addons ! Je télécharge des addons! Yay!" <- Mettre des points d'exclamation partout, c'est bien, ça fait cool et joyeux, mais je trouve ça plutôt inutile.
- Ce qui fait joyeux aussi, c'est les couleurs. Bon sang, on dirait des images que mon père montrait quand il travaillait sur Windows 3.1 ! Surtout pour une app WPF, ça fait bizzare ... Ce que je te conseille, c'est de garder ton fond blanc, et d'avoir UNE couleur dominante, "simple" (ne va pas chercher dans le mélange de couleurs), que tu applique aux boutons, et autres si tu veux. Mais une règle cependant: reste sobre! L'utilisateur n'a pas envie de se crever les yeux devant un GUI arc-en-ciel.
- .NET 4.5, sérieux? Je crois que tu peux sans mal descendre la framework à 3.0, qui est installée d'origine sur Vista (et supérieur), donc aucun téléchargement à faire.
- De plus, je n'aime pas trop WPF, du fait qu'il utilise intensivement la GPU pour rendre les fenêtres, et du fait qu'il utilise les lib DX10, WPF n'est pas compatible avec WinXP, ce qui fait que tu perds dans ce cas les moitié, voire les 3/4 de tes utilisateurs potentiels (demande ici qui à quoi comme OS pour jouer à Orbiter, 50%+ te répondront "WinXP"). Je sais que c'est pour les besoins du GUI, mais au pire, j'aurais tout laissé "par défaut" et aurais utilisé WinForms avec le style par défaut.

Maintenant, ton code m'a pas l'air mal du tout, a part ces quelques conseils que tu es tout à fait libre de ne pas suivre :
- Les notations de taille de fichiers, c'est Ko, Mo, Go, To, etc., et ça inclut aussi pour les vitesses.
- Dans tes "string.Format", tu peux directement faire string.Format("Vitesse: {0:0.00} Ko/s.", e.BytesRecieved/1024.0/sw.Elapsed.TotalSeconds); au lieu d'utiliser ToString("0.00") à chaque fois, car c'est le principal avantage d'utiliser cette fonction (par exemple: "{0:000.00}" t'écrira 003.60 ou 056.03 directement)
- Les "this" avant chaque variable utilisée, ça fait un peu "pléonasme informatique" car à moins d'avoir une anbiguité quelque part, le compilateur comprend directement que quand tu apelle PBprog.Value, c'est que tu veux changer la valeur de la ProgressBar de ta form.
- Path.Combine n'est pas nécéssaire quand tu regroupe deux chemins "ancrés dans le dur" (c'est toi qui à écrit le string directement), parce que si tu cherche la sûreté multiOS, sache que les compilateurs Microsoft ne sont réservés qu'à des build Windows, donc le char pour la séparation des dossiers dans un chemin sera toujours "\".

Voilà, c'est à peu près tout ce que j'ai à dire, sache que ce que j'ai sorti plus haut n'est pas à prendre à la lettre non plus, c'est mon appréciation personnelle de petit codeur C#. Et surtout, c'est juste à titre informatif ;)


Offline florian6973

  • Full Member
  • ***
  • Posts: 80
  • Karma: 8
Reply #2 - 13 March 2014, 14:59:48
Salut,

Merci pour toutes ces idées et conseils ! :wor:

Je vais faire une petite mise à jour avec la prise en compte de tes remarques :
- pour le .NET 4.5 : je n'utilise pas de version plus ancienne car le namespace System.IO.Compression n'est pas pris en charge. :cry:
- pour WPF : le support de WinXP se termine le 8 avril. Normalement de nombreuses personnes devraient changer d'OS. Je vais maintenant quand même réfléchir sur le choix de la bibliothèque GUI (refaire tout l'interface graphique ?).
- pour les couleurs et ! : je pense changer les couleurs ; effectivement, cela peut faire mal aux yeux. Par contre, j'aime bien le côté joyeux et cool des !. :)
- pour les notations de taille de fichiers : je vais sûrement toutes les utiliser.
- merci beaucoup ;) pour le conseil sur les string.Format : je ne savais pas.
- pour les "this" : je trouve que cela facilite la lecture (je sais tout de suite si c'est une variable locale, de la classe ou autre...).
- pour les Path.Combine : je les utilise car ils gèrent automatiquement la combinaison des chemins (si le caractère "\" a besoin d'être rajouté ou non).

Merci encore pour tout cela et pour avoir pris le temps de regarder ! ;) Si j'ai mal compris certaines choses, n'hésite pas à me le faire savoir. Et, que penses-tu du style donné par la lib Elysium au GUI ?

Post Merge: 13 March 2014, 16:07:07
Mise à jour : version 1.0.5185.28753 !

Exécutable : https://drive.google.com/file/d/0B5eGJmWOd6U2STQxY1IzMnBURkE/edit?usp=sharing.
Source : https://drive.google.com/file/d/0B5eGJmWOd6U2akNaQUZrajlKRFU/edit?usp=sharing.

« Last Edit: 13 March 2014, 16:07:07 by florian6973 »

Offline SolarLiner

  • Global Moderator
  • Legend
  • *****
  • Posts: 2769
  • Country: France fr
  • Karma: 55
  • a été remercié par Le Créateur
Reply #3 - 13 March 2014, 16:07:59
- pour le .NET 4.5 : je n'utilise pas de version plus ancienne car le namespace System.IO.Compression n'est pas pris en charge. :cry:
J'ai toujours utilisé ICSharpLib pour la gestion des archives compressées ... et je savais pas que .NET 4.5 avait une classe pour ça!

Quote
- pour WPF : le support de WinXP se termine le 8 avril. Normalement de nombreuses personnes devraient changer d'OS. Je vais maintenant quand même réfléchir sur le choix de la bibliothèque GUI (refaire tout l'interface graphique ?).
Je suis pas un grand fan des librairies graphiques, je trouve que c'est bien comme c'est par défaut, mais c'est vrai que quelques couleurs de temps en temps ce n'est que bénéfique.

Quote
- pour les couleurs et ! : je pense changer les couleurs ; effectivement, cela peut faire mal aux yeux. Par contre, j'aime bien le côté joyeux et cool des !. :)
Ca c'est de ton ressort, c'était juste une appréciation personelle.

Quote
- pour les "this" : je trouve que cela facilite la lecture (je sais tout de suite si c'est une variable locale, de la classe ou autre...).
Bah, tes variables locales sont accessible directement (this.Var == Var), et chaque variable de classes autres que la courante ne sont accessible que via la nomination de cette dernière, "c'est étudié pour!" tel la citation le dit. (MyClass.Variable ne peut être accessible que via MyClass, tu peut avoir Variable en local sans que ça pose de problème). Après, pareil, juste une appréciation perso, chacun fait ce qu'il veut sur ce point là.

Quote
- pour les Path.Combine : je les utilise car ils gèrent automatiquement la combinaison des chemins (si le caractère "\" a besoin d'être rajouté ou non).

Certes, mais Path.Combine("folder", "foo.txt") == "folder\\foo.txt" == @"folder\foo.txt";
Après je suis d'accord qu'avec des string qui pointe vers des chemins on est jamais sûr de ce que ça contient, faut laisser ça à Combine (et c'est un très bon job pour lui ;) )
Il est ici question de cycles processeur. Tu me diras, ici pour un vulgaire Combine c'est pas grand chose. Mais comme on dit, il n'y a pas de petites économies, un jour ça pourrait sauver un temps de calcul non négligeable. ;)

Et pour finir, comme j'ai dit plus haut j'aime pas tellement les lib GUI, mais ça a sont potentiel!


Offline SolarLiner

  • Global Moderator
  • Legend
  • *****
  • Posts: 2769
  • Country: France fr
  • Karma: 55
  • a été remercié par Le Créateur
Reply #4 - 13 March 2014, 16:16:50
Ahh, les couleurs dans la nouvelle version bien plus sobre et plus facile à l'oeil :)

Aussi, tu as contourné le problème que je faisais face (car j'ai aussi essayé de faire un installeur): l'agencement des dossiers dans l'archive! Certains dossiers avaient un dossier racine dans lequel étaient placés les fichiers destinés à être installés dans Orbiter. Mais je vois que tu as contourné le problème. Bien joué!


Offline florian6973

  • Full Member
  • ***
  • Posts: 80
  • Karma: 8
Reply #5 - 13 March 2014, 16:28:02
Quote
Il est ici question de cycles processeur. Tu me diras, ici pour un vulgaire Combine c'est pas grand chose. Mais comme on dit, il n'y a pas de petites économies, un jour ça pourrait sauver un temps de calcul non négligeable. ;)
Je n'avais pas pensé à cela, mais je consacrerai sûrement une version à l'optimisation de GAO. ;)

Quote
Ahh, les couleurs dans la nouvelle version bien plus sobre et plus facile à l'oeil :)
C'est totalement vrai, après avoir changé les couleurs, je me suis dit : "Qu'est ce que c'est mieux !".  ;)

Quote
Aussi, tu as contourné le problème que je faisais face (car j'ai aussi essayé de faire un installeur): l'agencement des dossiers dans l'archive! Certains dossiers avaient un dossier racine dans lequel étaient placés les fichiers destinés à être installés dans Orbiter. Mais je vois que tu as contourné le problème. Bien joué!
Merci ! ;) Si un jour tu rencontres un problème, ce sera avec joie que je t'aiderais si je le peux et si tu le veux.

Je pense travailler prochainement pour une nouvelle version qui permettra de changer la langue (en plus des corrections de bugs ou autres remarques...).


Offline SolarLiner

  • Global Moderator
  • Legend
  • *****
  • Posts: 2769
  • Country: France fr
  • Karma: 55
  • a été remercié par Le Créateur
Reply #6 - 13 March 2014, 17:15:44
La langue! Il faut penser aux petits anglophones aussi ! :blbl:


Offline Fast_toche

  • Legend
  • ******
  • Posts: 1329
  • Country: France fr
  • Karma: 34
  • Time is nothing...
Reply #7 - 13 March 2014, 22:00:49
Belle initiative j'ai un peu testé ton programme. Trés sympathique. Une bonne alternative à JSGME dédiée à notre cher simulateur. :wor:


La langue! Il faut penser aux petits anglophones aussi ! :blbl:

Dans l'autre sens aussi. ;)
Et prendre en deuxième ou troisième langue l'option français. :badfinger:



Offline florian6973

  • Full Member
  • ***
  • Posts: 80
  • Karma: 8
Reply #8 - 14 March 2014, 10:07:22
Quote
Belle initiative j'ai un peu testé ton programme. Trés sympathique. Une bonne alternative à JSGME dédiée à notre cher simulateur. :wor:
Merci !! ;) Je suis content que GAO te plaise. Si tu as des suggestions, des bugs, des remarques ou autres, n'hésite surtout pas. ;)

Post Merge: 14 March 2014, 10:18:45
Mise à jour : version 1.0.5186.17605 !

Exécutable : https://drive.google.com/file/d/0B5eGJmWOd6U2TThESFRKRERmdVk/edit?usp=sharing
Source : https://drive.google.com/file/d/0B5eGJmWOd6U2UjRZYVRBRGtORXc/edit?usp=sharing

Nouveautés : voir dans l'aide le ChangeLog !

Screenshots : (s'ils ne s'affichent pas, vous pouvez les télécharger pour les voir) :

Interface en français : https://drive.google.com/file/d/0B5eGJmWOd6U2Z29xX19nQUtRZG8/edit?usp=sharing
Interface en anglais : https://drive.google.com/file/d/0B5eGJmWOd6U2T3lVNEFQQzZ1czQ/edit?usp=sharing

J'espère que cette nouvelle version vous plaira ! ;)

Il se peut que certaines traductions en anglais soient mal traduites : si vous en voyez, ce sera avec plaisir que je les corrigerai. ;)

« Last Edit: 14 March 2014, 10:18:45 by florian6973 »

Offline Fast_toche

  • Legend
  • ******
  • Posts: 1329
  • Country: France fr
  • Karma: 34
  • Time is nothing...
Reply #9 - 14 March 2014, 23:32:32
C'est moi qui te remercie ainsi que SolarLiner qui t'as conseillé. Je ne suis pas un programmeur et j'ai beaucoup de respect pour vos talents. :top:


Offline florian6973

  • Full Member
  • ***
  • Posts: 80
  • Karma: 8
Reply #10 - 15 March 2014, 09:21:20
Quote
C'est moi qui te remercie ainsi que SolarLiner qui t'as conseillé. Je ne suis pas un programmeur et j'ai beaucoup de respect pour vos talents.
C'est très gentil  ;), et je te remercie aussi pour le temps que tu as passé à tester GAO !

Je pense, pour une prochaine version, proposer un système de commande en mode console pour les personnes qui ne souhaiteraient pas passer par l'interface graphique :). Quelles seraient pour vous les commandes les plus simples et les plus faciles à retenir et à utiliser ? Préfériez-vous des commandes traduisibles selon la langue ou des commandes 'égales' pour tous les langages ?

Exemple de plusieurs commandes pour effectuer la même tâche :
  • GAO -c load "cheminorbiter" (-c pour console, load signifierai charger un répertoire orbiter pour le gérer) ;
  • GAO console "cheminorbiter" ;
  • GAO -c -l "cheminorbiter" (-l => raccourci de load) ;
  • ... (vous pouvez en proposer)

J'espère que ces questions ne vous donneront pas trop à réfléchir. :)


Offline solfra

  • Full Member
  • ***
  • Posts: 210
  • Country: France fr
  • Karma: 15
Reply #11 - 15 March 2014, 10:00:09
Des fois, quand on installe un addon, on demande si on veux remplacer certain fichier déjà pressent. Ce serais bien de rajouter un bouton "tout remplacer" au lieu d’appuyer plusieurs fois sur "non" pour remplacer les fichier en question.


Offline florian6973

  • Full Member
  • ***
  • Posts: 80
  • Karma: 8
Reply #12 - 15 March 2014, 10:21:53
Quote
Des fois, quand on installe un addon, on demande si on veux remplacer certain fichier déjà pressent. Ce serais bien de rajouter un bouton "tout remplacer" au lieu d’appuyer plusieurs fois sur "non" pour remplacer les fichier en question.
Merci de ta remarque ! ;) J'ajouterai cette fonctionnalité à la prochaine version qui arrivera bientôt.

Post Merge: 15 March 2014, 11:54:52
Mise à jour : version 1.0.5187.21025 !

Exécutable : https://drive.google.com/file/d/0B5eGJmWOd6U2cks1SDJqV19XaWM/edit?usp=sharing
Source : https://drive.google.com/file/d/0B5eGJmWOd6U2OVdKYXhCY2Nsakk/edit?usp=sharing

Nouveautés : voir dans l'aide le ChangeLog pour plus de détails !
  • Corrections de quelques traductions (français/anglais) ;
  • Création d'un bouton 'Retenir le choix' lors de l'installation d'addon (question sur les fichiers déjà présents) ;
J'espère que cette nouvelle version vous plaira ! ;)

(Pour le système de commande, il arrivera dans une prochaine version).

« Last Edit: 15 March 2014, 11:55:08 by florian6973 »