On ne fait pas de la magie

«Toute technologie suffisamment avancée est indiscernable de la magie.» Arthur C. Clarke

Catégorie : Développement

  • Fin de la gratuité de Google Maps

    Fin de la gratuité de Google Maps

    À partir du mois de juin, l’hégémonie de Google Maps comme LA solution pour présenter des cartes sur les sites Web et dans les applications va couter très cher aux éditeurs. Les conditions d’utilisation : gratuité et tarifs assez bas vont changer de façon drastique, en divisant par 25 le nombre d’affichages gratuits, ce qui peut remettre complétement en cause le modèle économique d’un éditeur. L’article de Christian Quest détaille clairement ces modifications.

    Utiliser OpenStreetMap et OpenLayer

    J’ai été plongé, depuis un an, dans le développement d’une application, bientôt disponible, utilisant très largement la géolocalisation et les cartes. Fort heureusement, un des critères du cahier des charges était de ne pas être dépendant des cartes de Google et nous avons donc utilisé OpenStreetMap pour les fonds de carte et la bibliothèque OpenLayer pour le développement de l’interactivité associée.

    Surcoûts

    Ces choix ont peut être occasionné un surcoût lors du développement, dans la mesure où il a fallu utiliser deux outils au lieu d’un seul entièrement intégré comme Google Maps. Mais il est très difficile d’estimer ce surcoût.

    Par contre, il est très facile d’estimer le surcoût d’utilisation de Google Maps par rapport à ces technologies OpenSource. Et il est parfaitement clair que le choix de la « gratuité » de Google Maps par rapport au choix de « l’open source » de OpenStreetMap et OpenLayer aurait conduit aujourd’hui à l’abandon de l’application, tant son impact sur les conditions d’utilisation aurait été important.

    Basculer de Google Maps à une autre solution ?

    Dans les prochains mois,  cette question de basculement de cartes Google Maps vers d’autres solutions, soit payantes, avec des coûts plus réduits, soit Open Source avec le choix d’héberger son propre serveur de carte sera souvent posée.

    En tout état de cause, elle nécessitera des nouveaux développements et l’acquisition de nouvelles compétences. Je proposerai bientôt des formations sur ces sujets, afin d’accompagner les développeurs dans cette démarche.  N’hésitez pas à me contacter en attendant pour avoir des détails.

  • MSI et Windows Installer

    A l’occasion d’une formation Installshield, j’ai rafraichi ma liste d’outils tournant autour de MSI et de Windows Installer.

    Voilà un extrait de la panoplie :

    MAKEMSI est un logiciel freeware qui permet de construire un package MSI à partir d’une description définie dans un fichier XML.

    Dans la même lignée, j’aurais tendance à préférer WiX (Windows Installer Toolkit) qui utilise lui aussi une syntaxe XML pour décrire une installation. Il dispose d’un sous projet Votive pour manipuler ses fichiers avec Visual Studio.

    Advance Installer est un outil de conception d’installation, avec une interface graphique, disponible sous plusieurs éditions. Il existe une édition gratuite qui permet de créer des projets simples.

    Enfin, si Orca vous semble trop rudimentaire ou rébarbatif, vous pouvez utiliser InstEd pour éditer directement vos fichiers MSI.

  • Comment utiliser Installshield pour effacer des fichiers lors d’une installation ?

    Une question récurrente qui m’est posée lors d’interventions sur Installshield concerne la suppression de fichiers présents sur la machine cible au moment de l’installation.

    Il est normal qu’elle soit posée, car la réponse n’apparaît pas de façon évidente dans l’interface du logiciel.

    Si vous souhaitez supprimer des fichiers qui sont présents lors de l’installation, il faut renseigner la table RemoveFile, en vérifiant l’action RemoveFiles est bien présente dans la séquence d’installation.

    Cette table contient contient une propriété DirProperty qui indique le chemin complet du répertoire du fichier à supprimer. InstallMode permet de spécifier si le fichier est effacé lors de l’installation, de la désinstallation ou dans les deux cas.

    EffacerFichierInstallshield1.png

    Le composant indiqué doit bien sur être associé à une fonctionnalité installée pour que l’opération soit exécutée.

    Attention, l »interface graphique d’Installshield ne montre pas la liaison entre le composant et la table RemoveFile. Notamment, si on demande à n’afficher que les nœuds non vide, le composant peut apparaitre comme vide alors que la table RemoveFile fait référence au composant.

    EffacerFichierInstallshield2.png

    Vous pouvez constater que le composant EffaceFichier semble vide alors qu’il est utilisé pour supprimer des fichiers au travers de la table RemoveFile :

    EffacerFichierInstallshield3.png

     

    .

  • Comment utiliser Installshield pour forcer l’installation de fichiers par Windows Installer ?

    Lors des prestations ou de formations sur Windows Installer ou Installshield, j’ai parfois la question de forcer l’installation de fichiers sans tenir compte des caractéristiques de taille ou de version de ceux qui seraient éventuellement déjà présents.

    C’est une possibilité que vous pouvez indiquer dans la fenêtre de propriété d’un fichier, en cochant l’option Always Overwrite.

    EcrasementFichierInstallshield.png

    Que fait Installshield lorsque cette option est cochée ? Il inscrit tout simplement la valeur 65535 dans la colonne Version de la table File. De cette façon, les mécanismes normaux de Windows Installer forcent l’installation du fichier, quelle que soit la version du fichier éventuellement installée sur le système.

    La difficulté de cette méthode est qu’il faut passer en revue tous les fichiers de tous les composants et cela peut devenir une tâche rédhibitoire s’ils sont nombreux.

    Pour éviter cela, à partir de Windows Installer 4, il est possible d’utiliser la propriété REINSTALLMODE ou l’option /f de la ligne de commande de msiexec.

    Cette option est normalement utilisée en combinaison avec la propriété REINSTALL, mais Windows Installer la prend aussi en compte lors d’une installation. En spécifiant la valeur a, tous les fichiers sont copiés, indépendamment des versions. Vous pouvez tout simplement l’indiquer sur la ligne de commande ou l’incorporer à votre installation en utilisant le Property Manager ou encore en modifiant la table Property avec le Direct Editor.

    Attention, il peut y avoir des effets de bords. Par exemple, si votre installation contient des modifications du registre, celles ci ne sont pas effectuées si REINSTALLMODE ne contient que la valeur a. Il faut ajouter les valeurs u ou m pour que le registre soit modifié !