Article: M-V-VM avec Silverlight

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 !

Téléchargement ici : M-V-VM avec Silverlight, de la théorie à la pratique.


Tags: , , , , Categories: Annonce | Articles | C# | Design | Méthodologie | Silverlight

Sat 09 Jan 2010 02:50 4 Comments
Actions: E-mail | Permalink | Comment RSSRSS comment feed

Comments

July 15. 2010 09:54

Nk54

Salut ! Je trouve tes articles tout simplement géniaux ! Un de mes blogeurs favoris parce que la majorité de mes recherches débouchent sur un de tes articles !

Toujours bien expliqué, des passages comprenant un peu d'humour, bref je suis complétement fan !! Tu mérites vraiment ton statut MVP.

++ Smile

Nk54

July 15. 2010 19:58

Olivier

@Nk54: Merci Smile

Olivier

September 2. 2010 12:43

Yannick

Bonjour,

je suis en d'apprendre a développer des applications WPF et SL donc avec le concept du MVVM et après beaucoup de recherches infructueuses je suis tombé sur vos deux articles qui sont pour moi très pédagogique car ils me permettent vraiment de comprendre le mécanisme.

Donc un GRAND, TRES GRAND MERCI Smile

Juste une petite remarque sur le tuto "M-V-VM avec Silverlight de la théorie à la pratique" lors de la mise en place du ServiceLocator. Ce dernier fait référence aux différents ViewModels et à ce stade de la lecture ils n'existent pas encore donc les différents types SlideShowViewModel, AboutScreenViewModel etc ne sont pas disponible !

Est-ce volontaire, ou faut-il les implémenter au préalable ?

Merci

Yannick

September 2. 2010 14:45

Olivier

@Yannick: merci de votre retour.
Il y a parfois des choix difficiles à faire dans l'organisation d'un tel article. La progression retenue faisait que le ServiceLocator avait sa place avant d'entrer dans les détails d'implémentation des ViewModel.
A ce stade, le ServiceLocator est donc généralement une coquille vide, et c'est lorsqu'on implémente les ViewModels qu'on vient y rajouter une entrée qui sera utilisée, in fine, par la Vue. Ne souhaitant revenir deux fois sur le ServiceLocator je le montre "finalisé" donc, mais ce ne pourrait être qu'un squelette à cette étape.
On notera aussi que l'article étudie l'About box, la seconde Vue et son ViewModel son dans le projet exemple uniquement pour compléter l'article par un autre exemple.

Pour répondre à la question donc : cela est volontaire dans le flux de l'article, mais dans la réalité le ServiceLocator n'est, à ce moment précis, qu'un squelette qui sera complété au fur et à mesure de la création des ViewModels.

J'espère avoir levé cette ambiguité méthodologique et vous souhaite de bons développements en MVVM !

Olivier

Add comment


(Will show your Gravatar icon)

  Country flag

biuquote
  • Comment
  • Preview
Loading