Télécharger la présentation
La présentation est en train de télécharger. S'il vous plaît, attendez
Publié parDieudonnée Jacquet Modifié depuis plus de 10 années
2
22 Model-View-ViewModel et testabilité pour WPF/Silverlight Richard Clark Clark Ingénierie Informatique Simon Ferquel Access It
3
33 Clark Ingénierie Informatique http://www.c2i.fr Livres chez Microsoft Press Expert CodeFluent 2001-2009 RIP! Expertise.NET
4
44 Access It en quelques mots… Consulting/expertise, réalisation (projet /assistance technique) et formation (CPLS) sur les technologies Microsoft Haut niveau de certification 2 agences à Lille et Paris, couverture nationale Centre des Usages pour la région Nord 3 grands domaines dexpertise technologique Plateforme applicative : SharePoint, SQL Server & BI, BizTalk.Net : architecture, Framework & langages, RIA/RDA (Silverlight, WPF, Surface), industrialisation/ALM (TFS/VSTS)… Infrastructure : poste de travail, serveurs, virtualisation, messagerie, annuaire… http://www.access-it.fr
5
55 M-V-VM : LA STAR ! Cinch MVVM Light Toolkit MVVM Helpers MVVM Foundation Caliburn Onyx Calcium nRoute Basic MVVM Framework GoodLight Ocean Nito MVVM… Prism ?
6
66 M-V-VM : Principes de base View ViewModel Model XAMLClasse Databinding Business Objects
7
77 M-V-VM Démo Mise en place
8
88 Testabilité - Pourquoi Testabilité réparatrice Reproduire tout bug de manière automatisée Isoler le composant fautif et à détecter précisément la cause de l ' erreur Assurer la non-régression pour la suite du projet Test Driven Development Assurer la robustesse des composants dès le départ Détecter très tôt la plupart des bugs Assurer la facilité d 'utilisation des composants
9
99 M-V-VM Démo
10
10 M-V-VM Démo Relay Command
11
11 Testabilité – Comment ? (1) Isolation : Etre capable de remplacer toutes les dépendances Paramètres de constructeur Injection de propriétés Appeler une fonctionnalité Valider l'état après appel Valider les communications avec les dépendances
12
12 Testabilité – Comment ? (2) IoC / Injection de dépendances Beaucoup d'implémentations (Unity, Castle / Windsor, Spring.Net, StructureMap…) Implémentation Microsoft : Unity
13
13 DI : Configuration Container.RegisterType<SocietesViewModelBase, SocietesViewModel>(); Container.RegisterType<ISocieteDAL, SocieteDAL>(new ContainerControlledLifetimeManager()); Ou fichier de configuration
14
14 Utilisation Appel au container public class SocietesViewModel : SocietesViewModelBase { public SocieteViewModel(ISocieteDAL dal){} } … var vm = Container.Resolve ();
15
15 M-V-VM Démo
16
16 M-V-VM Démo ViewModel « complexe » Méthodes asynchrones
17
17 Tester du code asynchrone Mocker un service asynchrone Comprendre le fonctionnement Begin/End Dispatcher Comprendre le principe de pompe à messages Le test doit déclencher la pompe… Mais ne doit pas la bloquer… Attention, il va y avoir des Threads ! Pour Silverlight : C'est beaucoup plus simple !
18
18 M-V-VM Démo
19
19 M-V-VM Questions ?
Présentations similaires
© 2024 SlidePlayer.fr Inc.
All rights reserved.