MVVM - Exemple d'application

Soyez le premier à donner votre avis sur cette source.

Vue 8 897 fois - Téléchargée 2 193 fois

Description

Jai remarqué que le site conservait une vieille version, vous pouvez télécharger une version plus complète et récente sur mon blog ou ici http://1drv.ms/1fnJdQ3

Bonjour,
J'ai souvent cherché des sources sur MVVM mais rarement trouvé des bonnes sources fonctionnelles .C'est pourquoi je mets en ligne cette démo .

Montre beaucoup de choses, même si tout n'est pas au point.
- Consultation,edition
- Validation de formulaire avec Data Annotations et IDataErrorInfo (updateSourceTrigger sur LostFocus)
- IEditableObject pour annuler les changements
- Utilisation de commandes(RelayCommand), passage de paramètre
- Communication entre ViewModels (grâce au pattern Mediator)
- fenêtres de dialogue
- Utilisation de ViewModelLocator et ServiceLocator
- Utilisation de dictionnaire de ressources
- Binding("zéro code behind")

Un mot ,cherchant les bonnes pratiques je me suis tourné vers un bon livre "MVVM de la découverte à la maitrise" .

Mon objectif serait dans un premier temps d'arriver à un bon niveau et ensuite automatiser , sans doute en écrivant un générateur de code si je ne trouve pas d'autres solutions satisfaisantes .

Les inconvénients que je vois pour l'instant à MVVM :
Les -
- Des temps de développement multipliés par 10
- Des projets tout de suite volumineux
- Des erreurs parfois longues à résoudre .Qui mettent en avant notamment le manque d'outils et d'aides pour écrire le Xaml.
- La perte de « l'interface utilisateur » C'est dommage de perdre toute la gestion "événementielle" des contrôles et supprimer totalement le code-behind .
- Les listes de ViewModel, même si on comprend la « logique du pattern» cela réclame beaucoup de ressources
Les +
Un code structuré

ps :Pensez à dézipper la base de données

Mis à jour le 11 mars 2014
plusieurs nouveautés dont
- gestion double clic (Trigger) et touche Enter(InputBindings) sur la listbox principale
- boutons dans listbox avec passage de paramètre(commandParameter)
- révision de l'interface graphique
- ...

Mis à jour le 31 mars 2014
- utilisation de EDM (ADO.NET Entity Framework) pour l'accès aux données
-Chargement asynchrone, écran d'attente(VisualState),TargetNullValue,utilisation de la vue(ListCollectionView) pour l'ajout/modification,binding "transparent" entre les différentes couches ,application NTiers + Mapping,etc.
- il y a le script de la base(schéma et données) avec les sources (DbTrading.sql)

mon blog
http://romagny13.over-blog.com/

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

thefolin
Messages postés
56
Date d'inscription
mercredi 3 octobre 2012
Statut
Membre
Dernière intervention
13 mai 2015
-
Bonjour très bon exemple sur MVVM. Je vais chipoter mais dans les points positif tu peux mettre aussi code réutilisable mais également peu de dépendance entre les classes ;)
Des petits exemples de partie bien ciblée serait le bien venue aussi. Mais ceci n'est qu'une perspective d'évolution.
Très belle exemple merci pour ton travail.

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.