A propos de Laurent Bugnion et du MVVM Light Toolkit. Tout ce qu'il faut pour installer les DLL nécessaires au développement d'applications basées sur le modèle MVVM.
http://mvvmlight.codeplex.com/
Code source du MvvmLight Framework dans le CodePlex mais pour les télécharger vous devez être enregistré.
Petit tour rapide dans le Framework MVVM Light
On trouve des Solutions pour VS 2010 dans :\\mvvmlight_0f4486b50609\GalaSoft.MvvmLight\GalaSoft.MvvmLight (NET4).sln
Command
RelayCommand(Action execute)
RelayCommand(Action execute, Func<bool> canExecute)
RelayCommand(Action<T> execute)
RelayCommand(Action<T> execute, Func<T, bool> canExecute)
Les commandes n'utilisent pas directement Action mais un objet du framework WeakAction
public class WeakAction<T> : WeakAction, IExecuteWithObject
Messaging
Design pattern mediator for communication beetween ViewModel
GenericMessage<T> : MessageBase
interface IMessenger
void Register<TMessage>(object recipient, Action<TMessage> action, ...);
void Send<TMessage>(TMessage message);
void Unregister<TMessage>(object recipient);
NotificationMessage : MessageBase
Parfois appelé Observer dans le sens ou l'on s'enregistre pour observer le comportement d'un objet ...
ObservableObject : INotifyPropertyChanged
ViewModelBase
public abstract class ViewModelBase : ObservableObject, ICleanup
MvvmLight.Extras
Extension du framework MvvmLight de base.
EventToCommand : TriggerAction<DependencyObject>
Il y a différentes versions : NET35, WPF, VS10, SL. Là encore la comparaison des versions donne une indication des connaissances qu'il faut et de la complexité qu'il y a à écrire un tel code.
IoC
Injection of controls, tient tient, on se rapproche encore de Prims
using Microsoft.Practices.ServiceLocation;
interface ISimpleIoc : IServiceLocator
Laurent Bugnion prend le parti de créer son propre IOC Container basé sur un projet du codeplex Ici.
Compilations conditionnelles
#if SILVERLIGHT#if NETFX_CORE
#if !WP71
#if !SL3
#if !WP71
#if !NETFX_CORE
#if !SILVERLIGHT
Cela donne une idée de la connaissance qu'il faut avoir et de la complexité qu'il y a à écrire un code pour ces différents environnements.
Blog
Le Blog de Laurent Bugnion est organiser de façon chronologique et se développe autour des différents évènements mondiaux auxquels il participe, c'est un peu difficile de s'y retrouver je trouve. Par exemple pour accéder aux exemples, il faut d'abord tomber sur l'article :http://channel9.msdn.com/events/MIX/MIX11/OPN03
Deep dive in MVVM
Ensuite Laurent nous donne un lien vers son code source, on retourne dans son blog :
http://blog.galasoft.ch/archive/2011/04/13/deep-dive-mvvm-samples-mix11-deepdivemvvm.aspx
Le preview :
http://blog.galasoft.ch/archive/2011/04/14/mvvm-light-v4-preview-3-bl16-mix11-edition-mvvmlight.aspx
Mais si on clique alors sur Home pour tenter de lire d'autre articles, on est alors un peu perdu ... Remarquez, c'est un peu normal puisque l'organisation de l'information y est chronologique.
Samples
Les exemples développé par Laurent Bugnion au cours de ses présentations :
Laurent Bugnion at MIX10
Codes sources
Laurent Bugnion at MIX11
http://blog.galasoft.ch/archive/2011/04/13/deep-dive-mvvm-samples-mix11-deepdivemvvm.aspx
Codes sources
http://www.galasoft.ch/mvvm/resources/Samples/MIX11-DeepDiveMvvm-Samples.zip
Aucun commentaire:
Enregistrer un commentaire
Pour plus d'interactivité, n'hésitez pas à laisser votre commentaire.