SlideShare ist ein Scribd-Unternehmen logo
1 von 59
Boostez votre application
                                      Windows Phone 8
                                  Charlotte GAIDON, Jérémy ALLES
                                 Pôle expertise Microsoft Grenoble
                                                           THALES

                                                               APP103
                                                     www.2day-app.com

                                                       bit.ly/perfwp7
Boostez votre application WP8
Présentation
Charlotte Gaidon                      Jérémy Alles
   Formatrice WPF / Silverlight            MVP / WPF Disciples
   charlotte.gaidon@gmail.com              jeremy.alles@live.com
   @nutchad                                @jalpf
                                           www.japf.fr




   Cœur de métier : applications industrielles
   Agence de 200 collaborateurs à Grenoble
   Pôle d’expertise sur les technologies Microsoft

        13/02/2013           Boostez votre application WP8         2
Agenda
• Quoi de neuf WP8 ?

• Sans les mains !

• Avec un peu de bonne volonté !

• Pour les plus courageux !
     13/02/2013   Boostez votre application WP8   3
Quoi de neuf docteur ?

CE QUI CHANGE AVEC WP8

     13/02/2013      Boostez votre application WP8   4
Flashback




    13/02/2013   Boostez votre application WP8   5
Nouveau noyau
• Windows Phone 7 : noyau CE de Windows
  Mobile
• Windows Phone 8 : noyau NT Windows 8
     Recoupement entre les runtimes « Desktop » et « Phone »


                                  Shared
                                    API




     13/02/2013      Boostez votre application WP8             6
Et mes applis ?                               bit.ly/perfwp8-upgrade
Compatibilité avec les 120 000 applis existantes !
            Upgrade to WP8

    WP7.x App            WP8 App




   Quirks Mode
       Shim

              WP8 Runtime

      13/02/2013        Boostez votre application WP8                     7
Nouveau hardware

• dual-core 1024 Mo de RAM
  – devices           puissants
  – encore            d’intérêt à paralléliser 


• résolutions plus grandes
• 2 formats possibles
  Application.Current.Host.Content.ScaleFactor

         13/02/2013          Boostez votre application WP8   8
NOUVEAUX OUTILS

  13/02/2013   Boostez votre application WP8   9
Nouvel émulateur


• Différentes caractéristiques de device
• Hyper-V (processeur SLAT requis)

• Attention aux perfs dans l’émulateur WP7

      13/02/2013   Boostez votre application WP8   10
Profiling et Monitoring
VS2012 apporte des nouveautés




    13/02/2013   Boostez votre application WP8   11
13/02/2013   Boostez votre application WP8   12
Rappel des bonnes pratiques

• Limiter la taille de l’arbre visuel
• Fuites mémoire : attention aux events !
• Tirer parti du thread compositor
  – ScaleTransform vs animation FontSize
                                                  bit.ly/perfwp7
  – TranslateTransform vs animation Margin



     13/02/2013   Boostez votre application WP8                    13
Economie d’énergie
•   Utiliser la compression GZip bit.ly/perfwp8-gzip
•   Regrouper les requêtes web
•   Thème foncé vs thème clair
•   JPEG plus économe que PNG



       13/02/2013   Boostez votre application WP8      14
Simulation Dashboard

• Connexion réseau
• Ecran de verrouillage
• Rappel




     13/02/2013   Boostez votre application WP8   15
C# Async                                      bit.ly/perfwp8-async




  13/02/2013   Boostez votre application WP8                      16
Sit down and relax

        SANS LES MAINS !

Boostez votre application WP8 – Sans les mains ! votre application WP8
                 13/02/2013              Boostez                         17
Les compteurs
 Composition thread frame
           rate                    • Fill Rate
    UI thread frame rate                 – WP7 : limite entre 2 et 4
                                         – WP8 : limite entre 5 et 6
  Texture memory usage

       Surface counter           Current.Host.Settings.EnableFrameRateCounter
                                 Current.Host.Settings.EnableRedrawRegions
Intermediate surface counter

  Screen fill rate counter
   13/02/2013       Boostez votre application WP8                            18
Gains en performances

•   Progress Bar
•   Panorama
•   LongListSelector
•   ViewPortControl
     – Off thread input


        13/02/2013    Boostez votre application WP8   19
Accrochez-vous 

COMPILATION DANS LE

     13/02/2013    Boostez votre application WP8   20
Du code C# au code machine
Device Développeur



                                           Compilateur                 Intermediate
                       Code C#
                                              C#                         Language


                                           Compilateur
                     Code machine
                                              JIT




                          13/02/2013   Boostez votre application WP8                  21
Génération et utilisation du code machine
 • Avantages
   – Le code IL est indépendant de la machine
   – On ne compile pas le code dont on ne se sert pas


 • Inconvénients
   – Ajoute un surcoût à l’exécution
   – Handicap pour le temps de démarrage des applications

    13/02/2013   Boostez votre application WP8          22
Une solution ?
• Ne plus faire de code IL ?
• Faire le JIT « à l’avance » ?

• Ce n’est pas une idée nouvelle : NGEN
  – Exemple : Paint.Net



     13/02/2013    Boostez votre application WP8   23
NGEN

                    Compilateur            Intermediate
  Code C#                                                 NGEN
                       C#                    Language



Code machine




       13/02/2013       Boostez votre application WP8            24
NGEN : oui, mais…
                                 Mscorlib.dll




                 App1.exe
                                                  Library.dll



                                       App2.exe


    13/02/2013    Boostez votre application WP8                 25
NGEN : oui, mais…
                                 Mscorlib.dll




                 App1.exe
                                                  Library.dll



                                       App2.exe


    13/02/2013    Boostez votre application WP8                 26
NGEN : oui, mais…
                                 Mscorlib.dll




                 App1.exe
                                                  Library.dll



                                       App2.exe


    13/02/2013    Boostez votre application WP8                 27
De quoi a-t-on besoin ?
• Un démarrage rapide
  – Supprimer le coût du JIT au démarrage


• Déploiement facile et rapide
  – Temps d’exécution de NGEN trop long


• Pouvoir gérer les mises à jour de l’OS
  – Ne pas perdre les images compilées après update
     13/02/2013   Boostez votre application WP8       28
Recompilation en cascade : pourquoi ?
class Base
                                                          0x0   MethodTable
      int                                                 0x4        i
      string                                              0x8        s
      virtual void

class AppDerived
                                                          0x0   MethodTable
                                                          0x4        i
      int
                                                          0x8        s
      int           int              return
                                                          0xC        j
       13/02/2013         Boostez votre application WP8                       29
int foo(int a) { return a + j; }


                                                   0x0   MethodTable
                                                   0x4        i
                                                   0x8        s
                                                   0xC        j




      13/02/2013   Boostez votre application WP8                       30
Evolution de la classe mère

class Base
                                                      0x0   MethodTable
       int
       string                                         0x4        i
       int
       virtual void                                   0x8        s

                                                      0xC        k



      13/02/2013      Boostez votre application WP8                       31
Le code généré devient invalide

                   L’offset devrait
                      être 0x10 !
                                                 0x0    MethodTable
                                                 0x4         i
                                                 0x8         s
                                                 0xC         k
                                                 0x10        j



    13/02/2013   Boostez votre application WP8                        32
Idée : marquer les potentiels
changements…
                  Remplacé via une
                    étape de link
                   supplémentaire




     13/02/2013   Boostez votre application WP8   33
Résumé : MDIL
• Compiler ce qui ne changera jamais directement

• Ajouter des tokens pour ce qui pourra changer

• Remplacer les tokens au moment de l’install


• Mise à jour refaire l’édition de lien à nouveau
       13/02/2013   Boostez votre application WP8    34
Pourquoi compilation « dans le nuage » ?

    C# Source                               MSIL               MDIL              MDIL
      Code            C# Compiler         Assembly                             Assembly
                                                              Compiler




                                         Téléchargement sur
                                              le device
                                                                                      Cette partie se
                                                                                      passe “dans le
                                                                                         cloud” !
             MDIL             Native                 Native
           Assembly           Image                   DLL          Exécution
                             Generator




    13/02/2013                Boostez votre application WP8                                             35
De quoi avait-on besoin ?
• Un démarrage rapide

• Déploiement facile et rapide

• Pouvoir gérer les mises à jour de l’OS


     13/02/2013   Boostez votre application WP8   36
Comment tester ?
• Avoir un vrai device 




     13/02/2013   Boostez votre application WP8   37
AVEC UN PEU DE BONNE VOLONTÉ
!
  13/02/2013   Boostez votre application WP8   38
La consommation mémoire

• Respecter la limite                      bit.ly/perfwp8-memory
  – Mesurer la consommation mémoire


• 2 nouveaux paramètres de BitmapImage
  – DecodePixelWidth
  – DecodePixelHeight


      13/02/2013   Boostez votre application WP8                   39
démo
Compteur mémoire

SLIDE SHOW

    13/02/2013     Boostez votre application WP8   40
Fast-App-Resume

DÉMARRAGE ÉCLAIR

     13/02/2013   Boostez votre application WP8   41
démo
Multi-tasking

WP7 VS W8

     13/02/2013   Boostez votre application WP8   42
Fast-App-Switching ou Fast-App-Resume
?
                 Switch
                          Création d’une nouvelle instance 
                 Resume
                          Reprise de l’instance suspendue 




    13/02/2013            Boostez votre application WP8        43
démo
Fast-App-Resume

WP7 VS WP8

     13/02/2013   Boostez votre application WP8   44
2 stratégies pour le Fast Resume
Que se passe-t-il si on presse le bouton « back » juste après
un fast resume ?



  1. Afficher la dernière page visitée : « resume experience »
       annuler la navigation : e.Cancel = true;

  2. Quitter l’application : « fresh instance experience »
      vider la back stack : RootFrame.RemoveBackEntry()

      13/02/2013    Boostez votre application WP8               45
Limitation du Fast Resume
• Pas disponible pour applis Direct3D
• Pas disponible pour WP7.8
• Mise à jour d’une tuile à la sortie de l’appli
  – Deactivated
  – OnNavigationFrom
• Speech recognition

     13/02/2013   Boostez votre application WP8    46
POUR LES PLUS COURAGEUX

  13/02/2013   Boostez votre application WP8   47
“C makes it easy to shoot yourself in the foot; C++ makes it harder,
but when you do it blows your whole leg off” (Bjarne Stroustrup)

UTILISER DU CODE NATIF

      13/02/2013       Boostez votre application WP8                   48
Cas d’utilisation C++

     1            Portabilité
                  Performance
     2            Réutilisation
     3
     13/02/2013    Boostez votre application WP8   49
Le SDK 8.0 ouvre la voie au code natif
Différents scénarios

  – 100% natif : application Direct3D

  – Hybride natif/managé
     • Implémentation d’un traitement en C/C++
     • Réutilisation d’une librairie existante

     13/02/2013    Boostez votre application WP8   50
Support du C++ dans Windows Phone 8
RValue references                Forward declared enums                          Bidirectional fences

static_assert                    Alignment                                       Data-dependency ordering


   • Visual C++ 2012
Auto                             Standard-layout and trivial types               exception_ptr

Trailing return types            Extended friend declarations                    Thread-local storage

   • Idem qu’avec Windows 8
Lambdas                          Local and unnamed types as template arguments   __func__


   • Nouvelles fonctionnalités C++11
Decltype                         Range-based for-loop                            C99 preprocessor

Right angle brackets             override and final                              long long

extern templates                 Minimal GC support

nullptr                          Atomics

Strongly typed enums             Strong compare and exchange


                    13/02/2013               Boostez votre application WP8                                  51
démo
C# vs C++

FILTRE DE CONTRASTE

     13/02/2013   Boostez votre application WP8   52
démo
Interop XAML / D3D

UN CUBE QUI TOURNE !

     13/02/2013      Boostez votre application WP8   53
Réveillez-vous !

CONCLUSION

      13/02/2013   Boostez votre application WP8   54
Conclusion
• Sans les mains
  – Compilation dans le cloud
• Avec un peu de bonne volonté
  – Fast-App-Resume
• Pour les plus courageux
  – Interop C++/DirectX/XAML
• Et un SDK 8.0 très riche en nouveautés
     13/02/2013   Boostez votre application WP8   55
L’Accélérateur Windows
                Ressources
                Coaching
                Visibilité

                        aka.ms/accelerateur-windows

                         Plus d’info ? RDV stand Windows 8
Accélérateur Windows
Merci !
Charlotte Gaidon                    Jérémy Alles                 2day-app.com
    Formatrice WPF / Silverlight         MVP / WPF Disciples
    charlotte.gaidon@gmail.com           jeremy.alles@live.com
    @nutchad                             @jalpf
                                         www.japf.fr


Merci à Alex & Pierre (Microsoft) et aux collègues ;-)

Retrouvez-nous sur le stand 58

         13/02/2013          Boostez votre application WP8                      57
Donnez votre avis !
                   Depuis votre smartphone, sur :
                    http://notes.mstechdays.fr

    De nombreux lots à gagner toutes les heures !!!
               Claviers, souris et jeux Microsoft…

       Merci de nous aider à améliorer les TechDays

http://notes.mstechdays.fr
Développeurs                                                         Pros de l’IT
 http://aka.ms/generation-app       Formez-vous en ligne        www.microsoftvirtualacademy.com

    http://aka.ms/evenements-
                 developpeurs     Retrouvez nos évènements      http://aka.ms/itcamps-france


            Les accélérateurs
                                  Faites-vous accompagner
Windows Azure, Windows Phone,
                                  gratuitement
                   Windows 8


                                   Essayer gratuitement nos     http://aka.ms/telechargements
                                                 solutions IT

         La Dev’Team sur MSDN       Retrouver nos experts       L’IT Team sur TechNet
          http://aka.ms/devteam           Microsoft             http://aka.ms/itteam

Weitere ähnliche Inhalte

Was ist angesagt?

Optimisation des applications Windows 8/HTML5/WinJS
Optimisation des applications Windows 8/HTML5/WinJSOptimisation des applications Windows 8/HTML5/WinJS
Optimisation des applications Windows 8/HTML5/WinJSMicrosoft
 
Nouveau look pour une nouvelle vie : HTML5, Spring, NoSQL et Mobile
Nouveau look pour une nouvelle vie : HTML5, Spring, NoSQL et MobileNouveau look pour une nouvelle vie : HTML5, Spring, NoSQL et Mobile
Nouveau look pour une nouvelle vie : HTML5, Spring, NoSQL et MobileIppon
 
Quoi de neuf dans ASP.NET 4.5
Quoi de neuf dans ASP.NET 4.5Quoi de neuf dans ASP.NET 4.5
Quoi de neuf dans ASP.NET 4.5Microsoft
 
CocoaHeads Toulouse - Présentation Windows Phone 7 - ClevLab
CocoaHeads Toulouse - Présentation Windows Phone 7 - ClevLabCocoaHeads Toulouse - Présentation Windows Phone 7 - ClevLab
CocoaHeads Toulouse - Présentation Windows Phone 7 - ClevLabCocoaHeads France
 
Introduction au développement Windows 8 avec XAML et .NET 4.5
Introduction au développement Windows 8 avec XAML et .NET 4.5Introduction au développement Windows 8 avec XAML et .NET 4.5
Introduction au développement Windows 8 avec XAML et .NET 4.5Microsoft
 
Presentation Rex Methodes Agiles
Presentation Rex Methodes AgilesPresentation Rex Methodes Agiles
Presentation Rex Methodes AgilesIppon
 
Scub Foundation, usine logicielle Java libre
Scub Foundation, usine logicielle Java libreScub Foundation, usine logicielle Java libre
Scub Foundation, usine logicielle Java libreStéphane Traumat
 
Formation Spring Avancé gratuite par Ippon 2014
Formation Spring Avancé gratuite par Ippon 2014Formation Spring Avancé gratuite par Ippon 2014
Formation Spring Avancé gratuite par Ippon 2014Ippon
 
Seminaire Portail Open Source
Seminaire Portail Open SourceSeminaire Portail Open Source
Seminaire Portail Open SourceIppon
 
L'envers du décor : le Modern-ALM dans - et par - les équipes produits Microsoft
L'envers du décor : le Modern-ALM dans - et par - les équipes produits MicrosoftL'envers du décor : le Modern-ALM dans - et par - les équipes produits Microsoft
L'envers du décor : le Modern-ALM dans - et par - les équipes produits MicrosoftMicrosoft
 
Presentation du socle technique Java open source Scub Foundation
Presentation du socle technique Java open source Scub FoundationPresentation du socle technique Java open source Scub Foundation
Presentation du socle technique Java open source Scub FoundationStéphane Traumat
 
Petit déjeuner OCTO Technology - Nouvelles Architectures Web Front-End et APIs
Petit déjeuner OCTO Technology - Nouvelles Architectures Web Front-End et APIsPetit déjeuner OCTO Technology - Nouvelles Architectures Web Front-End et APIs
Petit déjeuner OCTO Technology - Nouvelles Architectures Web Front-End et APIsOCTO Technology
 
Formation html5 CSS3 offerte par ippon 2014
Formation html5 CSS3 offerte par ippon 2014Formation html5 CSS3 offerte par ippon 2014
Formation html5 CSS3 offerte par ippon 2014Ippon
 
[FR] Présentation de PhoneGap
[FR] Présentation de PhoneGap[FR] Présentation de PhoneGap
[FR] Présentation de PhoneGapThomas Bassetto
 
Débuter avec phonegap (APACHE CORDOVA) dans eclipse pour android
Débuter avec phonegap (APACHE CORDOVA) dans eclipse pour androidDébuter avec phonegap (APACHE CORDOVA) dans eclipse pour android
Débuter avec phonegap (APACHE CORDOVA) dans eclipse pour androidBosco Basabana
 
jQuery mobile / PhoneGap : contenus dynamiques client-side
jQuery mobile / PhoneGap : contenus dynamiques client-sidejQuery mobile / PhoneGap : contenus dynamiques client-side
jQuery mobile / PhoneGap : contenus dynamiques client-sidemaru.maru
 
Java & Etat de l'art
Java & Etat de l'artJava & Etat de l'art
Java & Etat de l'artInes Ouaz
 
Formation Usine Logicielle gratuite par Ippon 2014
Formation Usine Logicielle gratuite par Ippon 2014Formation Usine Logicielle gratuite par Ippon 2014
Formation Usine Logicielle gratuite par Ippon 2014Ippon
 

Was ist angesagt? (20)

Optimisation des applications Windows 8/HTML5/WinJS
Optimisation des applications Windows 8/HTML5/WinJSOptimisation des applications Windows 8/HTML5/WinJS
Optimisation des applications Windows 8/HTML5/WinJS
 
Nouveau look pour une nouvelle vie : HTML5, Spring, NoSQL et Mobile
Nouveau look pour une nouvelle vie : HTML5, Spring, NoSQL et MobileNouveau look pour une nouvelle vie : HTML5, Spring, NoSQL et Mobile
Nouveau look pour une nouvelle vie : HTML5, Spring, NoSQL et Mobile
 
Quoi de neuf dans ASP.NET 4.5
Quoi de neuf dans ASP.NET 4.5Quoi de neuf dans ASP.NET 4.5
Quoi de neuf dans ASP.NET 4.5
 
CocoaHeads Toulouse - Présentation Windows Phone 7 - ClevLab
CocoaHeads Toulouse - Présentation Windows Phone 7 - ClevLabCocoaHeads Toulouse - Présentation Windows Phone 7 - ClevLab
CocoaHeads Toulouse - Présentation Windows Phone 7 - ClevLab
 
Introduction au développement Windows 8 avec XAML et .NET 4.5
Introduction au développement Windows 8 avec XAML et .NET 4.5Introduction au développement Windows 8 avec XAML et .NET 4.5
Introduction au développement Windows 8 avec XAML et .NET 4.5
 
Presentation Rex Methodes Agiles
Presentation Rex Methodes AgilesPresentation Rex Methodes Agiles
Presentation Rex Methodes Agiles
 
Scub Foundation, usine logicielle Java libre
Scub Foundation, usine logicielle Java libreScub Foundation, usine logicielle Java libre
Scub Foundation, usine logicielle Java libre
 
Java Fx
Java FxJava Fx
Java Fx
 
Formation Spring Avancé gratuite par Ippon 2014
Formation Spring Avancé gratuite par Ippon 2014Formation Spring Avancé gratuite par Ippon 2014
Formation Spring Avancé gratuite par Ippon 2014
 
Seminaire Portail Open Source
Seminaire Portail Open SourceSeminaire Portail Open Source
Seminaire Portail Open Source
 
L'envers du décor : le Modern-ALM dans - et par - les équipes produits Microsoft
L'envers du décor : le Modern-ALM dans - et par - les équipes produits MicrosoftL'envers du décor : le Modern-ALM dans - et par - les équipes produits Microsoft
L'envers du décor : le Modern-ALM dans - et par - les équipes produits Microsoft
 
Usine Logicielle 2013
Usine Logicielle 2013Usine Logicielle 2013
Usine Logicielle 2013
 
Presentation du socle technique Java open source Scub Foundation
Presentation du socle technique Java open source Scub FoundationPresentation du socle technique Java open source Scub Foundation
Presentation du socle technique Java open source Scub Foundation
 
Petit déjeuner OCTO Technology - Nouvelles Architectures Web Front-End et APIs
Petit déjeuner OCTO Technology - Nouvelles Architectures Web Front-End et APIsPetit déjeuner OCTO Technology - Nouvelles Architectures Web Front-End et APIs
Petit déjeuner OCTO Technology - Nouvelles Architectures Web Front-End et APIs
 
Formation html5 CSS3 offerte par ippon 2014
Formation html5 CSS3 offerte par ippon 2014Formation html5 CSS3 offerte par ippon 2014
Formation html5 CSS3 offerte par ippon 2014
 
[FR] Présentation de PhoneGap
[FR] Présentation de PhoneGap[FR] Présentation de PhoneGap
[FR] Présentation de PhoneGap
 
Débuter avec phonegap (APACHE CORDOVA) dans eclipse pour android
Débuter avec phonegap (APACHE CORDOVA) dans eclipse pour androidDébuter avec phonegap (APACHE CORDOVA) dans eclipse pour android
Débuter avec phonegap (APACHE CORDOVA) dans eclipse pour android
 
jQuery mobile / PhoneGap : contenus dynamiques client-side
jQuery mobile / PhoneGap : contenus dynamiques client-sidejQuery mobile / PhoneGap : contenus dynamiques client-side
jQuery mobile / PhoneGap : contenus dynamiques client-side
 
Java & Etat de l'art
Java & Etat de l'artJava & Etat de l'art
Java & Etat de l'art
 
Formation Usine Logicielle gratuite par Ippon 2014
Formation Usine Logicielle gratuite par Ippon 2014Formation Usine Logicielle gratuite par Ippon 2014
Formation Usine Logicielle gratuite par Ippon 2014
 

Andere mochten auch

Les frameworks flashlike javascript
Les frameworks flashlike javascriptLes frameworks flashlike javascript
Les frameworks flashlike javascriptekito
 
Program-Ace_Video_Game_Development
Program-Ace_Video_Game_DevelopmentProgram-Ace_Video_Game_Development
Program-Ace_Video_Game_DevelopmentK L
 
10. Fundamental AI Technologies
10. Fundamental AI Technologies10. Fundamental AI Technologies
10. Fundamental AI TechnologiesAmin Babadi
 
Program-Ace_VR
Program-Ace_VRProgram-Ace_VR
Program-Ace_VRK L
 
Affichage final du site mustapha inf
Affichage final du site mustapha infAffichage final du site mustapha inf
Affichage final du site mustapha infHiba Architecte
 
Up And Running With Web VR Fall 2014
Up And Running With Web VR Fall 2014Up And Running With Web VR Fall 2014
Up And Running With Web VR Fall 2014Tony Parisi
 
WebGL Paris 2015 - Conférence de S.Benchaa (Lead Graphics Engineer @Beloola)
WebGL Paris 2015  - Conférence de S.Benchaa (Lead Graphics Engineer @Beloola)WebGL Paris 2015  - Conférence de S.Benchaa (Lead Graphics Engineer @Beloola)
WebGL Paris 2015 - Conférence de S.Benchaa (Lead Graphics Engineer @Beloola)Samuel Mound
 
WebGL, la 3D c'est maintenant dans votre navigateur - Paris Web 2012
WebGL, la 3D c'est maintenant dans votre navigateur - Paris Web 2012WebGL, la 3D c'est maintenant dans votre navigateur - Paris Web 2012
WebGL, la 3D c'est maintenant dans votre navigateur - Paris Web 2012Boxesinabox
 

Andere mochten auch (10)

Les frameworks flashlike javascript
Les frameworks flashlike javascriptLes frameworks flashlike javascript
Les frameworks flashlike javascript
 
Program-Ace_Video_Game_Development
Program-Ace_Video_Game_DevelopmentProgram-Ace_Video_Game_Development
Program-Ace_Video_Game_Development
 
Introduction au WebGL
Introduction au WebGLIntroduction au WebGL
Introduction au WebGL
 
10. Fundamental AI Technologies
10. Fundamental AI Technologies10. Fundamental AI Technologies
10. Fundamental AI Technologies
 
Program-Ace_VR
Program-Ace_VRProgram-Ace_VR
Program-Ace_VR
 
WebGL 2.0 Reference Guide
WebGL 2.0 Reference GuideWebGL 2.0 Reference Guide
WebGL 2.0 Reference Guide
 
Affichage final du site mustapha inf
Affichage final du site mustapha infAffichage final du site mustapha inf
Affichage final du site mustapha inf
 
Up And Running With Web VR Fall 2014
Up And Running With Web VR Fall 2014Up And Running With Web VR Fall 2014
Up And Running With Web VR Fall 2014
 
WebGL Paris 2015 - Conférence de S.Benchaa (Lead Graphics Engineer @Beloola)
WebGL Paris 2015  - Conférence de S.Benchaa (Lead Graphics Engineer @Beloola)WebGL Paris 2015  - Conférence de S.Benchaa (Lead Graphics Engineer @Beloola)
WebGL Paris 2015 - Conférence de S.Benchaa (Lead Graphics Engineer @Beloola)
 
WebGL, la 3D c'est maintenant dans votre navigateur - Paris Web 2012
WebGL, la 3D c'est maintenant dans votre navigateur - Paris Web 2012WebGL, la 3D c'est maintenant dans votre navigateur - Paris Web 2012
WebGL, la 3D c'est maintenant dans votre navigateur - Paris Web 2012
 

Ähnlich wie Booster votre application Windows Phone 8

Introduction au développement Windows Phone 8
Introduction au développement Windows Phone 8Introduction au développement Windows Phone 8
Introduction au développement Windows Phone 8Jean-Sébastien Dupuy
 
JFTL2015 - Comment tester les performances ressenties par l’utilisateur d’une...
JFTL2015 - Comment tester les performances ressenties par l’utilisateur d’une...JFTL2015 - Comment tester les performances ressenties par l’utilisateur d’une...
JFTL2015 - Comment tester les performances ressenties par l’utilisateur d’une...Cedric GAUTIER
 
Applications mobiles - quels choix ?
Applications mobiles  - quels choix ?Applications mobiles  - quels choix ?
Applications mobiles - quels choix ?odemarez
 
Windows Phone 8 for Business - Developer Talks
Windows Phone 8 for Business - Developer TalksWindows Phone 8 for Business - Developer Talks
Windows Phone 8 for Business - Developer TalksJean-Sébastien Dupuy
 
Bien soumettre et monétiser votre application Windows 8 et Windows Phone 8
Bien soumettre et monétiser votre application Windows 8 et Windows Phone 8Bien soumettre et monétiser votre application Windows 8 et Windows Phone 8
Bien soumettre et monétiser votre application Windows 8 et Windows Phone 8Microsoft
 
Offre migrer vers_flutter
Offre migrer vers_flutterOffre migrer vers_flutter
Offre migrer vers_flutterJulien Saumande
 
2-historique d'android.pdf
2-historique d'android.pdf2-historique d'android.pdf
2-historique d'android.pdfFethiBenYahia1
 
1er Meetup Mobile Montpellier - Présentation Appcelerator Titanium - Alloy
1er Meetup Mobile Montpellier - Présentation Appcelerator Titanium - Alloy1er Meetup Mobile Montpellier - Présentation Appcelerator Titanium - Alloy
1er Meetup Mobile Montpellier - Présentation Appcelerator Titanium - AlloyMeetup Mobile Montpellier
 
Framework XPlatform Mobile
Framework XPlatform MobileFramework XPlatform Mobile
Framework XPlatform MobileGabriel DUPONT
 
[Meetup Paris Unity] Olivier Lovisa - Nokia : présentation de dvlup.com
[Meetup Paris Unity] Olivier Lovisa - Nokia : présentation de dvlup.com[Meetup Paris Unity] Olivier Lovisa - Nokia : présentation de dvlup.com
[Meetup Paris Unity] Olivier Lovisa - Nokia : présentation de dvlup.comBeMyApp
 
PhoneGap VS Appcelerator
PhoneGap VS AppceleratorPhoneGap VS Appcelerator
PhoneGap VS AppceleratorTiyab K.
 
[Webinar Niji] Frameworks XPlateform mobile - 2210
[Webinar Niji] Frameworks XPlateform mobile - 2210 [Webinar Niji] Frameworks XPlateform mobile - 2210
[Webinar Niji] Frameworks XPlateform mobile - 2210 Niji
 
Créer des applications métier (LOB) pour Windows 8 et Windows Phone 8
Créer des applications métier (LOB) pour Windows 8 et Windows Phone 8Créer des applications métier (LOB) pour Windows 8 et Windows Phone 8
Créer des applications métier (LOB) pour Windows 8 et Windows Phone 8Microsoft
 
MUG Strasbourg - Développement d'une Universal Windows Apps
MUG Strasbourg - Développement d'une Universal Windows AppsMUG Strasbourg - Développement d'une Universal Windows Apps
MUG Strasbourg - Développement d'une Universal Windows Appsmugstrasbourg
 
Présentation RIA avec Adobe Flex / RIA with Adobe Flex
Présentation RIA avec Adobe Flex / RIA with Adobe FlexPrésentation RIA avec Adobe Flex / RIA with Adobe Flex
Présentation RIA avec Adobe Flex / RIA with Adobe FlexCynapsys It Hotspot
 
Gtug2 Mobile app with web technlogy
Gtug2 Mobile app with web technlogyGtug2 Mobile app with web technlogy
Gtug2 Mobile app with web technlogySacha Leprêtre
 

Ähnlich wie Booster votre application Windows Phone 8 (20)

Introduction au développement Windows Phone 8
Introduction au développement Windows Phone 8Introduction au développement Windows Phone 8
Introduction au développement Windows Phone 8
 
JFTL2015 - Comment tester les performances ressenties par l’utilisateur d’une...
JFTL2015 - Comment tester les performances ressenties par l’utilisateur d’une...JFTL2015 - Comment tester les performances ressenties par l’utilisateur d’une...
JFTL2015 - Comment tester les performances ressenties par l’utilisateur d’une...
 
Applications mobiles - quels choix ?
Applications mobiles  - quels choix ?Applications mobiles  - quels choix ?
Applications mobiles - quels choix ?
 
Windows Phone 8 for Business - Developer Talks
Windows Phone 8 for Business - Developer TalksWindows Phone 8 for Business - Developer Talks
Windows Phone 8 for Business - Developer Talks
 
Bien soumettre et monétiser votre application Windows 8 et Windows Phone 8
Bien soumettre et monétiser votre application Windows 8 et Windows Phone 8Bien soumettre et monétiser votre application Windows 8 et Windows Phone 8
Bien soumettre et monétiser votre application Windows 8 et Windows Phone 8
 
Querix lycia presentation v1.2 fr
Querix lycia presentation v1.2 frQuerix lycia presentation v1.2 fr
Querix lycia presentation v1.2 fr
 
Offre migrer vers_flutter
Offre migrer vers_flutterOffre migrer vers_flutter
Offre migrer vers_flutter
 
2-historique d'android.pdf
2-historique d'android.pdf2-historique d'android.pdf
2-historique d'android.pdf
 
Intro Android
Intro AndroidIntro Android
Intro Android
 
1er Meetup Mobile Montpellier - Présentation Appcelerator Titanium - Alloy
1er Meetup Mobile Montpellier - Présentation Appcelerator Titanium - Alloy1er Meetup Mobile Montpellier - Présentation Appcelerator Titanium - Alloy
1er Meetup Mobile Montpellier - Présentation Appcelerator Titanium - Alloy
 
Framework XPlatform Mobile
Framework XPlatform MobileFramework XPlatform Mobile
Framework XPlatform Mobile
 
[Meetup Paris Unity] Olivier Lovisa - Nokia : présentation de dvlup.com
[Meetup Paris Unity] Olivier Lovisa - Nokia : présentation de dvlup.com[Meetup Paris Unity] Olivier Lovisa - Nokia : présentation de dvlup.com
[Meetup Paris Unity] Olivier Lovisa - Nokia : présentation de dvlup.com
 
PhoneGap VS Appcelerator
PhoneGap VS AppceleratorPhoneGap VS Appcelerator
PhoneGap VS Appcelerator
 
[Webinar Niji] Frameworks XPlateform mobile - 2210
[Webinar Niji] Frameworks XPlateform mobile - 2210 [Webinar Niji] Frameworks XPlateform mobile - 2210
[Webinar Niji] Frameworks XPlateform mobile - 2210
 
Créer des applications métier (LOB) pour Windows 8 et Windows Phone 8
Créer des applications métier (LOB) pour Windows 8 et Windows Phone 8Créer des applications métier (LOB) pour Windows 8 et Windows Phone 8
Créer des applications métier (LOB) pour Windows 8 et Windows Phone 8
 
CV_Bilel CHAOUADI
CV_Bilel CHAOUADICV_Bilel CHAOUADI
CV_Bilel CHAOUADI
 
Programmation sous Android
Programmation sous AndroidProgrammation sous Android
Programmation sous Android
 
MUG Strasbourg - Développement d'une Universal Windows Apps
MUG Strasbourg - Développement d'une Universal Windows AppsMUG Strasbourg - Développement d'une Universal Windows Apps
MUG Strasbourg - Développement d'une Universal Windows Apps
 
Présentation RIA avec Adobe Flex / RIA with Adobe Flex
Présentation RIA avec Adobe Flex / RIA with Adobe FlexPrésentation RIA avec Adobe Flex / RIA with Adobe Flex
Présentation RIA avec Adobe Flex / RIA with Adobe Flex
 
Gtug2 Mobile app with web technlogy
Gtug2 Mobile app with web technlogyGtug2 Mobile app with web technlogy
Gtug2 Mobile app with web technlogy
 

Mehr von 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
 

Mehr von 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
 

Booster votre application Windows Phone 8

  • 1. Boostez votre application Windows Phone 8 Charlotte GAIDON, Jérémy ALLES Pôle expertise Microsoft Grenoble THALES APP103 www.2day-app.com bit.ly/perfwp7 Boostez votre application WP8
  • 2. Présentation Charlotte Gaidon Jérémy Alles Formatrice WPF / Silverlight MVP / WPF Disciples charlotte.gaidon@gmail.com jeremy.alles@live.com @nutchad @jalpf www.japf.fr Cœur de métier : applications industrielles Agence de 200 collaborateurs à Grenoble Pôle d’expertise sur les technologies Microsoft 13/02/2013 Boostez votre application WP8 2
  • 3. Agenda • Quoi de neuf WP8 ? • Sans les mains ! • Avec un peu de bonne volonté ! • Pour les plus courageux ! 13/02/2013 Boostez votre application WP8 3
  • 4. Quoi de neuf docteur ? CE QUI CHANGE AVEC WP8 13/02/2013 Boostez votre application WP8 4
  • 5. Flashback 13/02/2013 Boostez votre application WP8 5
  • 6. Nouveau noyau • Windows Phone 7 : noyau CE de Windows Mobile • Windows Phone 8 : noyau NT Windows 8 Recoupement entre les runtimes « Desktop » et « Phone » Shared API 13/02/2013 Boostez votre application WP8 6
  • 7. Et mes applis ? bit.ly/perfwp8-upgrade Compatibilité avec les 120 000 applis existantes ! Upgrade to WP8 WP7.x App WP8 App Quirks Mode Shim WP8 Runtime 13/02/2013 Boostez votre application WP8 7
  • 8. Nouveau hardware • dual-core 1024 Mo de RAM – devices puissants – encore d’intérêt à paralléliser  • résolutions plus grandes • 2 formats possibles Application.Current.Host.Content.ScaleFactor 13/02/2013 Boostez votre application WP8 8
  • 9. NOUVEAUX OUTILS 13/02/2013 Boostez votre application WP8 9
  • 10. Nouvel émulateur • Différentes caractéristiques de device • Hyper-V (processeur SLAT requis) • Attention aux perfs dans l’émulateur WP7 13/02/2013 Boostez votre application WP8 10
  • 11. Profiling et Monitoring VS2012 apporte des nouveautés 13/02/2013 Boostez votre application WP8 11
  • 12. 13/02/2013 Boostez votre application WP8 12
  • 13. Rappel des bonnes pratiques • Limiter la taille de l’arbre visuel • Fuites mémoire : attention aux events ! • Tirer parti du thread compositor – ScaleTransform vs animation FontSize bit.ly/perfwp7 – TranslateTransform vs animation Margin 13/02/2013 Boostez votre application WP8 13
  • 14. Economie d’énergie • Utiliser la compression GZip bit.ly/perfwp8-gzip • Regrouper les requêtes web • Thème foncé vs thème clair • JPEG plus économe que PNG 13/02/2013 Boostez votre application WP8 14
  • 15. Simulation Dashboard • Connexion réseau • Ecran de verrouillage • Rappel 13/02/2013 Boostez votre application WP8 15
  • 16. C# Async  bit.ly/perfwp8-async 13/02/2013 Boostez votre application WP8 16
  • 17. Sit down and relax SANS LES MAINS ! Boostez votre application WP8 – Sans les mains ! votre application WP8 13/02/2013 Boostez 17
  • 18. Les compteurs Composition thread frame rate • Fill Rate UI thread frame rate – WP7 : limite entre 2 et 4 – WP8 : limite entre 5 et 6 Texture memory usage Surface counter Current.Host.Settings.EnableFrameRateCounter Current.Host.Settings.EnableRedrawRegions Intermediate surface counter Screen fill rate counter 13/02/2013 Boostez votre application WP8 18
  • 19. Gains en performances • Progress Bar • Panorama • LongListSelector • ViewPortControl – Off thread input 13/02/2013 Boostez votre application WP8 19
  • 20. Accrochez-vous  COMPILATION DANS LE 13/02/2013 Boostez votre application WP8 20
  • 21. Du code C# au code machine Device Développeur Compilateur Intermediate Code C# C# Language Compilateur Code machine JIT 13/02/2013 Boostez votre application WP8 21
  • 22. Génération et utilisation du code machine • Avantages – Le code IL est indépendant de la machine – On ne compile pas le code dont on ne se sert pas • Inconvénients – Ajoute un surcoût à l’exécution – Handicap pour le temps de démarrage des applications 13/02/2013 Boostez votre application WP8 22
  • 23. Une solution ? • Ne plus faire de code IL ? • Faire le JIT « à l’avance » ? • Ce n’est pas une idée nouvelle : NGEN – Exemple : Paint.Net 13/02/2013 Boostez votre application WP8 23
  • 24. NGEN Compilateur Intermediate Code C# NGEN C# Language Code machine 13/02/2013 Boostez votre application WP8 24
  • 25. NGEN : oui, mais… Mscorlib.dll App1.exe Library.dll App2.exe 13/02/2013 Boostez votre application WP8 25
  • 26. NGEN : oui, mais… Mscorlib.dll App1.exe Library.dll App2.exe 13/02/2013 Boostez votre application WP8 26
  • 27. NGEN : oui, mais… Mscorlib.dll App1.exe Library.dll App2.exe 13/02/2013 Boostez votre application WP8 27
  • 28. De quoi a-t-on besoin ? • Un démarrage rapide – Supprimer le coût du JIT au démarrage • Déploiement facile et rapide – Temps d’exécution de NGEN trop long • Pouvoir gérer les mises à jour de l’OS – Ne pas perdre les images compilées après update 13/02/2013 Boostez votre application WP8 28
  • 29. Recompilation en cascade : pourquoi ? class Base 0x0 MethodTable int 0x4 i string 0x8 s virtual void class AppDerived 0x0 MethodTable 0x4 i int 0x8 s int int return 0xC j 13/02/2013 Boostez votre application WP8 29
  • 30. int foo(int a) { return a + j; } 0x0 MethodTable 0x4 i 0x8 s 0xC j 13/02/2013 Boostez votre application WP8 30
  • 31. Evolution de la classe mère class Base 0x0 MethodTable int string 0x4 i int virtual void 0x8 s 0xC k 13/02/2013 Boostez votre application WP8 31
  • 32. Le code généré devient invalide L’offset devrait être 0x10 ! 0x0 MethodTable 0x4 i 0x8 s 0xC k 0x10 j 13/02/2013 Boostez votre application WP8 32
  • 33. Idée : marquer les potentiels changements… Remplacé via une étape de link supplémentaire 13/02/2013 Boostez votre application WP8 33
  • 34. Résumé : MDIL • Compiler ce qui ne changera jamais directement • Ajouter des tokens pour ce qui pourra changer • Remplacer les tokens au moment de l’install • Mise à jour refaire l’édition de lien à nouveau 13/02/2013 Boostez votre application WP8 34
  • 35. Pourquoi compilation « dans le nuage » ? C# Source MSIL MDIL MDIL Code C# Compiler Assembly Assembly Compiler Téléchargement sur le device Cette partie se passe “dans le cloud” ! MDIL Native Native Assembly Image DLL Exécution Generator 13/02/2013 Boostez votre application WP8 35
  • 36. De quoi avait-on besoin ? • Un démarrage rapide • Déploiement facile et rapide • Pouvoir gérer les mises à jour de l’OS 13/02/2013 Boostez votre application WP8 36
  • 37. Comment tester ? • Avoir un vrai device  13/02/2013 Boostez votre application WP8 37
  • 38. AVEC UN PEU DE BONNE VOLONTÉ ! 13/02/2013 Boostez votre application WP8 38
  • 39. La consommation mémoire • Respecter la limite bit.ly/perfwp8-memory – Mesurer la consommation mémoire • 2 nouveaux paramètres de BitmapImage – DecodePixelWidth – DecodePixelHeight 13/02/2013 Boostez votre application WP8 39
  • 40. démo Compteur mémoire SLIDE SHOW 13/02/2013 Boostez votre application WP8 40
  • 41. Fast-App-Resume DÉMARRAGE ÉCLAIR 13/02/2013 Boostez votre application WP8 41
  • 42. démo Multi-tasking WP7 VS W8 13/02/2013 Boostez votre application WP8 42
  • 43. Fast-App-Switching ou Fast-App-Resume ? Switch Création d’une nouvelle instance  Resume Reprise de l’instance suspendue  13/02/2013 Boostez votre application WP8 43
  • 44. démo Fast-App-Resume WP7 VS WP8 13/02/2013 Boostez votre application WP8 44
  • 45. 2 stratégies pour le Fast Resume Que se passe-t-il si on presse le bouton « back » juste après un fast resume ? 1. Afficher la dernière page visitée : « resume experience » annuler la navigation : e.Cancel = true; 2. Quitter l’application : « fresh instance experience » vider la back stack : RootFrame.RemoveBackEntry() 13/02/2013 Boostez votre application WP8 45
  • 46. Limitation du Fast Resume • Pas disponible pour applis Direct3D • Pas disponible pour WP7.8 • Mise à jour d’une tuile à la sortie de l’appli – Deactivated – OnNavigationFrom • Speech recognition 13/02/2013 Boostez votre application WP8 46
  • 47. POUR LES PLUS COURAGEUX 13/02/2013 Boostez votre application WP8 47
  • 48. “C makes it easy to shoot yourself in the foot; C++ makes it harder, but when you do it blows your whole leg off” (Bjarne Stroustrup) UTILISER DU CODE NATIF 13/02/2013 Boostez votre application WP8 48
  • 49. Cas d’utilisation C++ 1 Portabilité Performance 2 Réutilisation 3 13/02/2013 Boostez votre application WP8 49
  • 50. Le SDK 8.0 ouvre la voie au code natif Différents scénarios – 100% natif : application Direct3D – Hybride natif/managé • Implémentation d’un traitement en C/C++ • Réutilisation d’une librairie existante 13/02/2013 Boostez votre application WP8 50
  • 51. Support du C++ dans Windows Phone 8 RValue references Forward declared enums Bidirectional fences static_assert Alignment Data-dependency ordering • Visual C++ 2012 Auto Standard-layout and trivial types exception_ptr Trailing return types Extended friend declarations Thread-local storage • Idem qu’avec Windows 8 Lambdas Local and unnamed types as template arguments __func__ • Nouvelles fonctionnalités C++11 Decltype Range-based for-loop C99 preprocessor Right angle brackets override and final long long extern templates Minimal GC support nullptr Atomics Strongly typed enums Strong compare and exchange 13/02/2013 Boostez votre application WP8 51
  • 52. démo C# vs C++ FILTRE DE CONTRASTE 13/02/2013 Boostez votre application WP8 52
  • 53. démo Interop XAML / D3D UN CUBE QUI TOURNE ! 13/02/2013 Boostez votre application WP8 53
  • 54. Réveillez-vous ! CONCLUSION 13/02/2013 Boostez votre application WP8 54
  • 55. Conclusion • Sans les mains – Compilation dans le cloud • Avec un peu de bonne volonté – Fast-App-Resume • Pour les plus courageux – Interop C++/DirectX/XAML • Et un SDK 8.0 très riche en nouveautés 13/02/2013 Boostez votre application WP8 55
  • 56. L’Accélérateur Windows Ressources Coaching Visibilité aka.ms/accelerateur-windows Plus d’info ? RDV stand Windows 8 Accélérateur Windows
  • 57. Merci ! Charlotte Gaidon Jérémy Alles 2day-app.com Formatrice WPF / Silverlight MVP / WPF Disciples charlotte.gaidon@gmail.com jeremy.alles@live.com @nutchad @jalpf www.japf.fr Merci à Alex & Pierre (Microsoft) et aux collègues ;-) Retrouvez-nous sur le stand 58 13/02/2013 Boostez votre application WP8 57
  • 58. Donnez votre avis ! Depuis votre smartphone, sur : http://notes.mstechdays.fr De nombreux lots à gagner toutes les heures !!! Claviers, souris et jeux Microsoft… Merci de nous aider à améliorer les TechDays http://notes.mstechdays.fr
  • 59. Développeurs Pros de l’IT http://aka.ms/generation-app Formez-vous en ligne www.microsoftvirtualacademy.com http://aka.ms/evenements- developpeurs Retrouvez nos évènements http://aka.ms/itcamps-france Les accélérateurs Faites-vous accompagner Windows Azure, Windows Phone, gratuitement Windows 8 Essayer gratuitement nos http://aka.ms/telechargements solutions IT La Dev’Team sur MSDN Retrouver nos experts L’IT Team sur TechNet http://aka.ms/devteam Microsoft http://aka.ms/itteam

Hinweis der Redaktion

  1. Intro Phone / Mobilité
  2. Notation