palais descongrèsParis7, 8 et 9février 2012
Fast and Furious XAMLApps!7 février2012CyrilSANSUSBewise
Cyril Sansus              Responsable NIU       cyril.sansus@bewise.fr@csansus      codes-sources.com/vko
Toulouse      AixPure Player Microsoft depuis 1999Diffuse une expertise novatrice           Retrouvez nous sur            ...
Fluidité      Des                          Les pièges àPerformance   solutions                          éviterRéactivité  ...
Expérience de chargement
Chargement …Veuillez patienter, un conseiller va vous répondre…DEMO
Chargement efficace  Ce qu’il faut faire   Les outils  Retour utilisateur    BusyIndicator  Ne pas bloquer        Asynchro...
Asynchronisme Thread               Accès aux ThreadPool           WebServices BackgroundWorker     WebRequest, Socket Délé...
Chargement efficaceAsynchronismeDEMO
A retenirRetour utilisateurFacilitez-vous l’asynchronismeAttention au LazyLoadingRalentissez vos traitements
XAML
Trop de XAML,tue le XAMLDEMO
Chargement du XAMLLe chargement du XAML c’est« long »animations saccadées            blocageCas : XAML trop volumineuxdiff...
Différer le chargementDEMO
Encore plus loin !On peut mentir 1 fois à 1000 personnes …DEMO
A retenirLe temps de chargement du XAML peut pénaliserles performances1ms peut rapidement devenir 100msUtilisez les Resour...
Layout
LayoutPour chaque élémentCalcule la taille      Calcule la positionExécutionCPU      Thread UI    Très fréquent           ...
OptimisationSupprimez tout ce qui est inutile<UserControl>                           <StackPanel>    <Grid x:Name="LayoutR...
Mesurer les performancesUtilisez l’évènement LayoutUpdatedWPF Performance ToolsAutres outilsSnoop           Silverlight Sp...
Animations
Qui dit fluidité, dit animationUtilise le CPU                               ajustez leinteraction avec le Layout          ...
Animation / WPF PerformanceSuiteEtre fluide, ou ne pas l’êtreDEMO
Binding
BindingPerformantpeu compressibleErreur et warningvérifiez l’outputConverterpréparez vos données en                       ...
Virtualisation d’UI
PrésentationItem 2Item 3Item 4Item 5         Permet d’afficherItem 6         des liste deItem 7         plusieurs millions...
VirtualisationDésactivationDEMO
A retenirNe jamais désactiver la virtualisationDésactivation de la virtualisation  Regroupement de données  IsVirtualizi...
DataGrid
DataGridFast And Furious DataGrid !DEMO
Comment ça marche ?Optimisation du LayoutTemporisation Uniquement du TranslateTransformOptimisation de la VirtualisationPa...
Tips & tricks
Trucs et astucesToujours tester sur le device cibléImpact de la résolutionLaptop débranché, économie d’énergieRalentissez ...
Pour aller plus loin                                               Prochaines sessions des Dev Camps  Chaque semaine, les ...
Q/A               merci  cyril.sansus@bewise.fr
Prochain SlideShare
Chargement dans…5
×

Fast and Furious XAML Apps!

585 vues

Publié le

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.

Publié dans : Technologie
0 commentaire
0 j’aime
Statistiques
Remarques
  • Soyez le premier à commenter

  • Soyez le premier à aimer ceci

Aucun téléchargement
Vues
Nombre de vues
585
Sur SlideShare
0
Issues des intégrations
0
Intégrations
5
Actions
Partages
0
Téléchargements
11
Commentaires
0
J’aime
0
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive
  • 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 -&gt; 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
  • Désactivation au niveau de la recherche
  • Fast and Furious XAML Apps!

    1. 1. palais descongrèsParis7, 8 et 9février 2012
    2. 2. Fast and Furious XAMLApps!7 février2012CyrilSANSUSBewise
    3. 3. Cyril Sansus Responsable NIU cyril.sansus@bewise.fr@csansus codes-sources.com/vko
    4. 4. Toulouse AixPure Player Microsoft depuis 1999Diffuse une expertise novatrice Retrouvez nous sur le stand 47Contribue à l’émergence de logicielsperformants et ergonomiques Ouverture d’une agence sur Paris !
    5. 5. Fluidité Des Les pièges àPerformance solutions éviterRéactivité simplesFacteur important Des exemplesd’adhésion concrets
    6. 6. Expérience de chargement
    7. 7. Chargement …Veuillez patienter, un conseiller va vous répondre…DEMO
    8. 8. Chargement efficace Ce qu’il faut faire Les outils Retour utilisateur BusyIndicator Ne pas bloquer Asynchronisme Simuler la lenteur Thread.Sleep
    9. 9. Asynchronisme Thread Accès aux ThreadPool WebServices BackgroundWorker WebRequest, Socket Délégué asynchrone File / Isolated Storage TPL Accès base de Async données Traitement lourd
    10. 10. Chargement efficaceAsynchronismeDEMO
    11. 11. A retenirRetour utilisateurFacilitez-vous l’asynchronismeAttention au LazyLoadingRalentissez vos traitements
    12. 12. XAML
    13. 13. Trop de XAML,tue le XAMLDEMO
    14. 14. Chargement du XAMLLe chargement du XAML c’est« long »animations saccadées blocageCas : XAML trop volumineuxdifférer le chargement à voléechargement
    15. 15. Différer le chargementDEMO
    16. 16. Encore plus loin !On peut mentir 1 fois à 1000 personnes …DEMO
    17. 17. A retenirLe temps de chargement du XAML peut pénaliserles performances1ms peut rapidement devenir 100msUtilisez les ResourceDictionnaryNe jamais mettre de UserControl dans desDataTemplate
    18. 18. Layout
    19. 19. LayoutPour chaque élémentCalcule la taille Calcule la positionExécutionCPU Thread UI Très fréquent Redimentionnemen Scroll tMauvais layout Load Margin Chargement, animationsRedimentionnement lent … saccadées
    20. 20. OptimisationSupprimez 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>
    21. 21. Mesurer les performancesUtilisez l’évènement LayoutUpdatedWPF Performance ToolsAutres outilsSnoop Silverlight Spy …
    22. 22. Animations
    23. 23. Qui dit fluidité, dit animationUtilise le CPU ajustez leinteraction avec le Layout framerateDependency Propertydifférence de comportement décrochageTerminal Server, Citrixdésactivez les animations
    24. 24. Animation / WPF PerformanceSuiteEtre fluide, ou ne pas l’êtreDEMO
    25. 25. Binding
    26. 26. BindingPerformantpeu compressibleErreur et warningvérifiez l’outputConverterpréparez vos données en mise en cacheamont
    27. 27. Virtualisation d’UI
    28. 28. PrésentationItem 2Item 3Item 4Item 5 Permet d’afficherItem 6 des liste deItem 7 plusieurs millionsItem 8 d’élémentsItem 9Item 10Item 11Item 11
    29. 29. VirtualisationDésactivationDEMO
    30. 30. A retenirNe jamais désactiver la virtualisationDésactivation de la virtualisation  Regroupement de données  IsVirtualizing = False  CanContentScroll=FalseActivez le recyclageItemsControl : pas de virtualisation par défaut
    31. 31. DataGrid
    32. 32. DataGridFast And Furious DataGrid !DEMO
    33. 33. Comment ça marche ?Optimisation du LayoutTemporisation Uniquement du TranslateTransformOptimisation de la VirtualisationPas de Add/Remove Visibility=Collapsed
    34. 34. Tips & tricks
    35. 35. Trucs et astucesToujours tester sur le device cibléImpact de la résolutionLaptop débranché, économie d’énergieRalentissez vos traitementsAugmenter le volume de donnéesImpact de Debug et Trace
    36. 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 dun Studio Pro, avec l’abonnement MSDN 2012 Meeting template METRO javascript 20 mars Live Retour dexpérience LightSwitch, Optimisation de www.visualstudio.fr 2012 Meeting laccès aux données, Intégration Silverlight 23 mars Live OAuth - la clé de lutilisation des réseaux sociaux dans 2012 Meeting votre application
    37. 37. Q/A merci cyril.sansus@bewise.fr

    ×