WPF MVVM

3 621 vues

Publié le

  • Soyez le premier à commenter

WPF MVVM

  1. 1. Le 14/11/2011 ATELIERSWPF - MVVM
  2. 2. Plan de la présentation • I- Partie Théorique • Introduction de WPF • WPF vs WinForms • Avantages / Inconvénients WPF • Problèmes de développement • Pattern de conception MVVM • II- Partie Pratique • WPF et MVVM • Introduction du MVVM Light Toolkit • MVVM Light Toolkit in WPF • Conclusion
  3. 3. PARTIE THEORIQUE
  4. 4. Introduction• Arrivée Windows VISTA Au niveau de la communication (WCF) Au niveau de l’affichage (WPF) Le systéme de fichiers 4
  5. 5. Carte d’identité 5
  6. 6. WPF VS Winforms
  7. 7. Exemple d’applications 7
  8. 8. Avantages WPF• Utilisation du GPU• Séparation code / design
  9. 9. Avantages WPF• Graphismes vectoriels• Transparence par pixel• Animations• Adaptation à la résolution • Support du data binding
  10. 10. Inconvénients WPF• Not Freeware• Manque d’interopérabilité• Tout est à refaire ?
  11. 11. Structure du projet Projet WPF N `     … 11
  12. 12. Outils & Matériel nécessaires • Outils Microsoft pour les développeurs et les designers Avec XAML, les développeurs • Programmation déclarative avec et les designers peuvent XAML affiner leur collaborationLes designers conçoivent les UI les développeurs ajoutent la logique métier
  13. 13. PROBLÈMES DÉVELOPPEMENT
  14. 14. Problèmes typiques de développement• Code étroitement couplé qui est difficile à maintenir et à étendre.• Il peut être difficile de séparer l‘état, la logique et la présentation UI.• Il est difficile de tester létat et la logique UI.• Le concepteur est lié aux composants UI écrits par le développeur.
  15. 15. PATTERNS DE CONCEPTION
  16. 16. Solution …??• Code étroitement couplé qui est difficile à maintenir et à étendre.• Il peut être difficile de séparer l‘état et la logique UI de la présentation UI.• Il est difficile de tester létat et la logique UI.• Le concepteur est lié aux composants UI écrits par le développeur.
  17. 17. MVvMMVC MVP
  18. 18. MVCModel – View – Controller • Considéré comme le premier motif pour séparer l‘UI, les données et la logique métier • Controller gère toute logique, y compris les événements souris et clavier
  19. 19. MVPModel – View – Presenter • Variation du MVC • Adapté pour l’UI qui gère mieux les événements souris et clavier • Presenter dépend de la View
  20. 20. MVvMModel – Vos données • Entities • Service Proxy • POCO • Données XML
  21. 21. MVvMView – UI XAML (WPF)
  22. 22. MVvMViewModel – Le modèle de la vue •Etats •Opérations •Ne dépends pas de la View
  23. 23. Data Binding
  24. 24. QUAND UTILISER QUOI?• MVC – Lien View- Reste Programme pas toujours disponible (Microsoft ASP.NET MVC).• MVP – Liaison via un DataContext pas possible(WinForms)• MVvM – Liaison via un DataContext est possible (WPF)
  25. 25. MVvM Pas de code-behind dans XAML ViewModel passé comme DataContext pour UI ViewModel et Model ne doivent pas accéder à nimporte quel composant ou objet UI ViewModel hérite de INotifyPropertyChanged. – source de liaison ViewModel encapsule Model
  26. 26. PARTIE PRATIQUE
  27. 27. WPF ET MVVM
  28. 28. MVVM LIGHT TOOLKIT
  29. 29. Pourquoi ? • Accélérer le développement dapplications MVVM – WPF – Silverlight – Windows Phone. • Séparer la View du Model • Créer des applications testables
  30. 30. Composition Une dll « GalaSoft.MvvmLight.dll » RelayCommand – RelayCommand<T> Messenger ViewModelBase
  31. 31. MVVM LIGHT IN WPF
  32. 32. Conclusion Faciliter la réalisation dune application WPF • Abstraction de la vue • Réduction du code dans le code-behind • Classes Vue-Modèle testables • Amélioration du workflow dev/ designer 32

×