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

Dreamshield Discussion :

[Features] Ce qui serait bien dans DreamShield [Fait]


Sujet :

Dreamshield

  1. #1
    Rédacteur
    Avatar de dev01
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    2 451
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 2 451
    Points : 6 017
    Points
    6 017
    Par défaut [Features] Ce qui serait bien dans DreamShield
    Bon je suis entrain de tester dreamshield en "environement pro" et voici ce que j'ai remarqué à l'issu de la génération du setup de la version beta de mon programme.

    Pour commencer je vous décrit le projet histoire que tout le monde comprenne le but .
    Le projet à déployer est une application .NET 3.5, fonctionnant sur le principe des Addins (plugins pour certain ). Elle utilise intensivement ce principe et chaque addin est une fonctionnalité. De plus il y a ( forcément ) une connexion à une base de donnée.

    Pour commencer, je doit dire que Dreamshield est vraiment très très sympas. ceci étant dit, faisons avancer la chose et passons aux critiques négatives :
    A mon sens il manque :
    • Possiblité de choisir le FX de bootsrap (avec la version 2.0 au minimun pour DS il va de soit)
    • Possibilité de modifier le fichier de configuration de l'application déployé afin de personnaliser les valeurs avec par exemple encore, le chemin d'installation de l'application (les variables d'env de DS)


    en gros ce sont les deux grosses features qui serait très très utile à toute personne voulant déployer une application d'une taille "honorable" .

    Encore un gros gros bravo pour ce programme qui tiens toutes ses promesses
    - MVP C#
    -Tout problème a une solution, le vrai problème est de trouver la solution .....
    - Linux & mono : l'avenir

  2. #2
    Expert éminent
    Avatar de smyley
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    6 270
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 6 270
    Points : 8 344
    Points
    8 344
    Par défaut
    Citation Envoyé par dev01 Voir le message
    [*]Possiblité de choisir le FX de bootsrap (avec la version 2.0 au minimun pour DS il va de soit)
    J'y pense depuis un bout de temps mais pour l'instant j'osai pas trop toucher au Setup.exe vu qu'il est en C++ pur Win32 et que le C++ natif et moi ... mais je te l'accorde, ce serai efficace alors je te promet d'y travailler

    Citation Envoyé par dev01 Voir le message
    [*]Possibilité de modifier le fichier de configuration de l'application déployé afin de personnaliser les valeurs avec par exemple encore, le chemin d'installation de l'application (les variables d'env de DS)
    ça c'est déjà possible, enfin, si tu sais toi même écrire dans le fichier de configuration. En fait tu crées un plugin qui sera appellé lors de l'installation et à l'appel de celui ci tu fait ton petit travail de configuration. Le plugin peut être fait en n'importe quel langage .NET.
    J'en ai inclu certains exemples dans le dossier "Samples" présent dans le répertoire d'installation de DreamShield, et aussi dans le dossier "InstallerExtentions" toujours dans le même répertoire.
    Si tu veux ( ou si tu n'arrive pas à exploiter les exemples ) je peut te faire un petit projet en C# qui permet de récupérer le dossier de destination afin de modifier un fichier faisait partie des fichiers à installer.

    Citation Envoyé par dev01 Voir le message
    Encore un gros gros bravo pour ce programme qui tiens toutes ses promesses

  3. #3
    Rédacteur
    Avatar de dev01
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    2 451
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 2 451
    Points : 6 017
    Points
    6 017
    Par défaut
    Citation Envoyé par smyley Voir le message
    ça c'est déjà possible, enfin, si tu sais toi même écrire dans le fichier de configuration. En fait tu crées un plugin qui sera appellé lors de l'installation et à l'appel de celui ci tu fait ton petit travail de configuration. Le plugin peut être fait en n'importe quel langage .NET.
    J'en ai inclu certains exemples dans le dossier "Samples" présent dans le répertoire d'installation de DreamShield, et aussi dans le dossier "InstallerExtentions" toujours dans le même répertoire.
    Si tu veux ( ou si tu n'arrive pas à exploiter les exemples ) je peut te faire un petit projet en C# qui permet de récupérer le dossier de destination afin de modifier un fichier faisait partie des fichiers à installer.
    J'ai regardé tes projets de plugins et je doit dire que je suis aller chercher une aspirine directement après . Sérieusement, je trouve l'architecture un brin complexe pour si peut de chose . Et une chose que j'ai encore vu (mais je ne me suis pas penché plus en détail dessus non plus) c'est la possiblité de rajouter des "étape" dans l'installeur. Par exemple, après le choix de la destination de l'installation, avoir une fenetre qui permet de choisir les composants à installer
    - MVP C#
    -Tout problème a une solution, le vrai problème est de trouver la solution .....
    - Linux & mono : l'avenir

  4. #4
    Expert éminent
    Avatar de smyley
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    6 270
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 6 270
    Points : 8 344
    Points
    8 344
    Par défaut
    Citation Envoyé par dev01 Voir le message
    J'ai regardé tes projets de plugins et je doit dire que je suis aller chercher une aspirine directement après . Sérieusement, je trouve l'architecture un brin complexe pour si peut de chose .
    je sais je sais
    Mais regarde, à la base un installeur c'est pas simple et modulaire, y'a qu'à voir l'évolution de Windows Installer depuis sa première version ...
    Donc pour moi ça a été un vrai challenge que de permettre de faire des plugins et là il s'agit d'une architecture commune qui permet de faire des plugins pour l'interface, les actions d'installations, les fichiers à installer, les vériciation à faire, etc, etc ... C'est déjà mieux de faire une architecture simple, mais que ça termine avec une façon de faire PAR fonctionnalité et là ce serai vraiment mortel ...
    Au final je ne pense donc pas refaire l'architecture mais plutot éssayer de la documenter un maximum au faire des exemples ou autre car pour l'instant je suis un peut coincé ( déjà la différence entre l'architecture de la version 0.91 à 0.92 m'a fait souffrir, j'ai pas envie de recommencer ).

    Citation Envoyé par dev01 Voir le message
    Et une chose que j'ai encore vu (mais je ne me suis pas penché plus en détail dessus non plus) c'est la possiblité de rajouter des "étape" dans l'installeur. Par exemple, après le choix de la destination de l'installation, avoir une fenetre qui permet de choisir les composants à installer
    Ben justement, on peut rajouter des fenêtres où on veux et quand on veux. l'exemple c'est SampleInstallerPage qui permet de créer une page perso

  5. #5
    Expert éminent
    Avatar de smyley
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    6 270
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 6 270
    Points : 8 344
    Points
    8 344
    Par défaut
    J'avais entrepris de te faire un exemple afin de modifer le fichier de configuration avec le dossier d'installation et ... ben j'arrive pas à écrire dans un fichier de configuration. Ca m'énerve, je trouve pas ... tu saurai pas juste comment écrire dans un fichier "app.config" ? ( j'ai pas envie de me tapper le tout en XML, après tout, si Microsoft recommende de l'utiliser c'est bien qu'il y a un moyen "simple" de le faire ! )

  6. #6
    Expert éminent
    Avatar de smyley
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    6 270
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 6 270
    Points : 8 344
    Points
    8 344
    Par défaut
    Bon j'ai fait un tit projet d'exemple, dedans je modifie, comme tu le dit, un fichier de configuration avec le dossier d'installation et j'y ai ajouté une page pour pouvoir rentrer un nom d'utilisateur quelconque ( qui se retrouve ensuite dans le fichier de configuration ).
    Pour compiler les solutions VS.NET il faudra surement mettre à jour les chemins vers les références et pour compiler le projet DreamShield il faudra mettre à jour le chemin vers "SampleApplicationSetupPlugin.dll" dans les "Assemblies d'installations et plugins". So voilà, c'est pas - si - monstrueux ( a vrai dire si j'ai pris du temps c'est qu'au final le fichier de config je le prend comme un vulgaire fichier xml et non pas avec toutes les classes sophistiqués du framework que je ne maitrise pas )
    Fichiers attachés Fichiers attachés

  7. #7
    Rédacteur
    Avatar de dev01
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    2 451
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 2 451
    Points : 6 017
    Points
    6 017
    Par défaut
    Great, un grand merci pour l'exemple je vais étudier tout ça avec attention.

    Sinon pour la comlexité des installeurs, je suis entièrement d'accord, c'est pourquoi je me penche sur ... Dreamshield . Il existe des moyens de faire puissant et simple .

    Sinon il manque effectivement de la documentation de tes API pour que le développement des plugins soit (plus) aisé

    Encore merci pour l'exemple.

    ++
    - MVP C#
    -Tout problème a une solution, le vrai problème est de trouver la solution .....
    - Linux & mono : l'avenir

  8. #8
    Rédacteur
    Avatar de dev01
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    2 451
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 2 451
    Points : 6 017
    Points
    6 017
    Par défaut
    Le debuggage tu n'as pas une sortie texte plutot que ta boite de dialogue dont le texte n'est pas sélectionnable ?

    Sinon je réitère ce que j'ai dit, Dreamshield est vraiment génial !

    Pour info nous l'avons adopté aujourd'hui pour le déploiement des applications internes

    encore bravo pour ce soft
    - MVP C#
    -Tout problème a une solution, le vrai problème est de trouver la solution .....
    - Linux & mono : l'avenir

  9. #9
    Expert éminent
    Avatar de smyley
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    6 270
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 6 270
    Points : 8 344
    Points
    8 344
    Par défaut
    Citation Envoyé par dev01 Voir le message
    Le debuggage tu n'as pas une sortie texte plutot que ta boite de dialogue dont le texte n'est pas sélectionnable ?
    C'est vrai que ce serai bien. Pour l'instant certaines des erreurs sont visible dans l'eventvwr de Windows, mais normallement ce sont juste des Warnings ou des Messages sans importance qui ne posent pas de problème à l'installation.
    Ce qui serai bien c'est d'avoir un autre exe que l'on pourrai lancer à souhait et qui prendrait la sortie de n'importe laquelle des installations en cours d'exécution ( comme une console de debuggage ). Qu'en penses tu ?
    ( ceci dit, je sais vraiment pas comment faire ça )

    Citation Envoyé par dev01 Voir le message
    Sinon je réitère ce que j'ai dit, Dreamshield est vraiment génial !

    Pour info nous l'avons adopté aujourd'hui pour le déploiement des applications internes

    encore bravo pour ce soft
    Trop coool
    Si vous avez besoin d'aide à l'utiliser, je suis là

    Sinon ce week end je pense que la première mise à jour pour DreamShield sera ok. Elle reparera le disfonctionement de DreamFromTheWeb, accélérera le chargement des listes de fichiers et corrigera aussi certains petits hics dans ... les mises à jour Le truc trop bien c'est que je peut mettre à jour le programme de mise à jour avec une mise à jour, cool non ?

    Finallement cette mise à jour devrait faire 11 Mo, mais pour moi ce sera beaucoup plus joyeux que d'uploader 230 Mo de données

    Cdl
    Smyley

  10. #10
    Rédacteur
    Avatar de dev01
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    2 451
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 2 451
    Points : 6 017
    Points
    6 017
    Par défaut
    Citation Envoyé par smyley Voir le message
    C'est vrai que ce serai bien. Pour l'instant certaines des erreurs sont visible dans l'eventvwr de Windows, mais normallement ce sont juste des Warnings ou des Messages sans importance qui ne posent pas de problème à l'installation.
    Alors y a pas de besoin de les logger si c'est sans importance

    Citation Envoyé par smyley Voir le message
    Ce qui serai bien c'est d'avoir un autre exe que l'on pourrai lancer à souhait et qui prendrait la sortie de n'importe laquelle des installations en cours d'exécution ( comme une console de debuggage ). Qu'en penses tu ?
    ( ceci dit, je sais vraiment pas comment faire ça )
    Que je vois pas l'interet. C'est très complexe pour pas grand chose. A mon avis il vaut mieux avoir un bon vieux fichier de log qui se met dans le %TEMP% de l'utilisateur avec le suivi de toutes les actions et de tous les warnings, erreurs, et autre joyeuseté. Le fichier permet non seulement le debuggage en développement mais également, le débuggage lors du déploiement sur les postes finaux.

    Citation Envoyé par smyley Voir le message
    Trop coool
    Si vous avez besoin d'aide à l'utiliser, je suis là
    , notre plus gros pb, vient de la non documentation du système de plugins
    - MVP C#
    -Tout problème a une solution, le vrai problème est de trouver la solution .....
    - Linux & mono : l'avenir

  11. #11
    Expert éminent
    Avatar de smyley
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    6 270
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 6 270
    Points : 8 344
    Points
    8 344
    Par défaut
    Citation Envoyé par dev01 Voir le message
    Alors y a pas de besoin de les logger si c'est sans importance
    ça a de l'importance pour moi car j'ai besoin de savoir ce qu'il fait le petit pendant son travail

    Citation Envoyé par dev01 Voir le message
    Que je vois pas l'interet. C'est très complexe pour pas grand chose. A mon avis il vaut mieux avoir un bon vieux fichier de log qui se met dans le %TEMP% de l'utilisateur avec le suivi de toutes les actions et de tous les warnings, erreurs, et autre joyeuseté. Le fichier permet non seulement le debuggage en développement mais également, le débuggage lors du déploiement sur les postes finaux.
    Tu dois avoir raison
    Dans ce cas je vais pas aller utiliser d'autres dlls de logging ( il y a déjà bien assez de dlls dans le runtime de DreamShield ... ). La seule chose c'est que je ne voudrais pas que les logs s'accumulent indéfniniment, alors il faudrait les associer avec une installation et les supprimer lors de la désinstallation ... non ?


    Citation Envoyé par dev01 Voir le message
    notre plus gros pb, vient de la non documentation du système de plugins
    aie aie aie
    Bon ben pour l'instant, vu qu'il n'y en a donc pas, tu peut toujours me demander juste ce que tu veux faire et je te pond un exemple tout prêt ... et puis après ( genre, la semaine prochaine ? ) je commence à rédiger une aide pour les plugins d'abord, vu que ça semble être le plus important.

  12. #12
    Rédacteur
    Avatar de dev01
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    2 451
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 2 451
    Points : 6 017
    Points
    6 017
    Par défaut
    Citation Envoyé par smyley Voir le message
    ça a de l'importance pour moi car j'ai besoin de savoir ce qu'il fait le petit pendant son travail
    Donc c'est pas sans importance

    Citation Envoyé par smyley Voir le message
    Tu dois avoir raison
    Des fois ça m'arrive

    Citation Envoyé par smyley Voir le message
    Dans ce cas je vais pas aller utiliser d'autres dlls de logging ( il y a déjà bien assez de dlls dans le runtime de DreamShield ... ). La seule chose c'est que je ne voudrais pas que les logs s'accumulent indéfniniment, alors il faudrait les associer avec une installation et les supprimer lors de la désinstallation ... non ?
    pas besoin d'utiliser une dll de logging, tu n'as qu'a utiliser System.Diagnostic.Trace (tuto ici ). Après si tu met le fichier de log dans repertoire temporaire de l'utilisateur (ou d'ailleur les fichiers de l'installeur devrait être décompressé au passage ), il sera automatiquement supprimé lors du nettoyage de la machine


    Citation Envoyé par smyley Voir le message
    aie aie aie
    Bon ben pour l'instant, vu qu'il n'y en a donc pas, tu peut toujours me demander juste ce que tu veux faire et je te pond un exemple tout prêt ... et puis après ( genre, la semaine prochaine ? ) je commence à rédiger une aide pour les plugins d'abord, vu que ça semble être le plus important.
    Hum, c'est pas tant un tuto qu'il faudrait mais bien la documentation du code. En gros comprend à quoi sert la classe BaseFileWorker_Plugin par exemple, quels sont ses méthodes et autre chose.

    Pendant que j'y suis les classes pour manipuler un fichier de conf ça se présente comme ça :
    Code C# : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    //Ouverture du fichier de conf associé à l'exécutable passé en parametre
    Configuration config = ConfigurationManager.OpenExeConfiguration(file_name.Replace(".config", ""));
    config.AppSettings.Settings["key1"].Value = appDataDir;                               
    
    config.ConnectionStrings.ConnectionStrings["SQLSERVER"].ConnectionString = string.Format("Data Source={0};Initial Catalog=Db;Integrated Security=True",opp.Page.SqlServer);
    //enregistrement des modifs
    config.Save(ConfigurationSaveMode.Full);
    Il faut ajouter la référence à System.Configuration et ce n'est valide qu'a partir du fx 2.0
    - MVP C#
    -Tout problème a une solution, le vrai problème est de trouver la solution .....
    - Linux & mono : l'avenir

  13. #13
    Expert éminent
    Avatar de smyley
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    6 270
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 6 270
    Points : 8 344
    Points
    8 344
    Par défaut
    Citation Envoyé par dev01 Voir le message
    pas besoin d'utiliser une dll de logging, tu n'as qu'a utiliser System.Diagnostic.Trace (tuto ici ). Après si tu met le fichier de log dans repertoire temporaire de l'utilisateur (ou d'ailleur les fichiers de l'installeur devrait être décompressé au passage ), il sera automatiquement supprimé lors du nettoyage de la machine
    A mais j'y avais même pas pensé, mais j'utilise déjà Trace, sauf qu'en sortie il y a les logs dans eventvwr. Il me suffit d'en rajouter un ( ou de remplacer celui existant ) par une sortie qui écrit directement dans un fichier... ça promet d'être facile

    Citation Envoyé par dev01 Voir le message
    Hum, c'est pas tant un tuto qu'il faudrait mais bien la documentation du code. En gros comprend à quoi sert la classe BaseFileWorker_Plugin par exemple, quels sont ses méthodes et autre chose.
    Whaouu, ouai, va y avoir du sport ... ( en passant BaseFileWorker_Plugin c'est l classe de base qui définis le modèle des plugins pour les FileWorker, celui qui (dés)installe les fichiers )
    Promis, je vais m'y mettre.

    Citation Envoyé par dev01 Voir le message
    Pendant que j'y suis les classes pour manipuler un fichier de conf ça se présente comme ça :
    Merci bien, je vais ranger ça dans un coin, ça m'évitera d'avoir à reparser tout le xml avec un XmlDocument moi même

Discussions similaires

  1. Réponses: 0
    Dernier message: 24/11/2013, 08h50
  2. Réponses: 0
    Dernier message: 10/02/2010, 19h55
  3. qu'est ce qui va pas dans cette fonction???
    Par access001 dans le forum PostgreSQL
    Réponses: 3
    Dernier message: 18/04/2006, 13h10
  4. Afficher une image JPG qui se trouve dans une bdd
    Par Harry dans le forum Bases de données
    Réponses: 6
    Dernier message: 27/02/2004, 10h51
  5. Réponses: 3
    Dernier message: 01/12/2003, 13h14

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