M-V-VM

Je démarre cette série de posts sur le modèle de développement d'applications M-V-VM pour essayer de tirer tout cela au clair. Avec une expérience de plus de 10 ans en développement de logiciels en C,C++,C#, je suis surpris par la complexité des nouveaux modèles de développement MVC et MVVM.

Pourquoi M-V-VM n'est-il pas plus intégré dans le framework .NET 4.0 ? Ou bien faut-il directement passer à Prims ?

Qu'elle est l'implication du code à ajouter dans l'exécution des applications ? On trouve nombre de "framework M-V-VM" mais rien d'intégré dans le framework "de base" .NET 4.0.

Je parcours la littérature sur le sujet, ce sont mes notes, mes projets soit pour tenter d'expliquer de clarifier ce type d'applications soit pour établir un Framework M-V-VM ...

Sites de référence MVVM

http://www.galasoft.ch/mvvm/
Le site de Laurent Buginon MVVM Light Toolkit.

http://mvvmlight.codeplex.com/
MVVM Light Toolkit dans le CodePlex. Il faut être enregistré pour accéder au téléchargement de GalaSoft.MvvmLight.4.0.23.4.msi, deux versions
MVVM Light Toolkit V4.1 for Visual Studio 2012
MVVM Light Toolkit V4 RTM
Support pour Visual Studio 2010

My MVVM Sample

Design-Patterns-MVVM-Model-f1d7c05c
Exemple issu de AllInOneCodeFramework
Etude du pattern M-V-VM utlisation de DelegateCommand de RelayCommand pardon de CustomerDelegateCommand ...

MVVM Frameworks

MVVM de Wilfried Woivré
Utilisation de DelegateCommand du Pattern Repository d'un ViewModelBase dérivé de DependencyObject

MVVM de Laurent Bugnion
MvvmLight Framework multiplateformes, ViewModelBase, RelayCommand, ObservableObject dérivé de INotifyPropertyChanged mais également dans la partie Extras (ou extension) EventToCommand et IoC (injection des contrôles) avec un exemple de IOC Container.

MVVM de Josh Smith
MVVM Fundation que l'on trouve dans le Codeplex

MVVM de Prism
Etude rapide du code source lié au modèle MVVM dans prism

MVVM Code C#
Ensemble de codes nécessaires aux différents exemples de MyMVVMSample ...

More than just MVVM Frameworks

Au hasard de mes pérégrinations autour du framework MVVM de la modularité avec Unity et MEF je découvre d'autres travaux sur ce sujet :

Cinch MVVM Framework

La modularité est réalisée avec MEF ... 

Documentation sur le Cinch framework, page de Codeproject. Très beau travail de synthèse notamment une matrice de compatibilité entre les différents objets à mettre en oeuvre dans WPF dans Silverlight ou les deux.

What's new

CodePlex : Cinch, What Is Cinch?
Projet du codeplex vous y trouverez les sources C#.

MEFfedMVVM

Le projet Cinch et d'autres font référence à ce projet en particulier ...

CodePlex : MEFedMVVM

MEFedMVVM with PRISM 4
Directement sur le site de l'auteur Marlon Grech surement pas son vrai non ...

Ce projet concerne à mon humble avis la "Blendability" c'est à dire la possibilité de donner des datas aux designers utilisants Blend et donc de Binder la View sur le ViewModel at runtime (en cours d'exécution).
C'est tout de même un besoin très spécifique ...

WPF MVVM

Pour l'instant les exemples que j'étudie s'ils sont intéressants sont souvent en Silverlight. Voici une véritable application WPF utilisant le modèle MVVM :

Une vraie application WPF utilisant le modèle MVVM, l'auteur à écrit son propre bootstrapper.

Conclusion

Vous je ne sais pas mais moi, je commence à avoir une bonne connaissance de toutes les problématiques abordées par MVVM et les différents frameworks concernant ce modèle. J'ai le sentiment que Microsoft récupère tout le travail effectué par les communautés de développeurs dans un projet toujours en évolution appelé Prism et surtout depuis la version 4.1 qui permet le développement d'applications Silverlight, WPF et Windows Phone ... Et même si comme toujours de nombreuses critiques ont été émises concernant Prism notamment son retard à l'allumage ... C'est bien le projet qu'il faut suivre attentivement.





Aucun commentaire:

Publier un commentaire

Pour plus d'interactivité, n'hésitez pas à laisser votre commentaire.