Dot.Blog

C#, XAML, Xamarin, UWP/Android/iOS

138 sons gratuits pour vos applications

Ajouter des petits clicks, des petits bruits pour souligner une validation, avertir l’utilisateur, marquer une erreur de saisie ou de comportement du programme peut s’avérer intéressant dans beaucoup d’applications pour peu qu’on n’abuse pas du procédé et que les sons en questions soient assez courts. Mais quels sons ? Je vous propose ici une petite bibliothèque de 138 sons prêts à l’usage.Plus...

Windows Phone 7 CTP dispo pour VS 2010 final et quelques infos pour ce 1er Mai

Phone 7 et son SDK posait quelques problèmes ces derniers temps à tous ceux qui aiment être à jour... le SDK ne fonctionnait qu'avec la bêta 2 de VS2010 alors même que la version finale est releasée depuis le 12 avril.. On garde VS2008 pour la preview de Ria Services, on garde VS2010 beta pour le phone et SL 4, la finale forcément pour les nouveautés... ça devenait le bronx cette histoire ! Mais ça se termine :-)

VS2010 Express et CTP pour VS2010 final

La Community Technology Preview (CTP) du SDK de Windows Phone 7 est désormais releasé en version compatible avec VS 2010 final. Pour plus d'infos sur cette release : The Windows Phone Developer Blog.  

Il est aussi possible d'obtenir un VS 2010 Express qui sera parfaitement compatible avec Phone 7. On sait aussi qu'un Blend 4 spécial Phone sera releasé en mode Express bientôt, donc du dev totalement gratuit pour écrire des applications qui rapportent de l'argent... Visual Studio 2010 Express for Windows Phone 7.

I SON OU Lé Fons ? 

Ils sont où ces merveilleux téléphones dirait on en langage non SMS ? On en sait aussi un peu plus sur la disponibilité des machines. Selon les informations que j'ai pu récolter les premiers téléphones supportant Phone 7 seront disponibles à l'automne. L'automne c'est grand, ça va de la rentrée de septembre à Noël... De quoi vous faire la main sur le SDK et de concevoir des applis au top du top ! Et de prévénir déjà le père Noël de ce qu'il y aura sur votre liste...

Distribuer les applis

Concernant la distribution, vous ne pourrez pas installer vos applis sur les téléphones de vos copains ou de votre entreprise, la logique entreprise n'est pas encore privilégiée (Windows Mobile 6.5 reste en vente pour cette raison, mais c'est moins beau !), Phone 7 cible avant tout le particulier pour concurrencer l'Iphone, et fonctionne le même modèle économique : pour distribuer une application il faudra qu'elle soit agréée par MarketPlace, le service officiel de distribution, comme l'App Store de la pomme. Bien entendu vous pourrez déployer vos applis sur votre phone depuis VS 2010, mais ce n'est pas une méthode "industrialisable". Donc pas de diffusion d'un soft à un petit groupe d'amis. Toute diffusion passera par MarketPlace.

Quand les pirates inspirent le marketing des grandes marques...

Pour se démarquer MS prévoit de reprendre un concept rendu célèbre par l'équipe de hacker "H2O" et leur non moins célèbre slogan "Try before buy". Même si MS ne fait pas référence à cette origine (on s'en doute un peu !), les informaticiens rompus aux arcanes des résaux P2P savent donc de quoi je parle...
Le principe sera que le client potentiel pourra télécharger votre application sans la payer, à l'essai. S'il est content il pourra l'acheter sur MarketPlace. Côté développement il existera un moyen de savoir si une appli Silverlight ou XNA Phone 7 tourne en mode H2O, heeuu pardon, en "Try before buy", ce qui permettra par exemple de limiter le temps d'utilisation, de désactiver des fonctionnalités etc.. En fait c'est un mode démo avec période d'essai qui sera systématisé et c'est plutôt une bonne idée vu que cela sera géré de façon centralisée et homogène.

Encore un peu de flou 

Pour l'instant pas d'infos sur combien coûtera la certification d'une appli, ni combien MarketPlace prendra de pourcentage sur les ventes de vos applis. Tout cela va se préciser avec le temps, reste le SDK pour commencer à développer... Il faudra patienter un peu pour connaître les conditions de l'offre MarketPlace. Peu d'entreprises vont se lancer immédiatement dans du développement sans pouvoir bâtir un prévisionnel des ventes si MS ne dit pas combien ça va coûter et si, donc, cela sera rentable. Ce n'est pas plus mal...

Une niche de temps à saisir

Pendant que les gros poissons se tatent, il y a donc une petite niche temporelle intéressante pour vous, les développeurs indépendants ou ceux qui sont salariés. Comme je viens de le dire peu d'entreprises vont miser sur un marché inconnu dont les règles ne sont pas même fixées en termes de rentabilité, de "droits de passage", etc. En revanche vous qui lisez ces lignes, avec un VS Express et un SDK vous pouvez sur votre temps libre développer des applis. Au minimum vous vous ferez la main pour demain trouver une employeur plus généreux que l'actuel (grâce à l'expérience Phone 7 que vous aurez acquise), au mieux vous vendrez vos applis sur MarketPlace et prendrez de court ceux qui attendent la clarification de la règle du jeu financier pour se lancer !

Un peu de droit pour les salariés... 

Je suis né un 1er mai. Oui c'est mon anniversaire aujourd'hui (merci :-) ), je n'y peux rien si je suis né le jour de l'année qui cristalise les revendications syndicales... Ca m'a laissé des traces, j'ai une grande G* dès qu'il s'agit de défendre l'équité et surtout les droits des moins puissants dans un monde où les riches bourgeois ont instrumentalisé le peuple en 1789 pour prendre la place des nobles. La révolution française n'était pas cette belle révolte populaire quasi romantique d'un peuple qui reprend le contrôle de son pays, mais bien une basse manoeuvre des grands argentiers qui nous dirigent depuis cette époque pour prendre la place du clergé et de la noblesse, en déconfiture au 18eme siècle, mais noble et ayant tous les droits... Vous voyez, dès que j'aborde un sujet de ce genre je ne peux pas m'empêcher de militer :-)  "Born on May 1st". Ca sonne comme un titre de film US, je n'y peux rien. Mais je vais vous en faire profiter !

Si vous êtes salariés faites attention ! Si vous avez eu l'intelligence (comme je l'ai toujours fait à l'époque ou j'étais dans cette situation) d'ajouter une clause à votre contrat de travail vous laissant la propriété intellectuelle de ce que vous développez chez vous, tout est ok... Sinon méfiance ! Si vous créez l'application du siècle chez vous avec un VS Express à vous et que vous devenez riche, votre patron aura tous les droits de clamer la propriété intellectuelle du logiciel ! C'est gonflé, honteux, malhonnête, mais je vous renvoie au paragraphe précédent pour mieux comprendre par qui les lois de notre République sont faites et quels intérêts elles servent (et c'est un patron qui vous le dit).

Si vous n'êtes pas dans la possibilité de modifier votre contrat (un patron honnête - il y en a quelques uns) acceptera sans problème mais d'autres s'y refuseront ou trouveront même là le prétexte qu'ils attendaient pour vous virer sans indemnité (j'ai vu le cas plus d'une fois), alors soyez plus malins qu'eux : pour une poignée de dollars créez une SARL en mettant votre soeur gérante minoritaire non salariée, et développez sous le nom de cette SARL sans faire apparaître votre nom. N'utilisez pas les société unipersonnelles ou leurs équivalents alléchants qui ne vous offre bien entendu pas la même protection légale qu'une vraie société de type SARL. Les patrons ont des méthodes parfois de voyous pour échapper à leurs obligations, pour délocaliser légalement, virer à tour de bras alors qu'ils font des bénéfices, à vous d'être malins et d'utiliser les mêmes moyens légaux pour échapper à leur emprise, c'est de bonne guerre. Signer un contrat de travail ce n'est pas Faust, on ne signe pas avec son sang et on ne vend pas son âme au diable. Et pourtant si vous lisez bien le vôtre, vous verrez que si pendant vos vacances il vous vient une idée en tondant la pelouse ou en honnorant la voisine, cette idée de logiciel appartient déjà à votre patron... C'est de mon point vue totalement immoral, mais c'est comme ça. A vous d'être plus futés donc ! La loi a cela de très beau que nous vivons gouvernés par un dédale de plus de 10.000 lois et 120.000 décrets qui se télescopent (aucun logicien ne ferait une telle bêtise) et que les malins peuvent trouver la faille pour agir en toute légalité.

Soyez malins, soyez novateurs, télécharger tout le nécessaire pour Phone 7 maintenant et créer les applis qui s'arracheront à Noël et devenez le prochain Steve Job Ballmer !

Voici un beau billet qui m'a permis de mixer technologie, conseils éclairés et syndicalisme militant, il fallait au moins ça pour un 1er mai, glorieux jour s'il en est ! (je n'ai pas attaqué le champagne mais là j'y vais, alors à plus !) 

Et Stay Tuned, Camarades développeurs ! :-)

Blocage IE avec écran multitouch sous Silverlight

Voici un cas intéressant dont je viens de trouver la solution et que je m’empresse de vous communiquer…

Les écrans multitouch ne sont pas encore légion, sauf chez quelques geeks, dont je suis. Ainsi, pour tester dans un mode proche de la réalité les applications Phone 7 en cours de développement (et faute de téléphones de ce type disponible sur le marché pour l’instant) j’ai acquis un écran 22 pouces IIYama multitouch T2250MTS. C’est très sympa, pas très cher et ça marche vraiment bien de base avec Windows 7 sans installer aucun driver (c’est à dire que Windows 7 possède déjà le fameux driver et que brancher l’USB de l’écran sur le PC suffit sans aucun pilote extérieur ni CD d’installation, c’est beau le progrès !).

L’écran est même fourni avec un stylet qui se cache dans le bas de son boitier, ce qui évite les traces de gros doigts graisseux sur l’écran ! :-)

Bref, tout cela fonctionne à merveille et du premier coup. Quand on arrive sur des zones de saisie et qu’on touche l’écran il y a même un petit symbole de clavier qui apparait pour permettre d’ouvrir un grand clavier virtuel, voire le module de reconnaissance d’écriture. On voit que Windows 7 a été conçu pour investir les Tablet PC… Vraiment cool. Seul bémol, sur un écran vertical manipuler les applis avec les doigts à bout de bras c’est vite crevant… Mais ce n’est pas pour cela que j’ai acheté l’écran, c’est pour utiliser l’émulateur de Phone 7 en mode multitouch (car tester une appli pour téléphone touch avec la souris c’est le meilleur moyen de foirer le design, les doigts sont plus gros et moins précis, il faut y penser à la conception !).

Vous allez me dire c’est quoi le rapport avec Silverlight et Internet Explorer ?

C’est tout simple.

Plantage avec Silverlight ?

Silverlight gère le multitouch. Au moment où internet exploreur se lance et affiche l’application quand je suis en  debug (sous VS ou Blend) je ne sais pas trop quel niveau de sécurité IE reconnaît (en tout cas pas Intranet local car j’ai abaisser toutes les sécurités à ce niveau et cela n’a rien changé) mais à l’activation du plugin Silverlight IE 8 s’arrête, comme planté.

Impossible de s’en sortir. Il faut aller le shooter depuis les processus de Windows ou bien stopper le debug sous VS ce qui a le même effet.

Sécurité cachée !

Et là, l’oeil averti du chasseur de bug voit passer à toute vitesse comme une petite fenêtre cachée sous IE qui, hélas puisqu’on vient de flinguer IE, disparait sans qu’on puisse la lire…

Il y a donc une question qui est posée, en modal, ce qui bloque IE 8. Il “suffit” donc d’accéder à ce dialogue.

Je n’ai pas réussi. Et si on minimise IE pour que ça ne soit plus qu’un petit carré minuscule, on ne voit pas derrière la fenêtre du dialogue… Elle ne vient donc que quand IE est shooté. Bug…

Problème numéro 1: Identifier cette fichue fenêtre.

Ca passe tellement vite que c’est illisible bien entendu.

Ruse : Utiliser l’enregistreur d’écran livré avec Expression Encoder 3 et enregistrer la vidéo du bug pour faire ensuite un arrêt sur image et lire le texte du dialogue…

Ca ne marche pas au premier essai car ça va vraiment vite. Il faut ruser encore plus en modifiant les réglages d’enregistrement de la vidéo, notamment en passant à 100 images secondes et un débit d’au moins 20.000/s.

Là, on finit par choper sur la vidéo un “fantôme” du dialogue plus ou moins opaque selon la chance qu’on a. Mais on l’a eu ! Et que lit-on ?

“Un site Web veut ouvrir un contenu Web en utilisant ce programme sur votre ordinateur” et en dessous : Nom: Composant de saisie tactile ou avec sty…, Editeur: Microsoft Windows.

Le nom du composant n’est pas complet mais on a compris de ce quoi il s’agit. Silverlight, le plugin, au moment du chargement (car la première instruction de l’appli n’est pas encore atteinte, ce que prouve le debugger) doit forcément inspecter la machine pour savoir s’il y a de la vidéo, du son, et tous les périphériques ou facilités utilisées par le plugin. Parmi celles-ci se trouve vraisemblablement le multitouch et la gestion du stylet.

C’est à ce moment que le fameux dialogue est activé pour me demander si je donne le droit ou non à ce module de s’activer. Normalement on dispose sur ce genre de dialogue d’une case à cocher permettant d’indiquer si on souhaite ne plus voir la question.

Hélas, comme IE 8 semble avoir un léger bug, ce fichu dialogue est totalement incessible, on le voit à peine quand on shoote l’application. Et encore faut-il la ruse de la vidéo pour lire de quoi il s’agit.

Comment autoriser l’application bloquante ?

Second problème alors : comment autoriser le programme en question (la gestion du stylet) alors même que le dialogue et sa case à cocher ne sont pas accessibles ?

Réponse : en plongeant dans les arcanes de la gestion de sécurité de IE 8…

Et là, ce n’est pas de la tarte… J’aime bien IE, mais ce n’est pas d’une grande limpidité dès qu’on aborde ce genre de question.

Je vous fait grâce des multiples recherches sur le Web pour arriver à trouver une réponse utilisable. Que je vais maintenant vous exposer car ça peut servir ! (et pas seulement avec un écran multitouch, je suppose que le bug du dialogue doit se voir dans d’autres cas).

Pour faire simple, IE range dans la registry la liste des programmes ayant des droits faibles ainsi que la règle d’élévation de droit qui doit être appliquée. Comment certaines applications arrivent dans cette première liste, c’est un mystère que je n’ai pas essayé d’éclaircir, ce genre de plomberie en informatique me donnant rapidement la nausée. Donc, il existe dans la registry une première liste, elle se trouve là :

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\Low Rights\ElevationPolicy\

C’est une liste d’ID, donc de GUID. Il faut la balayer pour lire les clés qui correspondent afin de localiser le programme dont on veut changer les droits. (La registry doit être ouverte en mode administrateur cela va sans dire).

Pour ce qui est du stylet, j’ai fini par trouver le coupable, c’est le programme “wisptis.exe” qui se trouve dans %SystemRoot%\System32. Les clés d’un ID sont AppName, le nom de l’appli, ici celui de l’exe (ce qui ne simplifie pas la recherche vu à quel point le nom n’est pas parlant), AppPath, le chemin que je viens d’indiquer et enfin Policy, un DWord codant l’autorisation.

Vous trouverez des explications ici : http://www.hotline-pc.org/mode-protege.html#

Une fois l’application localisée dans cette première liste on a la moitié de la solution. Changer la Policy à ce niveau ne semble pas avoir d’effet (immédiat en tout cas).

Il faut savoir qu’en réalité, pour l’utilisateur courant, IE stocke une seconde liste, similaire, dans une autre clé de la registry :

HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Low Rights\ElevationPolicy

L’astuce consiste donc à créer une nouvelle clé dans cette liste en utilisant le GUID repéré dans la première liste puis de recréer à la main les clés, dont Policy à laquelle on donne une valeur dépendant de ce qu’on cherche à obtenir. Pour la gestion du stylet j’ai mis 3, qui semble donner le maximum de droits.

Je reviens sous VS, je lance mon appli SL, et là, Ô magie… mon appli s’affiche et IE ne pose plus l’infamante question cachée…

Et ça marche !

Problème résolu. Comme on ne peut pas dire que la solution est évidente, je pense que la partagée ici sera un jour utile à quelqu’un.

Visiteur qui tombera au hasard d’une recherche Bing ou Google sur cette page et qui gagnera quelques heures de ton précieux temps, n’hésite pas à me laisser un message, ça fait toujours plaisir ! Quant aux fidèles lecteurs de Dot.Blog, le jour “J” j’espère que vous vous rappellerez que ce billet existe !

Et pour d’autres infos le mieux c’est : Stay Tuned !

Une dernière info : Le multitouch de l'écran utilise une barrière infrarouge visiblement, c'est à dire que les doigts ou le stylet coupe une grille infrarouge invisible. Ca marche vraiment bien. Sauf qu'en cette époque estivale, les mouches arrivent ! Et dans ma campagne elles ne sont pas en retard ! Hélas quand une mouche se pose sur l'écran : elle clique ! Ce qui fiche un beau bazard parfois ! Prévoyez ainsi avec l'achat d'un écran de ce type un désinsecteur électrique qui grillera tous ces nuisibles qui prennent votre écran pour un tarmark ! Je sais ça fait un peu rire comme truc... mais le geek n'a pas que des aventures palpitantes, il doit aussi combattre, outre les bugs, les mouches et autres diptères !

Metro = Boulot != Dodo [Silverlight Everywhere]

La convergence Silverlight / WPF j’en ai parlé souvent, parfois en étant incompris de certains lecteurs d’ailleurs. Mais pour moi le sujet est dépassé, et ceux qui n’y ont pas cru en sont pour leurs frais … Silverlight 4 offre la compatibilité binaire avec WPF par exemple. Si ce n’est pas de la convergence à l’état pur, alors c’est à en perdre son latin… Concernant ce point là, la messe est dite me semble-t-il.

J’ai aussi expliqué quelque fois une autre de mes visions, encore moins bien comprises que la précédente, celle d’un monde dans lequel Silverlight remplacerait WPF. On se souviendra de mon billet Silverlight 4 Mamma Mia! ou d’autres et des commentaires parfois étonnants que cela a suscité.

Avec l’arrivée de Windows Phone 7, c’est pourtant bien cette prochaine étape qui se dessine…

Windows Phone 7 : Silverlight, XNA et Metro

untitled

Avec Windows Phone 7, Microsoft apporte une vraie réponse à l’I-Phone.

De nombreux constructeurs ont tenté d’imiter l’I-Phone. Imiter. Seulement. Et tout le monde préfère le vrai Coke aux imitations, le vrai Nutella à ses pâles copies, les vrais After-Height aux chocolats à la menthe grossiers qu’on trouve chez certains discounters. Et même quand le produit est passable, il n’en reste pas moins une imitation sans classe ni âme. Tous les téléphones dernière génération souffrent de cette tare congénitale de n’être né que sous les auspices de l’imitation et non de l’innovation.

Windows Phone 7 est une vraie réponse car s’il s’inscrit dans la vague de l’I-Phone il ne cherche pas à l’imiter. Il est le résultat d’une démarche de design unique. Il constitue un cahier des charges précis et il s’appuie sur une technologie d’interface qui n’est pas qu’un bricolage plus ou moins efficace pour ressembler à l’I-Phone.

Metro

Metro is our code name for our design language. We call it metro because it’s modern and clean. It’s fast and in motion. It’s about content and typography. And it’s entirely authentic.

“Metro est le nom de code de notre langage de design. Nous l’avons appelé Metro parce qu’il est moderne et clean. Il est rapide et en mouvement. Il est centré sur le contenu et la typographie. Et il est totalement authentique.”

En dehors de la vision d’un métro “clean” (dans quelle ville du monde vit le publicitaire qui a écrit ça ?), le ton est donné (en s’imaginant le métro comme dans les films de SF donc, clean). Cette phrase est issue d’un petit livre donné au MIX10 qui présente la vision de Windows Phone 7.

Metro n’est en réalité qu’une association de bienfaiteurs : Silverlight et XNA (plus des guidelines de design).

Toute l’interface de Windows Phone 7, et vraisemblablement des prochaines machines tablet PC à écran multi-touch (comme le TouchSmart tm2 de HP annoncé au dernier CES), est gérée par ces deux technologies.

Pour l’affichage il faut choisir, soit on développe en Silverlight, soit en XNA, mais les deux sont compatibles en termes de librairies (on peut faire une interface Silverlight et utiliser toute la partie audio assez évoluée de XNA, ou, au contraire, partir sur une interface XNA mais faire appel aux facilités de Silverlight pour accéder à des Web services par exemple).

XNA ? Si, vous connaissez certainement, c’est le langage de programmation de la XBOX, basé sur le framework .NET. XNA est, graphiquement, très spécialisé dans la production de jeux : 3D en mouvement, lumières, textures, effets spéciaux, etc.

Le code Silverlight sera totalement portable entre Windows, Apple, et Phone 7. Du vrai code portable à quelques petites différences peut-être comme le non support des pixels shaders (seul le floutage et l’ombre portée seront conservés). Si on veut des effets 3D et bitmap “killer” on le comprend, MS pousse vers XNA.

Toutes les applications ne nécessitant pas la gestion de monstres gigotant sur fond de particules animées et mouvements de caméra, Silverlight sera la technologie privilégiée pour la grande majorité des applications Phone 7.

Côté développement Visual Studio 2010 bénéficiera d’un plugin pour le développement Windows Phone 7 avec émulateur multi-touch. Une version spéciale Blend pour Phone 7 est annoncée pour la fin d’année. A noter, pas de VB.NET ici, pour le moment seul C# sera supporté.

Silverlight Everywhere ?

Quel amusant retournant des choses… Silverlight était appelé à l’origine WPF/E, soit WPF Everywhere (WPF Partout).

WPF se fait de plus en plus discret. Son adoption confidentielle fait que son nom n’est pas synonyme de winner. Il va subir le sort de XBap. La techno elle-même ne meurt pas, mais c’est sous la bannière flamboyante de Silverlight qu’elle sera portée. Mes prévisions en la matière se confirment de jour en jour.

Alors après WPF/E, finalement n’allons-nous pas à grand pas vers Silverlight Everywhere ?

J’en suis convaincu et je ne peux que vous inciter à réserver votre prochain Windows Phone 7 au plus vite, à changer votre écran LCD contre un écran multi-touch et commencer à vous former rapidement à tout cela (en même temps que de vous faire des amis dans le monde des designers), car on est presque déjà demain. Et demain, Silverlight sera Partout !

Stay Tuned, l’aventure Silverlight ne fait que commencer !

Silverlight 2 for Mobile : Une CTP pour le 1er timestre 2009 !

Il y a encore quelques jours je vous informais de la mise à jour française des outils pour Silverlight 2 et j'en profitais pour rappeler qu'il s'agit d'une solution multi plateforme unique en son genre. Une voix s'est fait entendre pour rappeler que sous Linux ce n'est pas encore au niveau de SL 2, c'est vrai. Mais preuve de ce dynamisme multi plateforme c'est maintenant au tour de Silverlight pour Mobile d'être annoncé par MS !

Et l'avancée est de taille puisque il n'y aura pas besoin de modifier son code pour qu'une application SL puisse tourner sur Mobile, même si elle utilise des vidéos. C'est incroyable quand on sait que sur un Mobile la place est réduite pour arriver à y faire entrer le framework .NET, même la version allégée de SL. Prouesse technique donc. Et encore plus d'ouverture pour les développeurs.

Autre annonce de taille, Silverlight est pour l'instant une technologie "navigateur", mais il semble que les équipes en charge de ce produit désire le faire évoluer en quelque chose de stand-alone, hors de tout navigateur. Une plateforme .NET multi OS fonctionnant directement sur Mac, PC, Linux, Mobile ? Il est vrai que techniquement il "suffit" de se passer du browser. Mais quelle perspective ! Avec WCF et les sockets pour la communication la panoplie semble alléchante.

Pour ce qui est des plateformes mobiles supportées, on retrouve bien entendu Windows Mobile 6.x. Là aussi, bien que les choses ne soient pas arrêtées, il semblerait que le support Windows Embedded CE soit sous le coude des développeurs SL...

Si vous voulez en savoir plus je vous conseille la video de "Silverlight 2 for Mobile" enregistrée aux dernières PDC et déjà diffusée sur le célèbre Channel 9 !