Recherche sur le blog

vendredi 19 avril 2013

[WD17] Application conforme aux normes de l’UAC

Si vous développiez pour Windows XP, mais aussi pour Windows Vista ou 7 tout en ayant désactivé le contrôle de comptes utilisateur, il était possible d’installer vos applications de manière classique, sans intégrer un quelconque manifeste dans votre application. Cependant, il y a bel et bien des règles qui doivent être absolument appliquées puisque désormais sous Windows 8, il est impossible de totalement désactiver le contrôle des comptes utilisateur (sauf en bidouillant dans le registre). Il y a donc quelques normes de programmation à adopter.

En effet, lorsque le mécanisme de l’UAC est activé, et si l’application qui est installée ne possède pas de droits suffisants pour accéder à certains fichiers/dossiers ou éléments du registre, les services de virtualisation de l’UAC redirigent de manière transparente les écritures ainsi que les lectures vers des emplacements spécifiques accessibles de tous. Cependant, nous ne souhaitons pas que ce phénomène arrive : nous désirons que nos fichiers soient toujours enregistrés aux mêmes endroits.

Comme la documentation de PC SOFT l’indique, pour créer et modifier des fichiers sans avoir de privilèges administrateur, il faut ne pas écrire ni dans le répertoire “Windows” (cela inclut les sous-répertoires), ni dans le dossier “Program Files”, bien qu’on puisse au moins y installer les applications.

Par conséquent, il faut également adapter d’autres éléments :

  1. L’emplacement des fichiers HyperFileSQL Classic liés à votre application, si vous n’utilisez pas de serveur de base de données (ce répertoire peut être (re-)défini au déploiement de l’installation sur le poste client).
  2. L’emplacement des fichiers externes, comme des logs ou des paramètres (.ini), que vous interrogez avec les fonctions fXXX() ou même INILit/INIEcrit.
  3. L’installation recommandée est plutôt de type “exécutable auto-extractible”.

Ecrire dans les répertoires adéquats et dans le registre

Notre application-exemple écrit des fichiers “log” au format texte et permet de lire (pas d’écrire) dans un fichier de paramètres (.ini) qui contient les informations de connexion à une base de données de type AS/400. Nous avons défini une classe qui contient des variables chaine pour stocker les dossiers “par défaut”.

rep

Le premier répertoire est un dossier temporaire où l’on va écrire les fichiers “log” lorsqu’une erreur grave se produit dans notre application. Remarquez que nous utilisons la fonction “SysRep()” avec la constante “srAppDataCommun”. Sur un poste Windows Vista / 7 / 8, voici le chemin que cela renvoie :

type_rep

Le second répertoire est celui de l’application, dans lequel nous allons simplement lire. La fonction “ExeInfo()” permet de récupérer le répertoire depuis lequel l’exécutable a été lancé. Il suffit de compléter celui-ci grâce à la fonction ”ComplèteRep()” qui retourne le nom donné avec le séparateur défini par la norme système.

Attention lorsque vous voulez interagir avec le registre. Si vous tentez d’écrire dans “HKEY_LOCAL_MACHINE\ Software”, cette opération sera redirigée vers "HKEY_CURRENT_USER\ Software\ Classes\ VirtualStore\ MACHINE\ SOFTWARE". Ceci explique pourquoi nous avons défini la clé de notre application en demandant d’écrire dans “HKEY_CURRENT_USER\ Software”, qui reste accessible.

Exécutable et installation

Lorsque vous lancerez l’outil “Créer la procédure d’installation” depuis le menu “Atelier”, vous devrez configurer certains points dans les différentes étapes proposées. Par exemple, dans “Données et groupware”, vous devez sélectionner “Répertoire des données de l’application” puis indiquer si par défaut, les données sont installées dans un répertoire par utilisateur ou pour tous. Dans notre cas, nous choisirons la première option.

data_and_groupware

Lorsque vous arriverez à l’étape “Sécurité (1/2)”, il faudra bien demander à intégrer un manifeste “pour Windows Vista et Supérieur”. Cela ne s’applique donc pas si vous développez pour des postes encore sous Windows XP et inférieur. En cliquant sur “Suivant”, l’assistant vous proposera quatre choix : 3 manifestes de base et la possibilité d’en intégrer un personnalisé (format XML, fichier .manifest).

securite_WD

Dans notre cas, nous souhaitons que l’application utilise les privilèges maximum de l’utilisateur courant. Dans ce cas, l’application vous demandera une confirmation avant de se lancer. Si bien sûr, vous ne disposez quand même pas de privilèges suffisants, certaines opérations pourraient échouer. Cela convient bien si vous êtes déjà dans un compte de type “administrateur”.

manifeste

Plus d’informations sur les manifestes : Manifests (Windows) (en).

Pour l’installation, nous avons choisi l’option “avec mise à jour automatique”, en réseau local. Arrivés à “Fichiers de l’installation”, nous avons choisi que le logiciel s’installerait dans un sous-répertoire de “Program Files” (ex : <srProgramFiles>\MonAppli, voir l’image ci-dessus).

rep_install

Continuons ensuite jusqu’à l’étape “Données (1/4)” qui est elle aussi, très importante. Nous allons pouvoir définir l’emplacement par défaut des données HyperFileSQL Classic qui sera utilisé par l’application à l’exécution. Cochez donc la case “Configurer l’emplacement des fichiers de données de l’application”.

empla_donnees

A l’étape “Paramétrage des connexions de données”, sélectionnez” “Emplacement par défaut” puis cliquez sur le bouton “Paramètre”. Cela ouvre une nouvelle fenêtre dans laquelle il faudra saisir les informations suivantes :

  • (…) en utilisant : cocher “Les valeurs indiquées ci-dessous”.
  • Type de connexion : HyperFileSQL Classic (ISAM).
  • Onglet “HFSQL Classic”, saisie du chemin de données. Exemple : <srAppDataCommun>\MonAppli\DB\

hfsqlclassic

Et après…

Lorsque vous déployez votre application sur le poste client, les options sont configurables : emplacement des données HyperFileSQL, localisation des fichiers de l’exécutable. Ainsi, si vous installez sur une machine équipée de Windows XP, vous pouvez faire en sorte que le tout se retrouve dans “Program Files”, sans vous soucier des différentes lectures et écritures. Vous pouvez également adapter votre code en analysant la version de Windows s’exécutant sur la machine (des fonctions existent pour réaliser cette opération) afin d’effectuer un traitement X, Y ou Z.

Voir aussi : Normes de programmation sous Windows Vista et supérieur.

jeudi 18 avril 2013

[Info] Changements sur le blog

Voici la liste des changements :

  • Ajout de nouveaux liens intéressants dans “liens recommandés”.
  • Réorganisation de la page “Ressources”. Le nom précédent de cette page était “Fonctions utiles” mais désormais, on y retrouve également des documents ainsi que des morceaux de code, pas forcément complets. Cette page est une sorte d’aide-mémoire.
  • La page “Utilitaires” s’appelle désormais “Logithèque”.
  • Mise à jour du champ de recherche Google qui ne fonctionnait plus.
  • Mise à jour de la liste des logiciels. Il est possible que tout ne soit pas encore à jour, mais j’essaie de faire le maximum afin que cette liste reprenne les dernières versions connues.

Vous savez ce qu’il vous reste à faire. Surtout n’hésitez pas à émettre vos suggestions afin de me dire ce qui pourrait être amélioré, ajouté, supprimé…

[Test] Lenovo Twist

“Test” est un bien grand mot. En effet, comme vous aurez pu le remarquer, nous n’effectuons pas réellement de benchmarks approfondis, nous ne vous bombardons pas de graphiques extraordinairement compliqués mais qui ne vous serviront peut-être pas (tout le monde n’est pas “geek” comme nous le sommes), nous ne rentrons pas dans les détails techniques comme la fidélité des couleurs de l’écran. Non, nous tenons simplement à partager une expérience avec vous, chers lecteurs, bien que je ne serais pas contre d’avoir à mes côtés des rédacteurs qui seraient prêts à rédiger des billets plus complets… Aujourd’hui, nous mettons “à l’honneur” le Lenovo Twist S230u équipé d’un Intel Core i5-3317U (1,7 à 2,6 ghz), de 4 Go de mémoire DDR3 @ 1333 mhz, d’un disque dur de 500 go accompagné d’un SSD de 24 go utilisé pour le cache, de 2 ports USB 3.0, du Bluetooth 4.0, du Wi-Fi 802.11b/g/n, d’une webcam et d’un lecteur de cartes. Cette fois, un port RJ45 est présent.

twist

En terme de finitions, rien n’a vraiment changé dans le design des Lenovo ThinkPad (Cher IBM, nous n’oublierons pas que tu en es à l’origine !). On retrouve toujours le touchpad, dont la taille nous parait un peu petite, mais aussi le fameux trackpad, fidèle au poste. Dommage pour le bord inférieur en noir laqué, comme si l’écran en entier n’était pas assez salissant comme cela. Enfin bon, la matière rugueuse de la coque remonte le niveau., c’est déjà ça.

Nous nous sommes amusés à faire pivoter l’écran, bien entendu. Attention, celui-ci n’est pas détachable. Le mécanisme, quant à lui, semble solide. Aucun signe de faiblesse après quelques manipulations dans tous les sens. Le principe est plutôt convaincant puisque il permet de rapidement tourner l’écran, ce qui peut s’avérer pratique dans une réunion. Oubliez les projecteurs qui se connectent par le biais de câbles VGA : on ne retrouve que du Display Port qui fait office d’unique sortie vidéo.

L’écran est brillant et ça se voit. Lors de l’installation, cela a été légèrement dérangeant, puisque nous étions dos à la fenêtre pour la réaliser. Il est aussi très salissant, mais pour un écran tactile, ce n’est pas vraiment un scoop. Pour information, il est équipé d’une dalle IPS, qui offre des angles de vision ouverts.

Les performances sont au rendez-vous, grâce à son processeur qui lui permet d’encaisser plus que des simples logiciels de bureautique, mais il est également plus réactif qu’un ordinateur équipé d’un simple disque dur. En effet, ici, nous retrouvons un disque SSD de 24 Go qui permet d’exploiter la technologie ExpressCache. Côté graphique, c’est déjà mieux que le HP Envy x2 puisqu’ici, on retrouve un chipset Intel HD 4000. A noter qu’il existe des configurations plus puissantes (Core i7, SSD uniquement, …).

Windows 8 se porte comme un charme sur ce genre d’appareil. Le démarrage est rapide, pas autant qu’avec un SSD, mais suffisant pour ne pas s’énerver pendant l’installation des mises à jour, qui prennent un temps facilement négligeable. La navigation parmi les tuiles est fluide, rien à redire là-dessus. Nous n’avons malheureusement pas testé le mode portrait pour voir comment se comportait la machine lors de la transition.

Honnêtement, il s’agit d’un ordinateur vraiment intéressant, même si son autonomie déçoit. Bien sûr, avec un tel équipement, on s’attendait à ne pas atteindre des heures et des heures d’utilisation. Pourtant, en se limitant à certaines activités, il est possible de tenir 3h30, et jusqu’à 4 heures, dans le meilleur des cas. Autre petit bémol : son poids qui peut en rebuter certains, puisqu’il pèse 1,56 Kg, ce qui n’est pas forcément idéal lorsqu’on doit le porter constamment. Il n’en reste pas moins un très bon ordinateur, clairement destiné à un usage professionnel.

[Test] HP Envy x2

Nous avons reçu une nouvelle machine avec laquelle nous avons pu nous amuser : il s’agit du HP Envy x2, qui est un hybride tablette-netbook, équipé d’un processeur Intel Atom Z2760 Dual Core (avec Hyper-Threading), cadencé à 1,8 ghz, un écran BrightView IPS de 11,6 pouces avec une définition de 1366x768, ce qui permet l’affichage des fenêtres dans leur intégralité contrairement à certains netbooks, un disque SSD de type eMMC de 64 go, et 2 Go de mémoire LPDDR2 @ 533 mhz. Côté connectivité et réseau, on ne retrouve pas de ports USB 3.0 malheureusement, par contre les technologies NFC (partage par simple contact), Wi-Fi (a/b/g/n) et Bluetooth, sont de la partie.

hp_envy_x2

Nous n’allons pas vraiment rentrer dans des détails trop techniques comme le font certains sites, donc exit les graphiques trop compliqués et l’analyse des couleurs de l’écran par l’intermédiaire d’une sonde. Le but ici est de vous faire partager nos impressions lors des différentes utilisations.

L’ergonomie est basique, car on ne retrouve pas de port réseau RJ45 ni de ports USB 3.0. Sur la tablette, un lecteur de cartes microSD est présent, ce qui permet d’augmenter l’espace de stockage. Une prise casque est également présente, mais nous n’avons rien testé au niveau de l’audio.

Nous avons été enchantés par la finition de l’engin. Pas de matières “glossy” sur la coque ni sur le dock. Quel miracle, il ne faudra nettoyer que l’écran ! Le clavier est agréable et assez silencieux, et le touchpad est suffisamment grand, même si pour le configurer, nous avons préféré employer une souris. Cependant, nous avons été déçus par le mécanisme et le bouton pour retirer la tablette du dock, qui ne nous ont pas semblés aussi solides que ça, contrairement à ce que disent d’autres sites de test.

En ce qui concerne l’écran, il semble être de bonne facture. Il est suffisamment lumineux pour nos collègues, et il permet d’afficher un nombre correct de données à l’écran (dalle en 1366x768). Il est donc adapté pour l’utilisation de nos logiciels. C’est pour nous un critère important.

Là où le bas blesse, c’est qu’il se limite à la bureautique, puisque son processeur, un simple Intel Atom Z2760, ne permet pas de faire de folies, et son chipset graphique Intel ne brille pas par ses performances. Il reste pourtant très réactif (sauf pour l’installation de mises à jour Windows) grâce au SSD eMMC et fluide dans les applications de type Métro. Mais ne comptez pas sur lui pour des traitements vidéo ou des traitements d’image en masse, donc il faudra se limiter aux applications qui ne demandent pas trop de calculs à votre processeur (par exemple, des applications client/serveur qui rapatrient des données à distance). N’espérez pas non plus jouer à des jeux plus aboutis que Angry Birds, ce serait vraiment vous torturer pour rien.

Nous avions été attirés surtout par son autonomie intéressante, puisqu’on a pu lire qu’il pouvait rester éveillé 7h selon les activités pratiquées (en mode tablette) et jusqu’à 14 heures avec le dock connecté. Il n’en est rien puisque nous avons visiblement reçu un modèle défectueux : la batterie du dock, pourtant chargée à 100%, perd jusqu’à 50 % d’autonomie après une matinée sans être sollicitée (le dock étant connecté à la tablette, elle-même éteinte) ! La batterie de la tablette semblait bien s’en sortir en revanche.

Autre petit bémol : le bouton d’allumage. Encore un défaut sur le modèle que nous avons reçu puisqu’il faut s’y reprendre à plusieurs reprises pour allumer la bête (parfois jusqu’à cinq ou six fois). Nous n’avons vraiment pas compris comment cela était possible… Etant donné ces problèmes, nous avons demandé à faire un échange standard.

Ce modèle conçu par HP se rapproche donc plus du Samsung Ativ Smart PC ou de l’Iconia W510 d’Acer. Un manque de performances notable qui le limite à la bureautique pure et dure, mais une autonomie qui relance le débat. Dans une gamme différente, le Lenovo Twist (13”) s’en sort mieux car il propose une configuration relativement plus puissante, pour un prix pas tellement plus élevé. Le seul hic, c’est son autonomie qui lui permet de tenir 3h30 à 4h, contrairement à la machine dont nous venons de parler. Dans un style qui se rapproche plus de l’HP Envy X2, Asus veut nous vendre du rêve avec son hybride Transformer Book TX300, qui sera aussi livré avec un dock équipé d’une batterie. De quoi allier puissance et autonomie honnête. Il reste à voir si les tests confirment nos attentes.

jeudi 11 avril 2013

[WD18] TDF Technique @ Bruxelles

Comme chaque année, la société PC SOFT organise ce qu’on appelle le “Tour de France Technique” et passe à Bruxelles, où plutôt à Braine l’Alleud, afin de présenter sa nouvelle version. En général, il a lieu deux fois l’année, une fois quand le produit est sur le point de sortir, et la fois suivante lorsqu’il est déjà sur le marché avec une ou deux mises à jour à télécharger. Le principe de cette “conférence” de 4 heures est très simple : mettre en avant WinDev et ses nouvelles fonctionnalités avec des exemples concrets. Un support de cours complet sur DVD est fourni à l’accueil, avec tous les exemples et les composants détaillés pendant la session.

Photo0152

Comme toujours, avant de prendre place dans la salle, distribution de goodies pour tous. Cette fois-ci, nous avons reçu un stylo plutôt étrange, avec des yeux en plastique qui tournent dès qu’on les agite, mais aussi un thermo, et enfin un t-shirt WD18. Nous recevons également un sac pour y ranger la farde, le bloc-notes, les publicités, et tous les objets reçus par la suite.

Tout le monde est installé, on peut commencer. Pour ne pas changer, une interview d’un client utilisant le produit de PC SOFT, est diffusée. Cette fois, c’est le patron d’Intersport qui s’y est collé. Gros coup marketing : c’est peut-être l’un des principaux défauts du TDF, en plus des nombreux silences et d’une impression de “récitation par cœur”.

Malgré le fait que nous n’utilisons pas la dernière version de l’AGL, c’est avec plaisir que je découvre certaines fonctionnalités, qui sont clairement plus explicites lorsqu’elles sont accompagnées d’exemples. La première qui me vient à l’esprit : l’apparition du ruban, comme dans les applications récentes de Microsoft. Les options paraissent plus clair, le tout parait moins fouillis que lorsqu’on utilise les barres d’outils. On retrouve donc cinq onglets permanents, et d’autres contextuels (comme dans Word, lorsqu’on sélectionne un tableau, un onglet supplémentaire apparait pour le gérer). Pour ceux qui n’aiment pas le changement, on peut repasser aisément à l’ancienne configuration.

La recherche dans l’éditeur s’est améliorée : plus claire, plus intuitive, et la possibilité d’affiner les résultats selon plusieurs critères. Les occurrences sont regroupées par type d’élément pour s’y retrouver plus facilement. Différents modes de recherche (texte, expression régulière), sont regroupées dans un menu du volet. Mieux encore : il est possible d’ouvrir jusqu’à cinq volets de recherche différents.

Le champ plébiscité par tous est arrivé : le tableau croisé dynamique (cube rOlap). Sur base de tables de votre base de données, vous pouvez créer avec l’assistant, en quelques clics, un superbe tableau dynamique, en gérant les données en ligne, en colonne, ainsi que le nombre d’éléments traités. Ensuite, les FAA (“Fonctionnalités Avancées de l’Application”) permettront aux utilisateurs de modifier l’affichage à leur guise ou d’exporter le tout en Excel. A noter que des nouvelles fonctions WLangage ont fait leur apparition afin de gérer la création, la mise à jour et la sauvegarde.

Peu de temps après, présentation du fameux “PCSCloud”, un service “dans les nuages”, payant en fonction de vos besoins, personnalisable à souhait (nombre de processeurs utilisés, puissance, mémoire, etc), sur lequel vous hébergez des sites développés en WebDev, mais aussi des Web Services ou vos fichiers d’installation et de mises à jour d’applications, destinés aux clients. Pour plus de détails, rendez-vous sur le portail PCSCloud.

Ensuite, démonstration rapide de relooking dans WebDev. Comment transformer rapidement un site en modifiant le modèle de pages, les styles CSS3 via la “fenêtre aux 7 onglets”, les menus, en rajoutant des popups, etc. Le résultat est assez impressionnant et visuellement parlant, ça donne franchement bien.

Aujourd’hui, les périphériques mobiles étaient clairement mis en avant (en plus du fameux Windows 8). Tablettes, smartphones, et même une montre Sony fonctionnant sous Android. Création d’une application simple sous Android en 3 minutes 15, présentation des nouveaux champs et des améliorations d’anciens, démonstration d’applications fonctionnant sous Windows Phone 8.

Difficile de continuer à tout vous citer… Parmi les autres sujets, il y a eu en vrac : des améliorations du WLangage (nouvelles fonctions, nouveaux types de variables, etc), la réplication de données d’un serveur HFSQL à un autre, le concept de bases de données “Big Data”, le concept – pas nouveau – de versioning en utilisant le GDS (“Gestionnaire De Sources”),  l’utilisation d’API externes et de SDK, comme Kinect, pour créer, par exemple, des applications réagissant aux mouvements du visage. Nous avons également eu droit au fameux jeu “Trouvez le bug”, au cours duquel il était possible de remporter un T-Shirt supplémentaire… J’en ai eu un, youpie !

Pour conclure, une petite mise en scène plutôt comique, et le tirage au sort, qui ne m’a pas été favorable. Peut-être pour une prochaine fois ? Le gros lot était une mini-chaine Philips avec dock iPhone ! Un très bel objet…