Pour les utilisateurs la réactivité d'une application est un critère très important et une des clés de la réussite d'un projet. Dans cette session, vous découvrirez les bonnes pratiques pour réaliser des applications fluides et performantes en Silverlight, Windows Phone et WPF.
4. Toulouse Aix
Pure Player Microsoft depuis 1999
Diffuse une expertise novatrice Retrouvez nous sur
le stand 47
Contribue à l’émergence de logiciels
performants et ergonomiques
Ouverture d’une agence sur
Paris !
5. Fluidité Des
Les pièges à
Performance solutions
éviter
Réactivité simples
Facteur important Des exemples
d’adhésion concrets
14. Chargement du XAML
Le chargement du XAML c’est
« long »
animations saccadées blocage
Cas : XAML trop volumineux
différer le
chargement à volée
chargement
16. Encore plus loin !
On peut mentir 1 fois à 1000 personnes …
DEMO
17. A retenir
Le temps de chargement du XAML peut pénaliser
les performances
1ms peut rapidement devenir 100ms
Utilisez les ResourceDictionnary
Ne jamais mettre de UserControl dans des
DataTemplate
19. Layout
Pour chaque élément
Calcule la taille Calcule la position
Exécution
CPU Thread UI Très fréquent
Redimentionnemen
Scroll
t
Mauvais layout
Load Margin
Chargement, animations
Redimentionnement lent
…
saccadées
20. Optimisation
Supprimez tout ce qui est inutile
<UserControl> <StackPanel>
<Grid x:Name="LayoutRoot"> <Button />
<StackPanel> <Button />
<Button /> </StackPanel>
<Button />
</StackPanel> 99% des UserControls
</Grid>
</UserControl> sont inutiles
<ControlTemplate>
<Grid> <ControlTemplate>
<Border>
<Border Background="Black">
<Rectangle Fill="Black"/>
<ContentPresenter /> <ContentPresenter />
</Border> </Border>
</Grid> </ControlTemplate>
</ControlTemplate>
23. Qui dit fluidité, dit animation
Utilise le CPU
ajustez le
interaction avec le Layout
framerate
Dependency Property
différence de comportement décrochage
Terminal Server, Citrix
désactivez les animations
24. Animation / WPF Performance
Suite
Etre fluide, ou ne pas l’être
DEMO
30. A retenir
Ne jamais désactiver la virtualisation
Désactivation de la virtualisation
Regroupement de données
IsVirtualizing = False
CanContentScroll=False
Activez le recyclage
ItemsControl : pas de virtualisation par défaut
33. Comment ça marche ?
Optimisation du Layout
Temporisation Uniquement du TranslateTransform
Optimisation de la Virtualisation
Pas de Add/Remove Visibility=Collapsed
35. Trucs et astuces
Toujours tester sur le device ciblé
Impact de la résolution
Laptop débranché, économie d’énergie
Ralentissez vos traitements
Augmenter le volume de données
Impact de Debug et Trace
36. Pour aller plus loin
Prochaines sessions des Dev Camps
Chaque semaine, les 10
Live Open Data - Développer des applications riches avec le
février
DevCamps 2012
16
Meeting protocole Open Data
ALM, Azure, Windows Phone, HTML5, OpenData février
Live
Meeting
Azure series - Développer des applications sociales sur
la plateforme Windows Azure
2012
http://msdn.microsoft.com/fr-fr/devcamp
17
Live Comprendre le canvas avec Galactic et la librairie
février
Meeting three.js
2012
Téléchargement, ressources 21
février
Live La production automatisée de code avec CodeFluent
Meeting Entities
et toolkits : RdV sur MSDN 2012
2 mars Live Comprendre et mettre en oeuvre le toolkit Azure pour
http://msdn.microsoft.com/fr-fr/ 2012 Meeting Windows Phone 7, iOS et Android
6 mars Live
Nuget et ALM
2012 Meeting
Les offres à connaître 9 mars
2012
Live
Meeting
Kinect - Bien gérer la vie de son capteur
90 jours d’essai gratuit de Windows 13 mars
2012
Live
Meeting
Sharepoint series - Automatisation des tests
Azure 14 mars Live TFS Health Check - vérifier la bonne santé de votre
www.windowsazure.fr 2012 Meeting plateforme de développement
15 mars Live Azure series - Développer pour les téléphones, les
2012 Meeting tablettes et le cloud avec Visual Studio 2010
Jusqu’à 35% de réduction sur Visual 16 mars Live Applications METRO design - Désossage en règle d'un
Studio Pro, avec l’abonnement MSDN 2012 Meeting template METRO javascript
20 mars Live Retour d'expérience LightSwitch, Optimisation de
www.visualstudio.fr 2012 Meeting l'accès aux données, Intégration Silverlight
23 mars Live OAuth - la clé de l'utilisation des réseaux sociaux dans
2012 Meeting votre application
Présentation de la solution1 – Présentation du splachscreeview2 – Présentation de SplashScreenViewModel3 - Execution C’est rapide !4 – Problème du local !! Ajouter un Thread.Sleep dans Web/DossierService.svc5 - Exécution Blocage, Alt+Tab, …
Présentation de la solutionUtilisez la TPL pour rendre SynchronousViewModelasynchro -> Parler de la factorisation au travers de TaskViewModel/LoadViewModel
Dans HomeView supprimer le commentaire sur panStats.Content = new HugeView();
Dans HomeView supprimer le commentaire sur panStats.Content = new LargeXAMLView ();
Exemple de BadXAMLMailViewExpliquer la comboExpliquer le tempsBasculer de tabScroller