Dot.Blog

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

Blend 4 et les ressources de Design

[new:3/08/2010]Si vous créez des applications de type MEF ou bien dont certaines ressources sont chargées dynamiquement par d’autres procédés, vous savez à quel point cela pouvait être pénible en Design sous Blend qui, par force, ne trouvait pas les styles ou templates (puisque chargés au runtime). Il existait des ruses plus ou moins contraignantes, mais rien de bien pratique il faut l’avouer. Avec Blend 4 cela n’est plus qu’un souvenir !Plus...

Silverlight : Control vs UserControl

[new:28/07/2010]La différence est importante entre Control et UserControl, et en même temps il est souvent difficile de la comprendre ! Quand créer l’un ou l’autre est une question récurrente. Comment choisir entre l’un ou l’autre dans ses développement ?Plus...

Silverlight 4 / Blend 4 : Mise en page dynamique et transitions

[new:26/07/2010]A chaque génération de Blend l’équipe de Silverlight autant que celle de Expression Blend tentent de rendre la mise en page de plus en plus fluide, vivante et ce avec le moins de code possible (et si possible sans code du tout). Le double but : rendre les applications Silverlight encore plus attractives pour les utilisateurs et rendre Blend utilisable à 100% par un Designer sans mettre les mains dans le code.Plus...

Utiliser des éditeurs de valeurs dans les behaviors

[new:16/07/2010]Expression Blend 3 (et 4) fournit un certain nombre de ValueEditors personnalisés dans l'inspecteur de propriétés pour simplifier l’utilisation des Behaviors. Mais il y a un petit bonus : l’équipe de Blend a aussi introduit certaines extensions afin de permettre l’utilisation de ces éditeurs dans les Behaviors tiers.  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 ! :-)

Article ! Le Binding Xaml, sa syntaxe, éviter ses pièges… (WPF/Silverlight)

imagePromis dans mon dernier billet, le voici enfin ! Ce nouvel article dédié au binding Xaml pèse 77 pages (le record était tenu jusqu’à lors par mon article M-V-VM avec Silverlight avec 70 pages) et se présente sous la forme d’un PDF et de 9 projets exemples.

Le binding cet inconnu … J’en parlais dans mon billet Le retour du spaghetti vengeur, le binding avec sa syntaxe pleine d’accolades et de chaînes de caractères non contrôlées à la compilation est un piège à bugs et la porte ouverte au code spaghetti.

Plutôt que de me lamenter et vous laisser vous embourber dans la sauce de ces spaghetti là, j’ai pris ma plume, et voici le résultat : 77 pages sur le binding Xaml, son fonctionnement, ses différentes syntaxes le tout illustré par des exemples clairs. L’article aborde aussi le débogue du binding assez délicat puisque Xaml échappe au débogueur de Visual Studio, et que le binding n’est que partiellement couvert par Intellisense.

Des conseils, du vécu, beaucoup d’exemples, voilà ce que vous trouverez dans cet article à télécharger en suivant le lien suivant :

Le Binding Xaml – Maîtriser sa syntaxe et éviter ses pièges (WPF/Silverlight)

(Attention, avant de cliquer sur le bouton “télécharger” attendez que la fiche détail de l’article soit bien affichée, sinon le site pensera que vous tentez un accès à une ressource non publique et vous demandera un login… Je reçois tous les jours des demandes d’ouverture de compte provenant de lecteurs trop impatients qui cliquent trop vite sur le bouton ! La prochaine version du site en Silverlight est en préparation et corrigera ce petit problème, mais d’ici là : slow down cowboy !).

Pour vous aider à vous faire une idée du contenu de l’article voici son sommaire :

Sommaire

  • Références    5
  • Code Source    6
  • Préambule    7
  • Le Binding Xaml : Ange ou Démon ?    7
    • Le Binding    8
    • Définition    8
    • Utilisations    9
    • Schéma du principe    9
    • Déclaration    10
      • Par code    10
      • En Xaml    11
  • Les modes de binding    13
    • Le mode OneTime    13
    • Le mode OneWay    13
    • Le mode TwoWay    14
      • Gestion du timing    14
    • Le mode Default    16
    • Le mode OneWayToSource    16
  • Hiérarchie de valeur    18
    • Règles de précédences    19
  • La notion de  DataContext    20
  • Les convertisseurs de valeur    21
    • Définition    21
    • Scénario    21
    • Implémentation    22
    • Utilisation    23
      • Instanciation    23
      • Invocation    23
      • Bonnes pratiques    24
      • Pour résumer    26
  • Les dangers du Binding    27
    • Des chaînes non contrôlées    27
    • Un langage dans le langage    28
  • On fait quoi ?    28
  • Déboguer le Binding    28
    • Vigilance    28
    • Une code Xaml court    29
    • Refactoring sous contrôle    29
    • Utiliser des outils intelligents    29
    • Utiliser Expression Blend    29
    • Vérifier les erreurs de binding dans la fenêtre de sortie    30
    • Créer un fichier des erreurs de Binding    30
    • La feinte du convertisseur inutile    32
    • Quelques outils supplémentaires    33
      • Spy++    33
      • ManagedSpy    33
      • Snoop    34
      • Mole    34
      • Reflector    34
      • Vos neurones    34
  • Les syntaxes du Binding    34
    • Le binding simple    34
      • Binding direct    35
      • Binding sur une propriété    35
      • Binding sur une sous-propriété du contexte    36
      • L’Element Binding    37
      • Convertisseurs de valeur    37
        • Paramètres de conversion    38
      • StringFormat    40
        • Injection de culture    41
        • Le ContentStringFormat    42
        • Gérer les nuls    43
    • Le Binding Multiple    44
      • La classe Personne    44
      • Le code du multi convertisseur    45
      • Le code Xaml    46
    • Le Binding XML    47
      • Binding sur une source Web    47
      • Binding sur une source XML en ressource    48
      • Binding sur une requête Linq To XML    49
    • Le Binding Relatif    52
      • Binding to Self    52
      • Le TemplatedParent Binding    53
      • Le Binding sur recherche d’ancêtre    54
      • Le Binding PreviousData    56
        • La source de données    58
        • La visibilité des flèches : la magie de PreviousData et du Binding Multiple    58
        • Le contenu des textes    61
      • Le Template binding    61
        • Utilité    61
      • Le Collection Binding    67
      • Le Priority Binding    69
  • Les propriétés de tous les bindings    74
  • Conclusion    76

Avril est froid et pluvieux mais les soirées rallongent, c’est le printemps même si cela n’y ressemble pas encore beaucoup, grâce à moi vous savez maintenant comment occuper vos soirées et vos weekend au lieu de faire l’idiot dans les embouteillages des vacances : Lisez cet article !

Et Stay Tuned !