[new:25/03/2011]Lorsqu’on développe des applications Silverlight en utilisant plusieurs technologies à la fois comme les Wcf Ria Services et le toolkit MVVM Light, il peut y avoir des effets de bord imprévisibles. Notamment le non affichage des données de conception...Plus...
[new:15/02/2011]MVVM, j’en ai parlé souvent et à travers de longs articles à télécharger, mais qu’est le rapport entre MVVM, un chronomètre et Illustrator ? Aucun. Si ce n’est qu’une fois associés, les trois permettent de voir comment construire une application MVVM tout en démontrant la fonction d’importation Photoshop/Illustrator de Expression Blend et quelques autres avantages de ce logiciel incontournable. Let’s Go !Plus...
[new:16/09/2010]MVVM est une pattern, une simple pattern, pas une technologie nouvelle. Elle est utilisable dans de nombreux contextes, sous ce nom ou un autre et sous des formes plus ou moins identiques. Rien de nouveau donc. Et pourtant tout change. “Je m’y perds” est une réflexion que j’entends souvent. Encore aujourd’hui, un lecteur de Dot.Blog me faisait part de ce sentiment d’être un peu “embrouillé”. Alors plutôt qu’une réponse en privé qui ne profiterait qu’à un seul, voici la réponse à ce lecteur, et bien sûr, à tous les autres qui partagent la même impression…Plus...
[new:15/09/2010]MVVM vous devez commencer à connaître, je vous en parle depuis un moment (notamment un très long article à télécharger, voir le billet MVVM avec Silverlight). Mais au-delà de la théorie comment mettre en pratique simplement cette pattern sous WPF et Silverlight ? La réponse se trouve dans ce nouvel article de plus de 90 pages ! Plus...
[new:10/07/2010]Silverlight 4 ajoute la gestion des commandes à certains objets comme les boutons ce qui simplifie la mise en œuvre de la pattern MVVM. Le lien entre Interface et ViewModel s’en trouve amélioré même si cela semble toujours un peu nébuleux pour le débutant. Il est vrai que programmer de la sorte impose de raisonner autrement. Nous allons le voir au travers d’un exemple. Plus...
Des règles et des bonnes pratiques pour développer des applications Silverlight il en existe bien plus que deux, faire croire le contraire ne serait pas honnête. Ne serait-ce que par la richesse des EDI utilisés (Visual Studio, Expression Blend, Expression Design…) il faut accumuler de l’expérience et mémoriser de nombreuses patterns pour architecturer et designer correctement une application.Plus...
La “parallélisation” des traitements est devenu un enjeu majeur et paradoxal du développement et Silverlight n’échappe pas à ce nouveau paradigme.Plus...
Promis 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
- Les modes de binding 13
- Le mode OneTime 13
- Le mode OneWay 13
- Le mode TwoWay 14
- Le mode Default 16
- Le mode OneWayToSource 16
- Hiérarchie de valeur 18
- 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
- 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 !
MVVM, Model-View-ViewModel, est une pattern de développement que je vous ai présentée plusieurs fois (billet et un article récent de 70 pages) en raison de son importance dans le développement d’applications Silverlight principalement.
A ces occasions j’ai présenté plusieurs frameworks permettant de faciliter le développement en suivant la pattern MVVM. Je viens d’en découvrir un autre, encore plus simple que MVVM Light, c’est “Simple MVVM” un projet CodePlex.
La gestion des commandes n’est pas prise en compte mais comme je le montre dans le long article évoqué en introduction en utilisant Silverlight 4 (en bêta pour l’instant mais bientôt releasé) on peut facilement gérer l’interface ICommand dans une vaste majorité de cas sans utiliser de librairie annexe.
Simple MVVM est vraiment simple. C’est un peu “MVVM pour les nuls”. Mais justement, c’est en partant d’exemples simples, de librairies hyper light qu’on peut mieux cerner une technologie et choisir ensuite des frameworks plus lourds et plus complets. Je vous conseille donc d’y jeter un œil.
Dans tous les cas je suis pour les librairies les plus light possible. Les gros “zinzins”, même très bien faits, pose toujours un problème de maintenabilité (si vous, personnellement, vous avez investi du temps pour apprendre telle ou telle grosse librairie, c’est bien, mais que ce passera-t-il s’il faut qu’un autre informaticien maintienne votre code au pied levé ? Combien coûtera sa propre formation sur la dite librairie ? Alors que souvent ces dernières ont pour objectif de simplifier le travail et donc de couter moins cher “à la longue”. C’est faux en réalité, et c’est donc un contre-sens que de les utiliser, aussi puissantes ou savantes soient-elles, sauf cas exceptionnels…).
Ce qui se conçoit bien se programme clairement – Et le code pour le faire vient aisément… (paraphrase libre du célèbre proverbe de Nicolas Boileau).
Stay Tuned !
Model-View-ViewModel, je vous en parlais il y a très peu de temps (MVVM, Unity, Prism, Inversion of Control…) et je vous avais promis un exemple pour rendre tout cela plus concret. C’est fait ! Et même mieux, un article de 70 pages l’accompagne !
Vous saurez tout (ou presque) sur cette design pattern absolument incontournable pour développer sérieusement sous Silverlight.
Après des explications sur la pattern elle-même l’article vous présente une application exemple entièrement réalisée avec ce qu’il y a “out of the box”. J’ai fait le choix de n’utiliser aucun Framework existant (Prism, Cinch, Silverlight.FX, MVVM Light…) pour vous montrer que M-V-VM peut entièrement être mis en œuvre “à la main” sans aide extérieure.
Cela ne veut pas dire que tous ces Frameworks (dont l’article parle aussi) ne sont pas intéressants, au contraire ! Mais comment choisir une librairie facilitant M-V-VM si vous ne savez pas comment mettre en œuvre cette pattern et si vous ne connaissez pas les difficultés qu’elle soulève autant que ses avantages ?
Cet article vous permettra de faire le point sur M-V-VM et de pouvoir ensuite choisir le Framework qu’il vous plaira en toute connaissance de cause ou bien cela vous aidera à développer votre propre solution. Après tout, l’application exemple fonctionne parfaitement sans aucun de ces Frameworks….
Le code source du projet est fourni. En raison de l’énorme avantage de la gestion des commandes introduites dans Silverlight 4 (toujours en beta) l’article utilise cette version qui sera bientôt disponible. Tout est expliqué pour savoir comment faire fonctionner le code exemple à l’aide de VS 2010 ou Blend 4 (en beta aussi).
L’article peut être lu sans faire tourner le code si vous ne souhaitez pas installer la beta de SL4, et la première partie théorique s’applique aussi bien à M-V-VM sous SL3.
Bonne lecture !
(PS: n'oubliez pas que depuiis août 2012 les articles sont regroupés sur la page publications).
Téléchargement ici : M-V-VM avec Silverlight, de la théorie à la pratique.