SlideShare une entreprise Scribd logo
1  sur  37
palais des
congrès
Paris




7, 8 et 9
février 2012
Fast and Furious XAML
Apps!


7 février
2012
Cyril
SANSUS
Bewise
Cyril Sansus
              Responsable NIU
       cyril.sansus@bewise.fr




@csansus      codes-sources.com/vko
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 !
Fluidité      Des
                          Les pièges à
Performance   solutions
                          éviter
Réactivité    simples



Facteur important         Des exemples
d’adhésion                concrets
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        Asynchronisme
  Simuler la lenteur    Thread.Sleep
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
Chargement efficace
Asynchronisme

DEMO
A retenir

Retour utilisateur

Facilitez-vous l’asynchronisme

Attention au LazyLoading

Ralentissez vos traitements
XAML
Trop de XAML,
tue le XAML

DEMO
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
Différer le chargement

DEMO
Encore plus loin !
On peut mentir 1 fois à 1000 personnes …

DEMO
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
Layout
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
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>
Mesurer les performances


Utilisez l’évènement LayoutUpdated

WPF Performance Tools

Autres outils
Snoop           Silverlight Spy   …
Animations
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
Animation / WPF Performance
Suite
Etre fluide, ou ne pas l’être

DEMO
Binding
Binding

Performant
peu compressible

Erreur et warning
vérifiez l’output

Converter
préparez vos données en
                          mise en cache
amont
Virtualisation d’UI
Présentation
Item 2
Item 3
Item 4
Item 5         Permet d’afficher
Item 6         des liste de
Item 7         plusieurs millions
Item 8         d’éléments
Item 9
Item 10
Item 11
Item 11
Virtualisation
Désactivation


DEMO
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
DataGrid
DataGrid
Fast And Furious DataGrid !


DEMO
Comment ça marche ?

Optimisation du Layout
Temporisation Uniquement du TranslateTransform


Optimisation de la Virtualisation
Pas de Add/Remove   Visibility=Collapsed
Tips & tricks
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
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
Q/A               merci

  cyril.sansus@bewise.fr

Contenu connexe

Tendances

Conférence "Architecture Android" du 19 Mars 2013 par Mathias Seguy fondateur...
Conférence "Architecture Android" du 19 Mars 2013 par Mathias Seguy fondateur...Conférence "Architecture Android" du 19 Mars 2013 par Mathias Seguy fondateur...
Conférence "Architecture Android" du 19 Mars 2013 par Mathias Seguy fondateur...Mathias Seguy
 
Design : Ne ratez pas le METRO
Design : Ne ratez pas le METRODesign : Ne ratez pas le METRO
Design : Ne ratez pas le METROMicrosoft
 
DES205 - Ne ratez pas le METRO
DES205 - Ne ratez pas le METRODES205 - Ne ratez pas le METRO
DES205 - Ne ratez pas le METROAudreyPetitPro
 
OCTO 2012 : Les pratiques des geants du web
OCTO 2012 : Les pratiques des geants du web OCTO 2012 : Les pratiques des geants du web
OCTO 2012 : Les pratiques des geants du web OCTO Technology
 
Spécifications et Planning : éxecution dans un monde Agile
Spécifications et Planning : éxecution dans un monde AgileSpécifications et Planning : éxecution dans un monde Agile
Spécifications et Planning : éxecution dans un monde AgileAgile Tour Genève
 
Blend 4 pour les designers (et pour les développeurs)
Blend 4 pour les designers (et pour les développeurs)Blend 4 pour les designers (et pour les développeurs)
Blend 4 pour les designers (et pour les développeurs)Microsoft
 
OCTO 2013 Professionnalisez vos développements mobiles
OCTO 2013 Professionnalisez vos développements mobilesOCTO 2013 Professionnalisez vos développements mobiles
OCTO 2013 Professionnalisez vos développements mobilesOCTO Technology
 
Android un nouveau futur s'ouvre à nous
Android un nouveau futur s'ouvre à nousAndroid un nouveau futur s'ouvre à nous
Android un nouveau futur s'ouvre à nousMathias Seguy
 
Les pratiques des geants du web
Les pratiques des geants du webLes pratiques des geants du web
Les pratiques des geants du webStephen PERIN
 
Architecture et Bonnes pratiques Android #DevoxxFr2016 Part2
Architecture et Bonnes pratiques Android #DevoxxFr2016 Part2Architecture et Bonnes pratiques Android #DevoxxFr2016 Part2
Architecture et Bonnes pratiques Android #DevoxxFr2016 Part2Mathias Seguy
 
TechDays 2012 - Windows Azure - ALM
TechDays 2012 - Windows Azure - ALMTechDays 2012 - Windows Azure - ALM
TechDays 2012 - Windows Azure - ALMJason De Oliveira
 
Quelle stratégie d'API pour votre S.I. ? USI 2012
Quelle stratégie d'API pour votre S.I. ? USI 2012Quelle stratégie d'API pour votre S.I. ? USI 2012
Quelle stratégie d'API pour votre S.I. ? USI 2012Stephen PERIN
 
Les ateliers android_1_vers2015
Les ateliers android_1_vers2015Les ateliers android_1_vers2015
Les ateliers android_1_vers2015Sabeur LAJILI
 

Tendances (13)

Conférence "Architecture Android" du 19 Mars 2013 par Mathias Seguy fondateur...
Conférence "Architecture Android" du 19 Mars 2013 par Mathias Seguy fondateur...Conférence "Architecture Android" du 19 Mars 2013 par Mathias Seguy fondateur...
Conférence "Architecture Android" du 19 Mars 2013 par Mathias Seguy fondateur...
 
Design : Ne ratez pas le METRO
Design : Ne ratez pas le METRODesign : Ne ratez pas le METRO
Design : Ne ratez pas le METRO
 
DES205 - Ne ratez pas le METRO
DES205 - Ne ratez pas le METRODES205 - Ne ratez pas le METRO
DES205 - Ne ratez pas le METRO
 
OCTO 2012 : Les pratiques des geants du web
OCTO 2012 : Les pratiques des geants du web OCTO 2012 : Les pratiques des geants du web
OCTO 2012 : Les pratiques des geants du web
 
Spécifications et Planning : éxecution dans un monde Agile
Spécifications et Planning : éxecution dans un monde AgileSpécifications et Planning : éxecution dans un monde Agile
Spécifications et Planning : éxecution dans un monde Agile
 
Blend 4 pour les designers (et pour les développeurs)
Blend 4 pour les designers (et pour les développeurs)Blend 4 pour les designers (et pour les développeurs)
Blend 4 pour les designers (et pour les développeurs)
 
OCTO 2013 Professionnalisez vos développements mobiles
OCTO 2013 Professionnalisez vos développements mobilesOCTO 2013 Professionnalisez vos développements mobiles
OCTO 2013 Professionnalisez vos développements mobiles
 
Android un nouveau futur s'ouvre à nous
Android un nouveau futur s'ouvre à nousAndroid un nouveau futur s'ouvre à nous
Android un nouveau futur s'ouvre à nous
 
Les pratiques des geants du web
Les pratiques des geants du webLes pratiques des geants du web
Les pratiques des geants du web
 
Architecture et Bonnes pratiques Android #DevoxxFr2016 Part2
Architecture et Bonnes pratiques Android #DevoxxFr2016 Part2Architecture et Bonnes pratiques Android #DevoxxFr2016 Part2
Architecture et Bonnes pratiques Android #DevoxxFr2016 Part2
 
TechDays 2012 - Windows Azure - ALM
TechDays 2012 - Windows Azure - ALMTechDays 2012 - Windows Azure - ALM
TechDays 2012 - Windows Azure - ALM
 
Quelle stratégie d'API pour votre S.I. ? USI 2012
Quelle stratégie d'API pour votre S.I. ? USI 2012Quelle stratégie d'API pour votre S.I. ? USI 2012
Quelle stratégie d'API pour votre S.I. ? USI 2012
 
Les ateliers android_1_vers2015
Les ateliers android_1_vers2015Les ateliers android_1_vers2015
Les ateliers android_1_vers2015
 

Similaire à Fast and Furious XAML Apps!

Améliorer votre productivité XAML en entreprise !
Améliorer votre productivité XAML en entreprise !Améliorer votre productivité XAML en entreprise !
Améliorer votre productivité XAML en entreprise !Microsoft
 
Développement de jeux pour Windows Phone 7.5 avec XNA et Silverlight
Développement de jeux pour Windows Phone 7.5 avec XNA et SilverlightDéveloppement de jeux pour Windows Phone 7.5 avec XNA et Silverlight
Développement de jeux pour Windows Phone 7.5 avec XNA et SilverlightMicrosoft
 
.NET Microframework, les joies de l'électronique et du code pour tous
.NET Microframework, les joies de l'électronique et du code pour tous.NET Microframework, les joies de l'électronique et du code pour tous
.NET Microframework, les joies de l'électronique et du code pour tousMicrosoft
 
La réalité augmentée dans les systèmes embarqués
La réalité augmentée dans les systèmes embarquésLa réalité augmentée dans les systèmes embarqués
La réalité augmentée dans les systèmes embarquésMicrosoft Décideurs IT
 
TFS 2010 And Agility
TFS 2010 And AgilityTFS 2010 And Agility
TFS 2010 And AgilityDominic Danis
 
Bornes, écrans, automates: ce qui se cache derrière les systèmes embarqués qu...
Bornes, écrans, automates: ce qui se cache derrière les systèmes embarqués qu...Bornes, écrans, automates: ce qui se cache derrière les systèmes embarqués qu...
Bornes, écrans, automates: ce qui se cache derrière les systèmes embarqués qu...Microsoft
 
Tech days 2012 mvvm de a à z
Tech days 2012   mvvm de a à zTech days 2012   mvvm de a à z
Tech days 2012 mvvm de a à zArnaud Auroux
 
JavaScript aussi sur le serveur et jusque dans le cloud?
JavaScript aussi sur le serveur et jusque dans le cloud?JavaScript aussi sur le serveur et jusque dans le cloud?
JavaScript aussi sur le serveur et jusque dans le cloud?Microsoft
 
Server Side Javascript in the cloud
Server Side Javascript in the cloudServer Side Javascript in the cloud
Server Side Javascript in the cloudstefounet
 
JavaScript aussi sur le serveur et jusque dans le cloud?
JavaScript aussi sur le serveur et jusque dans le cloud?JavaScript aussi sur le serveur et jusque dans le cloud?
JavaScript aussi sur le serveur et jusque dans le cloud?benjguin
 
Java dans Windows Azure: l'exemple de Jonas
Java dans Windows Azure: l'exemple de JonasJava dans Windows Azure: l'exemple de Jonas
Java dans Windows Azure: l'exemple de JonasMicrosoft
 
APIs Facebook, Twitter, Foursquare… tirer parti des réseaux sociaux dans votr...
APIs Facebook, Twitter, Foursquare… tirer parti des réseaux sociaux dans votr...APIs Facebook, Twitter, Foursquare… tirer parti des réseaux sociaux dans votr...
APIs Facebook, Twitter, Foursquare… tirer parti des réseaux sociaux dans votr...Microsoft
 
Architecturez vos applications mobiles avec Azure et Xamarin
Architecturez vos applications mobiles avec Azure et XamarinArchitecturez vos applications mobiles avec Azure et Xamarin
Architecturez vos applications mobiles avec Azure et XamarinThierry Buisson
 
Sauvegarder et restaurer l'état des applications mobiles
Sauvegarder et restaurer l'état des applications mobilesSauvegarder et restaurer l'état des applications mobiles
Sauvegarder et restaurer l'état des applications mobilespprem
 
De l’ergonomie aux bonnes méthodes de développement de vos applications Windo...
De l’ergonomie aux bonnes méthodes de développement de vos applications Windo...De l’ergonomie aux bonnes méthodes de développement de vos applications Windo...
De l’ergonomie aux bonnes méthodes de développement de vos applications Windo...Microsoft
 
Petit DéJeuner Industrialisation 13 10 2011 Eurosites
Petit DéJeuner Industrialisation 13 10 2011 EurositesPetit DéJeuner Industrialisation 13 10 2011 Eurosites
Petit DéJeuner Industrialisation 13 10 2011 EurositesHervé Leclerc
 
De A à Z : Choisir une architecture pour sa solution applicative
De A à Z : Choisir une architecture pour sa solution applicativeDe A à Z : Choisir une architecture pour sa solution applicative
De A à Z : Choisir une architecture pour sa solution applicativeMicrosoft
 
AgileTour Toulouse 2012 : TFS
AgileTour Toulouse 2012 : TFSAgileTour Toulouse 2012 : TFS
AgileTour Toulouse 2012 : TFSAgile Toulouse
 
Objet direct 2013-05-11 Microsoft ALM 2013 Software Factory
Objet direct 2013-05-11 Microsoft ALM 2013 Software FactoryObjet direct 2013-05-11 Microsoft ALM 2013 Software Factory
Objet direct 2013-05-11 Microsoft ALM 2013 Software FactoryFactoVia
 

Similaire à Fast and Furious XAML Apps! (20)

Améliorer votre productivité XAML en entreprise !
Améliorer votre productivité XAML en entreprise !Améliorer votre productivité XAML en entreprise !
Améliorer votre productivité XAML en entreprise !
 
Développement de jeux pour Windows Phone 7.5 avec XNA et Silverlight
Développement de jeux pour Windows Phone 7.5 avec XNA et SilverlightDéveloppement de jeux pour Windows Phone 7.5 avec XNA et Silverlight
Développement de jeux pour Windows Phone 7.5 avec XNA et Silverlight
 
.NET Microframework, les joies de l'électronique et du code pour tous
.NET Microframework, les joies de l'électronique et du code pour tous.NET Microframework, les joies de l'électronique et du code pour tous
.NET Microframework, les joies de l'électronique et du code pour tous
 
La réalité augmentée dans les systèmes embarqués
La réalité augmentée dans les systèmes embarquésLa réalité augmentée dans les systèmes embarqués
La réalité augmentée dans les systèmes embarqués
 
TFS 2010 And Agility
TFS 2010 And AgilityTFS 2010 And Agility
TFS 2010 And Agility
 
Bornes, écrans, automates: ce qui se cache derrière les systèmes embarqués qu...
Bornes, écrans, automates: ce qui se cache derrière les systèmes embarqués qu...Bornes, écrans, automates: ce qui se cache derrière les systèmes embarqués qu...
Bornes, écrans, automates: ce qui se cache derrière les systèmes embarqués qu...
 
Tech days 2012 mvvm de a à z
Tech days 2012   mvvm de a à zTech days 2012   mvvm de a à z
Tech days 2012 mvvm de a à z
 
JavaScript aussi sur le serveur et jusque dans le cloud?
JavaScript aussi sur le serveur et jusque dans le cloud?JavaScript aussi sur le serveur et jusque dans le cloud?
JavaScript aussi sur le serveur et jusque dans le cloud?
 
Server Side Javascript in the cloud
Server Side Javascript in the cloudServer Side Javascript in the cloud
Server Side Javascript in the cloud
 
JavaScript aussi sur le serveur et jusque dans le cloud?
JavaScript aussi sur le serveur et jusque dans le cloud?JavaScript aussi sur le serveur et jusque dans le cloud?
JavaScript aussi sur le serveur et jusque dans le cloud?
 
Java dans Windows Azure: l'exemple de Jonas
Java dans Windows Azure: l'exemple de JonasJava dans Windows Azure: l'exemple de Jonas
Java dans Windows Azure: l'exemple de Jonas
 
APIs Facebook, Twitter, Foursquare… tirer parti des réseaux sociaux dans votr...
APIs Facebook, Twitter, Foursquare… tirer parti des réseaux sociaux dans votr...APIs Facebook, Twitter, Foursquare… tirer parti des réseaux sociaux dans votr...
APIs Facebook, Twitter, Foursquare… tirer parti des réseaux sociaux dans votr...
 
Architecturez vos applications mobiles avec Azure et Xamarin
Architecturez vos applications mobiles avec Azure et XamarinArchitecturez vos applications mobiles avec Azure et Xamarin
Architecturez vos applications mobiles avec Azure et Xamarin
 
Sauvegarder et restaurer l'état des applications mobiles
Sauvegarder et restaurer l'état des applications mobilesSauvegarder et restaurer l'état des applications mobiles
Sauvegarder et restaurer l'état des applications mobiles
 
De l’ergonomie aux bonnes méthodes de développement de vos applications Windo...
De l’ergonomie aux bonnes méthodes de développement de vos applications Windo...De l’ergonomie aux bonnes méthodes de développement de vos applications Windo...
De l’ergonomie aux bonnes méthodes de développement de vos applications Windo...
 
Petit DéJeuner Industrialisation 13 10 2011 Eurosites
Petit DéJeuner Industrialisation 13 10 2011 EurositesPetit DéJeuner Industrialisation 13 10 2011 Eurosites
Petit DéJeuner Industrialisation 13 10 2011 Eurosites
 
De A à Z : Choisir une architecture pour sa solution applicative
De A à Z : Choisir une architecture pour sa solution applicativeDe A à Z : Choisir une architecture pour sa solution applicative
De A à Z : Choisir une architecture pour sa solution applicative
 
Architecture .net
Architecture  .netArchitecture  .net
Architecture .net
 
AgileTour Toulouse 2012 : TFS
AgileTour Toulouse 2012 : TFSAgileTour Toulouse 2012 : TFS
AgileTour Toulouse 2012 : TFS
 
Objet direct 2013-05-11 Microsoft ALM 2013 Software Factory
Objet direct 2013-05-11 Microsoft ALM 2013 Software FactoryObjet direct 2013-05-11 Microsoft ALM 2013 Software Factory
Objet direct 2013-05-11 Microsoft ALM 2013 Software Factory
 

Plus de Microsoft

Uwp + Xamarin : Du nouveau en terre du milieu
Uwp + Xamarin : Du nouveau en terre du milieuUwp + Xamarin : Du nouveau en terre du milieu
Uwp + Xamarin : Du nouveau en terre du milieuMicrosoft
 
La Blockchain pas à PaaS
La Blockchain pas à PaaSLa Blockchain pas à PaaS
La Blockchain pas à PaaSMicrosoft
 
Tester, Monitorer et Déployer son application mobile
Tester, Monitorer et Déployer son application mobileTester, Monitorer et Déployer son application mobile
Tester, Monitorer et Déployer son application mobileMicrosoft
 
Windows 10, un an après – Nouveautés & Démo
Windows 10, un an après – Nouveautés & Démo Windows 10, un an après – Nouveautés & Démo
Windows 10, un an après – Nouveautés & Démo Microsoft
 
Prenez votre pied avec les bots et cognitive services.
Prenez votre pied avec les bots et cognitive services.Prenez votre pied avec les bots et cognitive services.
Prenez votre pied avec les bots et cognitive services.Microsoft
 
Office 365 Dev PnP & PowerShell : exploitez enfin le potentiel de votre écosy...
Office 365 Dev PnP & PowerShell : exploitez enfin le potentiel de votre écosy...Office 365 Dev PnP & PowerShell : exploitez enfin le potentiel de votre écosy...
Office 365 Dev PnP & PowerShell : exploitez enfin le potentiel de votre écosy...Microsoft
 
Créer un bot de A à Z
Créer un bot de A à ZCréer un bot de A à Z
Créer un bot de A à ZMicrosoft
 
Microsoft Composition, pierre angulaire de vos applications ?
Microsoft Composition, pierre angulaire de vos applications ?Microsoft Composition, pierre angulaire de vos applications ?
Microsoft Composition, pierre angulaire de vos applications ?Microsoft
 
Les nouveautés SQL Server 2016
Les nouveautés SQL Server 2016Les nouveautés SQL Server 2016
Les nouveautés SQL Server 2016Microsoft
 
Conteneurs Linux ou Windows : quelles approches pour des IT agiles ?
Conteneurs Linux ou Windows : quelles approches pour des IT agiles ?Conteneurs Linux ou Windows : quelles approches pour des IT agiles ?
Conteneurs Linux ou Windows : quelles approches pour des IT agiles ?Microsoft
 
Administration et supervision depuis le Cloud avec Azure Logs Analytics
Administration et supervision depuis le Cloud avec Azure Logs AnalyticsAdministration et supervision depuis le Cloud avec Azure Logs Analytics
Administration et supervision depuis le Cloud avec Azure Logs AnalyticsMicrosoft
 
Retour d'expérience de projets Azure IoT "large scale" (MicroServices, portag...
Retour d'expérience de projets Azure IoT "large scale" (MicroServices, portag...Retour d'expérience de projets Azure IoT "large scale" (MicroServices, portag...
Retour d'expérience de projets Azure IoT "large scale" (MicroServices, portag...Microsoft
 
Plan de Reprise d'Activité avec Azure Site Recovery
Plan de Reprise d'Activité avec Azure Site RecoveryPlan de Reprise d'Activité avec Azure Site Recovery
Plan de Reprise d'Activité avec Azure Site RecoveryMicrosoft
 
Modélisation, déploiement et gestion des infrastructures Cloud : outils et bo...
Modélisation, déploiement et gestion des infrastructures Cloud : outils et bo...Modélisation, déploiement et gestion des infrastructures Cloud : outils et bo...
Modélisation, déploiement et gestion des infrastructures Cloud : outils et bo...Microsoft
 
Transformation de la représentation : De la VR à la RA, aller & retour.
Transformation de la représentation : De la VR à la RA, aller & retour.Transformation de la représentation : De la VR à la RA, aller & retour.
Transformation de la représentation : De la VR à la RA, aller & retour.Microsoft
 
Quelles architectures pour vos applications Cloud, de la VM au conteneur : ça...
Quelles architectures pour vos applications Cloud, de la VM au conteneur : ça...Quelles architectures pour vos applications Cloud, de la VM au conteneur : ça...
Quelles architectures pour vos applications Cloud, de la VM au conteneur : ça...Microsoft
 
Introduction à ASP.NET Core
Introduction à ASP.NET CoreIntroduction à ASP.NET Core
Introduction à ASP.NET CoreMicrosoft
 
Open Source et Microsoft Azure, rêve ou réalité ?
Open Source et Microsoft Azure, rêve ou réalité ?Open Source et Microsoft Azure, rêve ou réalité ?
Open Source et Microsoft Azure, rêve ou réalité ?Microsoft
 
Comment développer sur la console Xbox One avec une application Universal Win...
Comment développer sur la console Xbox One avec une application Universal Win...Comment développer sur la console Xbox One avec une application Universal Win...
Comment développer sur la console Xbox One avec une application Universal Win...Microsoft
 
Azure Service Fabric pour les développeurs
Azure Service Fabric pour les développeursAzure Service Fabric pour les développeurs
Azure Service Fabric pour les développeursMicrosoft
 

Plus de Microsoft (20)

Uwp + Xamarin : Du nouveau en terre du milieu
Uwp + Xamarin : Du nouveau en terre du milieuUwp + Xamarin : Du nouveau en terre du milieu
Uwp + Xamarin : Du nouveau en terre du milieu
 
La Blockchain pas à PaaS
La Blockchain pas à PaaSLa Blockchain pas à PaaS
La Blockchain pas à PaaS
 
Tester, Monitorer et Déployer son application mobile
Tester, Monitorer et Déployer son application mobileTester, Monitorer et Déployer son application mobile
Tester, Monitorer et Déployer son application mobile
 
Windows 10, un an après – Nouveautés & Démo
Windows 10, un an après – Nouveautés & Démo Windows 10, un an après – Nouveautés & Démo
Windows 10, un an après – Nouveautés & Démo
 
Prenez votre pied avec les bots et cognitive services.
Prenez votre pied avec les bots et cognitive services.Prenez votre pied avec les bots et cognitive services.
Prenez votre pied avec les bots et cognitive services.
 
Office 365 Dev PnP & PowerShell : exploitez enfin le potentiel de votre écosy...
Office 365 Dev PnP & PowerShell : exploitez enfin le potentiel de votre écosy...Office 365 Dev PnP & PowerShell : exploitez enfin le potentiel de votre écosy...
Office 365 Dev PnP & PowerShell : exploitez enfin le potentiel de votre écosy...
 
Créer un bot de A à Z
Créer un bot de A à ZCréer un bot de A à Z
Créer un bot de A à Z
 
Microsoft Composition, pierre angulaire de vos applications ?
Microsoft Composition, pierre angulaire de vos applications ?Microsoft Composition, pierre angulaire de vos applications ?
Microsoft Composition, pierre angulaire de vos applications ?
 
Les nouveautés SQL Server 2016
Les nouveautés SQL Server 2016Les nouveautés SQL Server 2016
Les nouveautés SQL Server 2016
 
Conteneurs Linux ou Windows : quelles approches pour des IT agiles ?
Conteneurs Linux ou Windows : quelles approches pour des IT agiles ?Conteneurs Linux ou Windows : quelles approches pour des IT agiles ?
Conteneurs Linux ou Windows : quelles approches pour des IT agiles ?
 
Administration et supervision depuis le Cloud avec Azure Logs Analytics
Administration et supervision depuis le Cloud avec Azure Logs AnalyticsAdministration et supervision depuis le Cloud avec Azure Logs Analytics
Administration et supervision depuis le Cloud avec Azure Logs Analytics
 
Retour d'expérience de projets Azure IoT "large scale" (MicroServices, portag...
Retour d'expérience de projets Azure IoT "large scale" (MicroServices, portag...Retour d'expérience de projets Azure IoT "large scale" (MicroServices, portag...
Retour d'expérience de projets Azure IoT "large scale" (MicroServices, portag...
 
Plan de Reprise d'Activité avec Azure Site Recovery
Plan de Reprise d'Activité avec Azure Site RecoveryPlan de Reprise d'Activité avec Azure Site Recovery
Plan de Reprise d'Activité avec Azure Site Recovery
 
Modélisation, déploiement et gestion des infrastructures Cloud : outils et bo...
Modélisation, déploiement et gestion des infrastructures Cloud : outils et bo...Modélisation, déploiement et gestion des infrastructures Cloud : outils et bo...
Modélisation, déploiement et gestion des infrastructures Cloud : outils et bo...
 
Transformation de la représentation : De la VR à la RA, aller & retour.
Transformation de la représentation : De la VR à la RA, aller & retour.Transformation de la représentation : De la VR à la RA, aller & retour.
Transformation de la représentation : De la VR à la RA, aller & retour.
 
Quelles architectures pour vos applications Cloud, de la VM au conteneur : ça...
Quelles architectures pour vos applications Cloud, de la VM au conteneur : ça...Quelles architectures pour vos applications Cloud, de la VM au conteneur : ça...
Quelles architectures pour vos applications Cloud, de la VM au conteneur : ça...
 
Introduction à ASP.NET Core
Introduction à ASP.NET CoreIntroduction à ASP.NET Core
Introduction à ASP.NET Core
 
Open Source et Microsoft Azure, rêve ou réalité ?
Open Source et Microsoft Azure, rêve ou réalité ?Open Source et Microsoft Azure, rêve ou réalité ?
Open Source et Microsoft Azure, rêve ou réalité ?
 
Comment développer sur la console Xbox One avec une application Universal Win...
Comment développer sur la console Xbox One avec une application Universal Win...Comment développer sur la console Xbox One avec une application Universal Win...
Comment développer sur la console Xbox One avec une application Universal Win...
 
Azure Service Fabric pour les développeurs
Azure Service Fabric pour les développeursAzure Service Fabric pour les développeurs
Azure Service Fabric pour les développeurs
 

Fast and Furious XAML Apps!

  • 1. palais des congrès Paris 7, 8 et 9 février 2012
  • 2. Fast and Furious XAML Apps! 7 février 2012 Cyril SANSUS Bewise
  • 3. Cyril Sansus Responsable NIU cyril.sansus@bewise.fr @csansus codes-sources.com/vko
  • 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
  • 7. Chargement … Veuillez patienter, un conseiller va vous répondre… DEMO
  • 8. Chargement efficace Ce qu’il faut faire Les outils Retour utilisateur BusyIndicator Ne pas bloquer Asynchronisme Simuler la lenteur Thread.Sleep
  • 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
  • 11. A retenir Retour utilisateur Facilitez-vous l’asynchronisme Attention au LazyLoading Ralentissez vos traitements
  • 12. XAML
  • 13. Trop de XAML, tue le XAML DEMO
  • 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>
  • 21. Mesurer les performances Utilisez l’évènement LayoutUpdated WPF Performance Tools Autres outils Snoop Silverlight Spy …
  • 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
  • 26. Binding Performant peu compressible Erreur et warning vérifiez l’output Converter préparez vos données en mise en cache amont
  • 28. Présentation Item 2 Item 3 Item 4 Item 5 Permet d’afficher Item 6 des liste de Item 7 plusieurs millions Item 8 d’éléments Item 9 Item 10 Item 11 Item 11
  • 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
  • 32. DataGrid Fast And Furious DataGrid ! DEMO
  • 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
  • 37. Q/A merci cyril.sansus@bewise.fr

Notes de l'éditeur

  1. 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, …
  2. Présentation de la solutionUtilisez la TPL pour rendre SynchronousViewModelasynchro -&gt; Parler de la factorisation au travers de TaskViewModel/LoadViewModel
  3. Dans HomeView supprimer le commentaire sur panStats.Content = new HugeView();
  4. Dans HomeView supprimer le commentaire sur panStats.Content = new LargeXAMLView ();
  5. Exemple de BadXAMLMailViewExpliquer la comboExpliquer le tempsBasculer de tabScroller
  6. Désactivation au niveau de la recherche