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 :

Setup de mise à jour


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé

    Inscrit en
    Novembre 2007
    Messages
    197
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Novembre 2007
    Messages : 197
    Par défaut Setup de mise à jour
    Bonjours,

    Je n'ai pas vraiment eu le temps de faire une recherche, disons que j'ai un problème et doit être résolu rapidement. J'ai un système qui utilise une base de données Access en C# et je viens de faire une mise à jour de mon logiciel (de la version 1.0.2 à 1.0.3) et dans cette mise à jour des changements on été apporté à la base de données (de nouveau champs on été créer et d'autre champ on vu leur type être modifier). Voilà j'ai des clients qui utilise la version 1.0.1 et 1.0.2 et je ne veux pas avoir à manuellement modifier chaqu'une d'entre elle. J'aimerais donc avoir un "installateur" qui va "mettre à jour" de la version 1.0.1 à la version 1.0.3 et un autre de la version 1.0.2 à la version 1.0.3.

    Comment faire ? Connaissez-vous un bon tutorial ? Une référence quelconque serait fortement aprécié.

  2. #2
    Rédacteur
    Avatar de Nathanael Marchand
    Homme Profil pro
    Expert .Net So@t
    Inscrit en
    Octobre 2008
    Messages
    3 615
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Expert .Net So@t
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2008
    Messages : 3 615
    Par défaut
    Il faut que tout le monde installe ta version 1.0.3

  3. #3
    Membre confirmé

    Inscrit en
    Novembre 2007
    Messages
    197
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Novembre 2007
    Messages : 197
    Par défaut
    Oui il serait préférable que tout le monde passe à la version 1.0.3, plusieurs bug ont été corrigé.

  4. #4
    Membre confirmé

    Inscrit en
    Novembre 2007
    Messages
    197
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Novembre 2007
    Messages : 197
    Par défaut
    Pour vous donnez une idée de ce que je veux faire, voici les étapes que l'installateur devrait faire :

    1. Copier la base de données du client dans un dossier de backup ;
    2. Modifier la base de données du client :
      1. Ajout de la table Param avec ses champs ;
      2. Modification des types des champs de la table Activity ;
      3. Prendre les données sauvegardé dans les Settings.Default de [logiciel] et les copiers dans Param ;
    3. Tester l’intégrité de la base de données ;
    4. Supprimer les Settings.Default périmé ;
    5. Remplacer le fichier [logiciel].exe.

  5. #5
    Membre très actif Avatar de oussi
    Profil pro
    Étudiant
    Inscrit en
    Octobre 2009
    Messages
    192
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : Maroc

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

    Informations forums :
    Inscription : Octobre 2009
    Messages : 192
    Par défaut
    Salut CIFQ_Drew
    J'ai déjà chercher sur le sujet sans trouver de réponse(pas une vrai recherche quand même)
    Mais avec un petit raisonnement logique je suis arrivé à la conclusion qu'on ne peut pas modifié ou mettre à jour la structure d'une BDD juste en la remplacent par une nouvelle BDD, car on perdrait les données de cette dernière.
    J'ai du penser à une solution utilisé par le script joomla et d'autres surement, et la voici :
    vous créez une classe que vous nommerez par exemple CreateDataBase dont le rôle est de créer ou mettre à jour une BDD et ce avec des requête SQL.
    Vous pouvez aussi le faire maintenant c'est pas trop tard en utilisant ALTER mais je pense que vous le savez déjà.

    Mais faîtes attention surtout lorsque vous voulez changer le Type d'une colonne. par exemple une Varchar vers Int , etc sa peux créer des conflit et aussi les relations entre les tables .....

    En tous cas sa reste juste ma petite solution modeste. Et j'en doute que sa soit la meilleur et il doit surement exister une autre dédié à ce travail.
    Et si vous trouvez une réponse postez là

    Cordialement,

  6. #6
    Membre très actif Avatar de oussi
    Profil pro
    Étudiant
    Inscrit en
    Octobre 2009
    Messages
    192
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : Maroc

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

    Informations forums :
    Inscription : Octobre 2009
    Messages : 192
    Par défaut
    Salut,
    Pour le fichier settings ou [logiciel].exe
    Je pense qu'avec Clickonce c'est possible ou avec un projet de type Assistant d'installation en mettant à True la proriété Uninstal Older Versions si je m'en souviens bien (à tester avec précaution : assurez-vous que si vous la mettez à true la BDD ne se détachera pas aussi (même si c'est illogique) mais on sait jamais).

    Cordialement,

  7. #7
    Membre confirmé

    Inscrit en
    Novembre 2007
    Messages
    197
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Novembre 2007
    Messages : 197
    Par défaut
    Rebonjour (ou bonsoir, selon le cas),

    J'ai regardé rapidement ClickOnce et cela ne semble pas correspondre à notre situation. Nous n'avons pas encore de site Web pour permettre de fournir un portail de mise à jour. C'est du moins ce que je comprend de la doc de ClickOnce.

    Et j'ai beau regarder l'aide en ligne, les forums et tout, je ne trouve rien qui me permettent de modifier via script une base de données acces. Qu'à cela ne tiennent, je suis en train de développement mon propre système de mise à jour personnel.

    Si jamais quelqu'un connait quelque chose à ce sujet, faites-moi en part.

  8. #8
    Membre très actif Avatar de oussi
    Profil pro
    Étudiant
    Inscrit en
    Octobre 2009
    Messages
    192
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : Maroc

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

    Informations forums :
    Inscription : Octobre 2009
    Messages : 192
    Par défaut
    Salut CIFQ
    Je pense que tu m'a mal compris.
    Tu crée des requête que tu execute depuis ton application
    par exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Create Table [nom de la table]
    C'est exactement la même chose qu'une requête Select ou autres....

    je le fais tous le temps avec les bases de données SQL Server.

    Et je suis assez curieux de savoir ce que tu entend par Système de mise à jour.Au faite,j'aimerai bien connaitre ton idée si c'est possible.
    Partage tes idées avec nous.Si tu veux bien sure.

    Cordialement,

  9. #9
    Membre très actif Avatar de oussi
    Profil pro
    Étudiant
    Inscrit en
    Octobre 2009
    Messages
    192
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : Maroc

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

    Informations forums :
    Inscription : Octobre 2009
    Messages : 192
    Par défaut
    Salut,
    Voici un exemple complet pour la création d'une table dans une base de données access. Code :

    Ajouter la ligne suivante en haut :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Using System.Data.Oledb;
    Et dans un boutton par exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
     
    try
                {
                    OleDbConnection con = new OleDbConnection();//un objet connection
                    //definir la chaine de connection
                    con.ConnectionString = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=chemin\nombase.accdb";
                    //ouverture de la connection
                    con.Open();
                    //objet commande
                    OleDbCommand cmd = new OleDbCommand();
                    //texte de la commande
                    cmd.CommandText = "Create table nom_table";
                    //attribution d'une connection a l'objet commande
                    cmd.Connection = con;
                    //execution de la commande
                    cmd.ExecuteNonQuery();
                    //Message de confirmation
                    messageBox.Show("Table créer avec succès");
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message);
                }

    Et tu fais la même chose lorsque tu veux modifier par exemple une colonne dans une table ou toutes autres opération, il suffit juste d'écrire la requête adéquate.

    Voici un lien qui t'aidera beaucoup sur les requêtes SQL :
    http://cerig.efpg.inpg.fr/tutoriel/b...ees/chap18.htm

    Cordialement,

  10. #10
    Membre confirmé

    Inscrit en
    Novembre 2007
    Messages
    197
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Novembre 2007
    Messages : 197
    Par défaut
    Salut oussi,

    Pour répondre à ta question, ce que j'entends par "système de mise à jour" s'est de permettre de créer un .msi ou un setup.exe qui permet de faire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    pseudocode :
     
    if(exist(program) {
      Update();
    } else {
      Install();
    }
    En gros c'est le principale. Mon problème c'est que je n'ai pas le temps de regarder comment fonctionne le créateur d'installeur intégré à VS, je dois remettre un "updater" pour jeudi cette semaine.

    Maintenant, je dois te dire que j'ai abandonné l'utilisation de l'outil de VS pour faire mon propre "updater" qui utilise exactement les même objets que tu utilise dans ton exemple. J'ai pris un simple form, je demande le path ou ce situe le logiciel, j'effectue les étapes que j'ai dit au post #4 (sauf le rapatriement des settings.default, sa marche juste pas !) et enfin mon programme est mis à jours.

    Une fois mon code un peu plus "object oriented", je vous le partagerais avec joie! Je penses implanté un ensemble de classe orienté autour du pattern Strategy qui me permettra d'utiliser le même projet pour chacun de mes logiciels de mises à jours !

  11. #11
    Membre très actif Avatar de oussi
    Profil pro
    Étudiant
    Inscrit en
    Octobre 2009
    Messages
    192
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : Maroc

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

    Informations forums :
    Inscription : Octobre 2009
    Messages : 192
    Par défaut
    Salut CIFQ,
    ça me parait être une bonne idée le msi. Et ça nous ferra plaisir si tu le partage.

    Aller,bonne chance et à bientôt.

    @++

Discussions similaires

  1. Problème de mise à jour (projet de setup VS 2010)
    Par Pouknouki dans le forum VB.NET
    Réponses: 0
    Dernier message: 04/07/2013, 17h18
  2. Création d'un setup de mise à jour
    Par titi42 dans le forum EDI et Outils pour Java
    Réponses: 6
    Dernier message: 24/02/2010, 17h02
  3. Setup : Mise à jour Framework 3.5 SP1 systématique
    Par Thomsy92 dans le forum Windows Presentation Foundation
    Réponses: 1
    Dernier message: 25/11/2009, 21h06
  4. mise à jour de champs time (interbase)
    Par pram dans le forum XMLRAD
    Réponses: 6
    Dernier message: 04/03/2003, 10h25
  5. Réponses: 2
    Dernier message: 12/02/2003, 15h26

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