Testabilité, modularité, maintenabilité, performance. Autant de sujets à traiter pour le développeur de clients riches. Cette session décrira les patterns couramment utilisé en entreprise pour répondre à ces problématiques.
2. Améliorez votre
productivité XAML en 07/02/2012
entreprise
Luc VO VAN Thomas LEBRUN
Consultant Dev/UX Consultant
Microsoft Infinite Square
MVP Client App Dev
3. Luc Vo Van
Consultant chez Microsoft Consulting Services
Spécialités
.NET
XAML (Silverlight, WPF, Windows Phone, Surface, Metro…)
Expérience Utilisateur (UX)
Windows Azure
4. Microsoft Services
Une expertise tout au long du cycle de vie informatique
Entreprise Strategy
Microsoft Consulting Services
Support Premier
Evaluation Développement Stabilisation Support
Planification Déploiement Opérations
Alignement business & IT Déploiement et adoption Optimisation et Opération
Partenaires
5. Thomas Lebrun
Consultant Infinite Square
MVP Client Application Development
Spécialités
.NET
XAML (Silverlight, WPF, Windows Phone, Surface, Metro…)
Expérience Utilisateur (UX)
Auteur de:
WPF par la pratique
MVVM: De la découverte à la maitrise
6. INFINITE SQUARE en quelques
mots…de conseil, expertise, réalisation, et formation,
Société
exclusivement sur les technologies Microsoft
de développement d’applications et de la plateforme applicative
25+ collaborateurs spécialisés sur les techno MS,
dont 10 MVP…
GOLD Certified Partner
sur 4 domaines de compétences
Agréé CIR
Centre de formation
agréé
7. Objectif de la session
Des techniques éprouvées
Pour vous faire gagner du temps
8. Agenda
Recap!*
Les Behaviors, les ViewStates*
Quel Framework MVVM ?
Pattern ViewModelLocator
Bien choisir ses contrôles, cas concrets!
Asynchronisme : des applications réactives
Gestion élégante des erreurs
9. Récap !
Vu aux TechDays 2011
Architecture type
IoC
Chargement de Modules
Services
ViewFirst / ViewModelFirst
Testing
10. Récap !
Pourquoi XAML en entreprise ?
Disponible sur tous types de form factors
Haute productivité
Ecosystème riche
Développeurs
Documentation (MSDN, Blogs, Codeplex…)
Frameworks & contrôles tiers
Outillage mature (VS + Blend, outils tiers)
11. Les behaviors
Equivalent des méthode d’extensions pour les contrôles
Permettent d’ajouter simplement des fonctionnalités
Sans avoir accès au code source
Sans faire d’héritage
Basé sur le SDK Expression Blend
13. Les ViewStates
Permet de définir des états visuels avec transitions
Très utilisé avec les formulaires
Passage du mode édition au mode lecture
Passage du mode simple au mode détaillé
Utilisable avec MVVM
Liaison aux ViewModels avec le DataStateBehavior
Attention à la taille du XAML à parser !
15. Quel Framework MVVM ?
Il y a beaucoup de choix de qualité !
Critères
Commanding
Modularité, messaging
Impact sur le code, adhérence
Shell services
Validation
16. Quel Framework MVVM ?
Il y a beaucoup de choix de qualité !
MVVM Light
Cinch
Prism
Caliburn
…
17. ViewModelLocator
Approche MVVM
Point d’accès central à l’ensemble des ViewModels
Facilite l’utilisation de l’injection de dépendances
Flexibilité par l’injection
Meilleure "blendabilité"
19. Bien choisir ses contrôles
Fonctionnalités VS Complexité VS Performance
Checklist
Behaviors
Retemplate ? Héritage ? Est-ce le bon contrôle ?
Utiliser un composant du marché
Réécrire un contrôle
20. Bien choisir ses contrôles :
DataGrid
Cas 1 : Quand la ListView suffit
Lecture seule
Performance
Simplicité
21. Bien choisir ses contrôles :
DataGrid
Cas 2 : Composants du marché
Utilisation d’un composant tiers
Possibilité d’en changer de composant en fonction des
besoins
Performance
Ouverture aux autres technologies
22. Bien choisir ses contrôles :
DataGrid
Cas 2
myUIModel
=
new UIModel(source)
Modèle métier Modèle UI
myControl.Model
=
myUIModel
Autre Contrôle maître
Contrôle tiers
Contrôle tiers mappings
tiersControl <-> myUIModel
23. Bien choisir ses contrôles :
DataGridla mano
Cas 3 : à
Performance
Grille interactive, edition/lecture simples : que des
chiffres
Contrôle from scratch
Panel virtualisé, scrolling
Réduction drastique du visual tree
Gestion de la navigation clavier…
24. Bien choisir ses contrôles
Que vous le vouliez ou non : vous créez un framework
Quel est son coût d’entrée ?
Quelles sont les fonctionnalités implémentées ?
Est-il réutilisable ?
Créez une solution autonome permettant de
Tester instantanément vos développements UI
Démontrer et expliquer votre framework
Eviter les dépendances accidentelles
25. Asynchronisme
Libérez le thread UI dès que possible!
Ressenti de l’utilisateur
Contrôle
Performance
Qualité
Confiance!
26. Asynchronisme
Libérez le thread UI dès que possible!
Concrètement
BackgroundWorker
Tasks
Méthodes Async sur les proxies WCF
Threads (au pire!)
ProgressBar
Sablier
StatusBar
28. Gestion élégante des erreurs
Relativisez !
Prévoir les erreurs imprévues
Récupérer les traces
Inviter l’utilisateur à les communiquer, le rassurer (un peu )
Concrètement
Envoyer par email
Copier dans le presse-papier
Journal des évènements (WPF)
Capture d’écran
30. Q&A
13:00 WPF 4.5 Quoi de neuf pour les développeurs
?
14:30 XAML / WPF Chasse aux fuites mémoire !
31. Pour aller plus loin
Chaque semaine, les DevCamps Prochaines sessions des Dev Camps
10 février Open Data - Développer des applications riches avec le protocole Open
Live Meeting
ALM, Azure, Windows Phone, HTML5, OpenData 2012 Data
http://msdn.microsoft.com/fr-fr/devcamp 16 février
2012
Live Meeting
Azure series - Développer des applications sociales sur la plateforme
Windows Azure
17 février
Live Meeting Comprendre le canvas avec Galactic et la librairie three.js
2012
Téléchargement, ressources et 21 février
2012
Live Meeting La production automatisée de code avec CodeFluent Entities
toolkits : RdV sur MSDN 2 mars
2012
Live Meeting
Comprendre et mettre en oeuvre le toolkit Azure pour Windows Phone 7,
iOS et Android
http://msdn.microsoft.com/fr-fr/
6 mars
Live Meeting Nuget et ALM
2012
Les offres à connaître
9 mars
Live Meeting Kinect - Bien gérer la vie de son capteur
2012
13 mars
90 jours d’essai gratuit de Windows Azure 2012
Live Meeting Sharepoint series - Automatisation des tests
www.windowsazure.fr 14 mars
2012
Live Meeting
TFS Health Check - vérifier la bonne santé de votre plateforme de
développement
15 mars Azure series - Développer pour les téléphones, les tablettes et le cloud
Jusqu’à 35% de réduction sur Visual Studio 2012
Live Meeting
avec Visual Studio 2010
Pro, avec l’abonnement MSDN 16 mars
2012
Live Meeting
Applications METRO design - Désossage en règle d'un template METRO
javascript
www.visualstudio.fr 20 mars
Live Meeting
Retour d'expérience LightSwitch, Optimisation de l'accès aux données,
2012 Intégration Silverlight
23 mars
Live Meeting OAuth - la clé de l'utilisation des réseaux sociaux dans votre application
2012