Bonjour à tous,
J'avais quasiment fini mon programme, étant déjà passé du winform au wpf avec tout à refaire quand s'est posé de nouvelles questions que je n'avais pas anticipé (joie) étant donné que c'est un hobby j'ai du mal à me tenir informé, et sur internet on trouve de tout maintenant et pas mal de messages qui datent de +10 ans.
Donc comme il est probable que je me lance dans une modification profonde de mon programme je demande des avis et indications vers quoi me tourner, car je n'ai pas envie de perdre un temps phénoménal pour arriver dans une impasse. Et je remercie d'avance ceux qui m'orienteront.
En gros le projet:
- Liste des fichiers, les dossiers de premier niveau dans des répertoires surveillés, et selon effectue des actions. C'est géré par une classe maison qui lis les infos au début, puis si nécessaire des fichiers sur partition NTFS (grace au lowindexid et highindexid), ça tourne bien, moins d'une s au début et 6/9ms à chaque boucle, ça se destine à de l'archivage et sur des fichiers de gros volume (type vidéo pro par ex). Le tout travaille avec différents modules en asynchrone.
Etat Actuel
Actuellement c'est une fenêtre qui est lancée, et je comptais fait une icone de notification dans le systray quand je vois d'un coup que... paf.. a pas sous wpf. J'ai vu qu'il y a des ruses pour le faire, mais ça m'a amené à pas mal réfléchir. Si j'ai envie de passer par un systray c'est pour prévenir une fermeture accidentelle de l'application, en prime je n'aime pas le principe de voir une application qui tourne en fond h24 dans la barre. Mais avec w10 MS semble gérer différemment....
Questions et plan
Donc j'ai gamberger et je me suis dit (corrigez moi si je me plante).
- Autant passer le gros du programme, ce qui tourne en fond, en tant que service.
- Utiliser les "toasts" si j'ai bien compris et que c'est possible, pour générer des notifications à l'utilisateur, c'est plus classe que de surveiller la fenêtre, et puis en prime ça peut être pas mal pour signifier: effacement d'un fichier, modification, ajout etc.. bref dans les options je peux mettre ce que l'utilisateur veut comme notifications du coup (sans que ça perturbe le programme qui tourne en fond bien sur).
- l'IHM / Window (en wpf.. voir en uwp*) ne se lance que pour modifier les options des bots (dans le service), ajouter des dossiers à surveillé, et gérer des macros forcées à part du service (mais qui reprend certaines classes)
Données transmises
- En gros l'avancement, temps réel s'il y a des calculs en cours (barre de progressions maison à updater), des champs textes/label à modifier. service => client
- client => service, déclencher un signal (ou autre) qu'une mise à jour de la configuration vient de se faire. (la config est sauvée dans un fichier xml, je pourrais employer d'autres moyens pour le relire, mais je préfère envoyer directement, si possible les objets)
*uwp: mais j'ai pas trop bien compris ce qu'était le second, je n'ai pas envie de vendre... au mieux proposer une donation via paypal si le projet attire, et pas envie de passer par le microsoft store etc.. ça sera en opensource).
Et du coup je me dis que si je vais dans ce système avec deux à trois projets dissociés, il faut que j'utilise un dialogue entre tout ça.. .donc j'avais bossé sur une appli internet (en standby hélas) avec de l'écoute de port (socket donc) en asynchrone, mais à la base cette application n'a pas vraiment de raison d'utiliser le net... a part si je veux faire tourner le service sur un nas tournant sous windows, et gérer l'interface à distance... mais ça me parait pas pour le moment spécialement utile. Donc en fouinant j'ai peut être trouvé, si j'ai bien compris, qu'on pouvait le faire en WCF... Donc est ce que c'est bien utile de passer par ça pour un dialogue local entre un service et une fenêtre ? (ne pas développer un dinosaure pour faire le boulot d'une souris en fait). Et également j'ai trouvé sur un forum de dév anglais que WCF était mort... et enfin peut être existe t'il un truc plus récent ?
Bref merci si vous avez eu le courage de lire jusqu'au bout, et doublement merci si vous pouvez m'aiguiller.
Cordialement.
Partager