|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité de passage
![]() Inscription : mars 2012 Messages : 7 ![]() |
Bonjour !
Bon c'est assez complexe...je bloque ! Je ne sais même pas par où commencer, après avoir longtemps cherché sans vraiment arriver a quelque chose de correct (enfin même rien du tout). Je souhaiterai créer en Vb.net une sorte de Downloader/patcher de fichiers. Pas un simple patcher qui se contente de remplacer un fichier (même si c'est le rôle principal de celui-ci dans mon projet au final). Par étapes : 1 - L'utilisateur lance l'application (application qui au passage, possède déjà pas mal de fonctions autres, affichage de news, liens pratiques etc..) 2 - L'application se connecte donc à un serveur distant via une URL ou autre (je ne sais pas trop), pointant sur un dossier (possédant des sous répertoires) situé sur une machine (FTP, dédié) distant. Là, l'application vérifie si le dossier de l'utilisateur (qui est un dossier possédant des sous-répertoires) EST A JOUR. Et si ce n'est pas le cas elle télécharge les fichiers "différents" dans les bons répertoires de l'utilisateur (elle les remplace si déjà existant ou elle en ajoute). Le truc c'est que je souhaiterai aussi pouvoir avoir un contrôle facile des mises à jour. C'est à dire, pouvoir modifier un fichier à mettre a jour par l'utilisateur sur ma machine distante (serveur dédié). J'avais l'habitude avant d'utiliser une application (un patcher de jeu déjà fait) et elle fonctionnait avec une list.txt qu'elle téléchargeait chez l'utilisateur à chaque lancement. Cette liste était présente sur le serveur distant, dedans se trouvait le nom des fichiers avec leur chemin, leur poids, date. L'application téléchargeait donc ces fichiers là si ils étaient différents de ceux présents sur le serveur distant ou si c'étaient des fichiers non présent et donc à ajouter. Je viens de faire une petite image "résumée" ![]() A noté qu'en fait, les dossiers présents chez l'utilisateur sont identiques à ceux présents chez le serveur MAJ. A noté aussi que l'application ne demande pas de vérifier tous les fichiers du dossier et des sous-répertoires de l'utilisateur (10.000 dans mon cas), mais seulement ceux placé dans le dossier serveur MAJ (400 par exemple, des fichiers souvent mis a jour, et des ajouts.) Bien compliqué tout ça... Je n'ai rien trouvé de tel pour le moment sur internet, je cherche encore. Quelqu'un aurait une idée ? Je n'ai pas grand chose à l'heure actuelle, si ce n'est qu'une ProgressBar factice Merci d'avance, bonne année 2013 !! |
|
|
00
|
|
|
#2 |
|
Membre expérimenté
![]() Yves TRICHAUDTechnicien bio médical Inscription : décembre 2012 Messages : 221 ![]() |
Bonjour,
Je n'ai jamais eu à faire ce genre de chose mais je regarderais du côté de la librairie System.Net, je sais qu'il y a des fonctions Ftp et Http. A voir comment les utiliser ou si quelqu'un d'autre peut t'apporter plus de précisions.
__________________
est ton amis, MSDN est ton maître, pour le reste il y a Developpez.net. Pensez au au et
|
|
|
00
|
|
|
#3 | ||||
|
Membre actif
![]() Michel Devaux Inscription : janvier 2010 Messages : 102 ![]() |
Je ne sais si j'ai bien compris la problématique mais ça n'a pas l'air compliqué.
Le plus rapide serait de créer, sur le serveur et sur chacun des PC, un fichier texte énumérant la liste de tous les fichiers et de leur dernière mise à jour: /repertoire001/fichier001.txt|21-12-2012-10-31 /repertoire001/fichier002.txt|10-12-2012-22-58 /repertoire003/fichier001.txt|11-03-2012-07-14 etc... Le programme lit ce fichier sur le site, le compare avec celui présent sur le PC, liste les fichiers à mettre à jour. Il charge ensuite ces fichiers qui vont remplacer les anciens, il met à jour le fichier texte et c'est fini. Lecture du fichier indexant la liste de tous les fichiers : Code :
Code :
|
||||
|
|
00
|
|
|
#4 |
|
Membre habitué
![]() Administrateur systèmes et réseaux Inscription : octobre 2008 Messages : 62 ![]() |
La question qu'il faut te poser est la suivante :
Ton programme à la première diffusion sera-t-il sous forme de setup d'installation ? Car il faudra 1 moment ou à un autre que les informations de tous les fichiers de ton prog soient inscrites quelque part afin de connaitre : - primo : le chemin d'installation de ton programme - deuxio : tous les fichiers présents, leur nom, emplacement, version, hashMD5 ensuite : Ton updater sera-t-il 1 exécutable indépendant de ton main exe lorsque l'installation sur le poste client sera effectuée ? Si oui Il te faudra tout de même envisager pour ton Updater 1 système de MAJ auto (avec auto suppression et remplacement de l'exe). Il est aussi probable dans ce cas de figure que ton updater ai été codé e instance unique donc ça pourrait te donner du fil à retordre pour l'auto remplacement (pas insurmontable je te rassure car dans mon updater j'utilise ce procédé). Comme le disait mdevaux62, tu peux utiliser des fichiers textes cependant je te recommande vivement d'utiliser 1 fichier .xml unique côté serveur (suivant la config de ton projet déployé) avec les infos suivantes : - Nom de fichier - Url - Taille - Hach MD5 et si tu as 1 fichier .xml côté client il te faudra certainement rajouter "Emplacement". Pourquoi utiliser 1 fichier .xml car tu verras par la suite si tu décides de maintenir d'autres applis tu pourras le faire via ton .xml existant et éventuellement développer (comme je l'ai fais perso) 1 gestionnaire de MAJ depuis ton FTP. A+ |
|
|
00
|
|
|
#5 |
|
Invité de passage
![]() Inscription : mars 2012 Messages : 7 ![]() |
Merci à vous, j'étudie actuellement vos messages.
En fait, ce n'est pas sous forme d'installation. C'est un patcher pour mon jeu vidéo en ligne. L'utilisateur lance le patcher qui se situe dans son client (où se trouve des sous dossiers), le patch fait la mise à jour (si besoin, en tout cas il compare) et l'user a ensuite la possibilité de jouer : le bouton jouer du Patcher (qu'on pourrait appeler aussi un launcher) s'active lorsque les mises à jour sont terminées. Le clique sur ce bouton lance donc un autre exécutable = le jeu. L'utilisateur passe forcément par le patcher (launcher) pour lancer le jeu. (donc il le lance très souvent) Exemple d'un type de patcher (en l’occurrence le jeu free to play Aion pour l'exemple) |
|
|
00
|
|
|
#6 | |
|
Membre habitué
![]() Administrateur systèmes et réseaux Inscription : octobre 2008 Messages : 62 ![]() |
Citation:
- L'utilisateur le télécharge et le copie dans le même répertoire que l'exe du jeu - L'utilisateur le télécharge et lorsque l'Updater/Launcher est lancé l'user renseigne le chemin de l'exe du jeu) - L'utilisateur le télécharge et lorsque l'Updater/Launcher est lancé alors ce dernier se charge de détecter automatiquement ou se situe l'exe du jeu en passant par le registre "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall" (si toutefois le jeu d 'origine a été installé ? Ce n'est peut être pas le cas !) de la tu pourras connaitre la variable qui permettra d'identifier le reste de l'arbo du jeu afin de recenser les divers fichiers et infos. |
|
|
|
00
|
|
|
#7 |
|
Membre habitué
![]() Administrateur systèmes et réseaux Inscription : octobre 2008 Messages : 62 ![]() |
@RobinEF : Pas de nouvelles ?? As-tu des éléments de base pour ton projet suite à notre échange ??
|
|
|
00
|
Copyright © 2000-2013 - www.developpez.com