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

WinDev Discussion :

Mise à jour automatique d'application


Sujet :

WinDev

  1. #1
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Juin 2010
    Messages
    1 359
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 1 359
    Points : 508
    Points
    508
    Par défaut Mise à jour automatique d'application
    Bonjour,

    Je souhaite intégrer une fonction de mise à jour automatique à mes applications mais j'avoue ne pas trop savoir par où commencer.

    Les applications sont installées en local, dans des petites entreprises (sans service informatique) et les manipulations doivent être le plus simple possible.

    J'ai déjà testé la possibilité de connexion et de téléchargement de fichiers depuis un serveur FTP. Cela fonctionne. Maintenant, que dois je faire ?

    Je télécharge un "exe" d'installation, je quitte l'application et je lance la mise à jour ?

    ou je télécharge uniquement les fichiers à remplacer ?

    ou Windev propose une solution pour cela ?

    Merci de votre aide

  2. #2
    Membre chevronné Avatar de Guardian
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    820
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2009
    Messages : 820
    Points : 1 810
    Points
    1 810
    Par défaut
    Les mises à jour sont gérées automatiquement par l'installation, en ce compris la mise à jour du logiciel et de la base de données si celle-ci a été modifiée (c'est bien la base qui est mise à jour pas les données évidemment)

  3. #3
    Membre régulier
    Homme Profil pro
    Gérant
    Inscrit en
    Septembre 2007
    Messages
    121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Gérant
    Secteur : Bâtiment

    Informations forums :
    Inscription : Septembre 2007
    Messages : 121
    Points : 105
    Points
    105
    Par défaut
    bonjour,

    Alors je suis actuellement en train de me renseigner sur le même point.
    Ce que je peux te dire c'est :
    - Tu peux effectivement up ton .exe vias des mises à jours automatiques.
    - CCMenu.LiveUpdate() permet de contrôler et de télécharger les mises à jours
    - Lors de la géération de ton .exe tu as la possibilité de mettre à jour ton appli par patch, coche cette option qui devrait faire gagner du temps lors des mises à jours.

    Ps : regarde ici [ame="http://www.youtube.com/watch?v=5elvN6sJrvc"]video de démonstration[/ame]

  4. #4
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Juin 2010
    Messages
    1 359
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 1 359
    Points : 508
    Points
    508
    Par défaut
    Merci de vos informations,

    Le live update ne me semble pas adapté dans la mesure où l’installation initiale doit être réalisée par Internet et mes applications sont distribuée sur support (CD ou clé USB) pour permettre l'installation sur n'importe quel ordinateur, y compris ceux qui ne sont pas connectés.

    Je souhaite donc trouver une compromis entre une installation locale et des mises à jour en ligne et automatisées.

  5. #5
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Juin 2010
    Messages
    1 359
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 1 359
    Points : 508
    Points
    508
    Par défaut
    Je pense que je vais opter pour une procédure de recherche déclenchée au démarrage de l'application (avec une option pour la désactiver).
    Un message d'info si possibilité de mise à jour.
    Si MAJ validée, chargement d'un fichier d'install et lancement de l'installation
    J'en suis à la théorie, maintenant il faut passer à la pratique

    Notamment le fait de quitter l'application "avant" de lancer la maj... je ne sais pas trop comment faire cela.

  6. #6
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Juin 2011
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2011
    Messages : 19
    Points : 34
    Points
    34
    Par défaut
    tu peux aussi faire un truc du genre.

    tu déposes tes mises à jour dans un répertoire accessible sur le web.

    dans ton appli, tu vas regarder sur le net si mise à jour il y a.
    (par ex, un bete fichier txt à lire, par ftp ou par ce que tu veux)

    si la version est différente, tu lances le téléchargement.
    et l'install suivra.

    c'est pas automatique, mais ca fera l'affaire.

  7. #7
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Juin 2010
    Messages
    1 359
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 1 359
    Points : 508
    Points
    508
    Par défaut Merci Forum-Course
    Merci de ton aide,

    C'est effectivement ce que j'avais prévu (en gros). C'est simpliste mais c'est justement ce que je cherche.

    Mais quand tu dis que "l'install suivra", ça ne peut pas être totalement automatique quand même, si ?

    Pour moi, je pensais mettre un exe d'installation et déclencher la procédure d'install, l'utilisateur faisant le reste comme pour une install initiales. Il y a moyen de faire mieux selon toi ?

  8. #8
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Juin 2010
    Messages
    1 359
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 1 359
    Points : 508
    Points
    508
    Par défaut Je progresse...
    J'en suis arrivé au moment crucial déclencher l'exe de mise à jour.
    Mais je dois aussi quitter l'application !

    comment faire à la fois l'un et l'autre ?

    PS : Pour ceux que cela intéresse, le code est à disposition

  9. #9
    Membre confirmé Avatar de jimmypage
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2006
    Messages
    314
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2006
    Messages : 314
    Points : 474
    Points
    474
    Par défaut
    Salut !

    Regarde peut etre du cote des threads dans l'aide...

  10. #10
    Membre chevronné Avatar de Guardian
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    820
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2009
    Messages : 820
    Points : 1 810
    Points
    1 810
    Par défaut
    Tu peux utiliser LanceAppli() et un batch.
    Tu peux lancer l'install dans le code de sortie de ton logiciel et relancer ton logiciel en fin d'install
    Tu peux utiliser la touche F1
    etc.

  11. #11
    Membre éclairé Avatar de J0r_x
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2006
    Messages
    804
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mai 2006
    Messages : 804
    Points : 751
    Points
    751
    Par défaut
    Au lancement de l'application, tu vérifies la version, si la version est différente, tu lances une application de mise à jour (lanceappli), puis tu fermes ton application (finprogramme).
    via le programme de mise à jour : tu vérifies que l'application n'est pas ouverte (ExeLancé), tu télécharges la mise à jour, tu installes les fichiers et tu relances l'application.

  12. #12
    Membre actif
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    136
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 136
    Points : 241
    Points
    241
    Par défaut
    Au début, j'avais la mathode de mise à jour que J0r_x mais au fil du temps mon application est devenu plus grosse (jusqu'à atteindre 20Mo avant son régime).
    Du fait du nombre de connexion au FTP (100 clients se connectant en même temps pour télécharger la mise à jour), la mise à jour prenait sur certains poste 30 minutes à s'installer et des fois le téléchargement n'était pas une réussite.

    Depuis, j'ai un peu modifier la méthode.
    Je vérifie toujours au lancement de l'application si une mise à jour est à faire et s'il y en a une alors je lance un programme qui ne fait que télécharger celle-ci. Une fois le téléchargement initié, mon application continu de fonctionner normalement (avec l'ancienne version donc).
    Lorsque mon programme annexe à terminer de télécharger la mise à jour, il en informe l'utilisateur en lui disant qu'il faudrait redémarrer son application.

    Lorsque mon application principale redémarre, elle vérifie s'il y a une mise à jour à faire (là, il n'y en a pas) et elle vérifie si une mise à jour a été téléchargée (là, c'est le cas). Elle lance donc la mise à jour et se ferme.

  13. #13
    Membre habitué
    Homme Profil pro
    Main frame, Unix, Windows, AS400
    Inscrit en
    Mars 2011
    Messages
    111
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Main frame, Unix, Windows, AS400
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2011
    Messages : 111
    Points : 171
    Points
    171
    Par défaut
    Intéressant... De mon côté, j'ai tenté d'utiliser le PUSH pour l'entreprise. Malheureusement, je note l'absence de standard sur certains postes (pas de $ADMIN)...

    Je dois alors demander à l'utilisateur de procéder à l'installation manuellement... Cela signifie qu'une bonne partie des utilisateurs ont leur première installation via le PUSH et qu'une autre doit procéder manuellement (avec un ptit guide d'utilisation simple).

    Le PUSH répond au besoin d'installation une première fois ET de contrôler l'historique des versions. Par contre, si un utilisateur est absent du réseau ou un ordinateur est déconnecté, la mise à jour n'a pas lieu... Et l'installation de versions précédentes devient ardue...

    Il reste alors à mettre en place un mécanisme de mise à jour lors du démarrage de l'application par l'utilisateur...

    On parle de Patch ici... Une patch permet-elle un retour en arrière en cas de problème ? Crois pas. Il faut donc installer la totalité de l'applic à chaque installation. Même avec un téléchargement en parallèle, on échappe pas aux délais. Le choix serait donc entre une patch et une version complète pour la question d'optimisation ?

    Côté infrastructure interne, on pourrait opter pour du terminal server avec une centralisation de l'installation... réglant ainsi tout les problèmes. Mouais... les licences à payer... $$$

    Est-ce si important de pouvoir revenir en arrière ? Considérant qu'un code doit être bien testé (unitaire + intégré).

    Quelqu'un a testé les fonctions de mise à jour de WIndev ? De mon côté, je me cogne la tête à tenter de comprendre...

  14. #14
    Membre éclairé Avatar de J0r_x
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2006
    Messages
    804
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mai 2006
    Messages : 804
    Points : 751
    Points
    751
    Par défaut
    L’intérêt de revenir en arrière est très limité, normalement lorsque l'application entre en production, celle-ci a subit un minimum de test qui exclu des gros bugs, pour les petits, il faut les corriger et renvoyer un patch.

  15. #15
    Membre régulier
    Homme Profil pro
    Gérant
    Inscrit en
    Septembre 2007
    Messages
    121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Gérant
    Secteur : Bâtiment

    Informations forums :
    Inscription : Septembre 2007
    Messages : 121
    Points : 105
    Points
    105
    Par défaut
    Très interressant ta facon de faire ErwanA,

    Pourquoi as tu fais le choix d'utiliser une autre application ? il doit sans doute être possible de télécharger et utiliser l'application simultanément ?
    J'ai le même problème que tu as rencontré, dès la mise en place d'une mise à jour, c'est la bousculade au portillon. Je pense donc utiliser ton ingénieuse méthode.

    Si tu as un ptit bout de code à échanger, je suis preneur.

  16. #16
    Membre actif
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    136
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 136
    Points : 241
    Points
    241
    Par défaut
    Citation Envoyé par Sergeras Voir le message
    Pourquoi as tu fais le choix d'utiliser une autre application ? il doit sans doute être possible de télécharger et utiliser l'application simultanément ?
    Oui, techniquement c'est possible de tout faire le téchargement de fond dans la même application en utilisant un thread mais le problème et que le téléchargement serait coupé lorsque l'utilisateur quitte l'application. C'est pourquoi avoir une application à coté avec juste un petit icone dans le systray est plus sûre (on est d'éccord, le téléchargement est coupé lorsque l'utilisateur ferme sa session mais c'est plus rare).

    Citation Envoyé par Sergeras Voir le message
    Si tu as un ptit bout de code à échanger, je suis preneur.
    Le code est assez simple. Voici grosso modo l'algo

    Sur l'application principale

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    Si MiseAJourFTPAFaire() Alors
         LanceAppliMiseAJour()
    SINON
        Si MiseAJourVersion() Alors
              LanceAppliMiseAJourNew()
              FinProgramme
        FIN
    FIN
    // LanceAppliMiseAJour() & LanceAppliMiseAJourNew() sont une même application
    L'application Mise à jour :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    Si MiseAJourFTPAFaire() Alors
          SI FTPRecupereFichier(NomFichier_TMP) ALORS
                  RENOMME NomFichier_TMP en NomFichierNew
          FIN
    SINON
        Si MiseAJourVersion() Alors
               Affiche une fenêtre de mise à jour (pour que l'utilisateur ne se pose pas de question)
               Tue NomApplication (si ce n'est déjà fait)
               RENOMME NomFichier_NEW en NomApplication
               LanceAppli (NomApplication)
               FinProgramme
        FIN
    FIN

  17. #17
    Membre régulier
    Homme Profil pro
    Gérant
    Inscrit en
    Septembre 2007
    Messages
    121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Gérant
    Secteur : Bâtiment

    Informations forums :
    Inscription : Septembre 2007
    Messages : 121
    Points : 105
    Points
    105
    Par défaut
    Bonjour ErwanA,

    Oui, techniquement c'est possible de tout faire le téchargement de fond dans la même application en utilisant un thread mais le problème et que le téléchargement serait coupé lorsque l'utilisateur quitte l'application. C'est pourquoi avoir une application à coté avec juste un petit icone dans le systray est plus sûre (on est d'éccord, le téléchargement est coupé lorsque l'utilisateur ferme sa session mais c'est plus rare).
    J'avou, c'est plus sûre ainsi.

    Merci pour le code,

Discussions similaires

  1. Mise à jour automatique d'application privée
    Par Flodelarab dans le forum Android
    Réponses: 3
    Dernier message: 18/12/2014, 15h05
  2. Réponses: 1
    Dernier message: 18/08/2013, 10h52
  3. Mise à jour automatique d'application en cours d'utilisation
    Par Népomucène dans le forum Glassfish et Payara
    Réponses: 9
    Dernier message: 16/02/2009, 11h27
  4. Réponses: 4
    Dernier message: 09/03/2007, 19h19

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