UWP : Compilation native, ne pas l’oublier !

La compilation native est une nouveauté toute récente des applications UWP pour Windows 10.
Au lieu de compiler votre code en code managé le code sera directement compilé en code natif ce qui engendrera (en théorie) des améliorations sur les performances de votre application. Plus d’infos sur msdn

Notez bien que la compilation native n’est pas une option si vous comptez publier votre application vers le Store Microsoft. Lors de la création d’un package vers le store celui-ci est compilé en IL (Intermediate Language) c’est le store qui compilera celui-ci en natif avant de le mettre à la disposition des utilisateurs.
En plus de ces gains en performance trois autres effets majeurs peuvent être dénombrés :

Un code « Naturellement » obfusqué :

Si le développeur d’une application Windows 8 n’a pas pris le soin de passer par une solution d’obfuscation du code il est très simple d’accéder au code source de l’application depuis le package de l’application installé sur votre ordinateur. Une application compilée en native sera quand à elle beaucoup plus complexe à analyser et il est impossible de récupérer directement le code source comme c’est le cas pour les applications Windows 8 non obfusquées.

Pour ceux qui utilisaient des solutions d’obfuscation il est également à noter qu’une partie d’entre elles ne sont pas encore compatible avec la compilation native.

De possibles incompatibilités :

En effet le compilateur natif ne supporte pas (pour l’instant seulement j’espère) l’ensemble des librairies. J’ai eu pour ma part des erreurs en utilisant le Xaml Toolkit. Vous pouvez avoir de mauvaises surprises lors de la compilation en natif de votre projet et lors de l’exécution de celui-ci. Pensez bien à tester régulièrement votre projet en compilation native, pour ceci allez dans les propriétés de votre projet, Build, General et cochez « Compile with .NET Native tool chain ». Par défaut la compilation native est activée en mode release.

blog ai3 native UWP : Compilation native, ne pas l'oublier !

Des tests plus longs :

Pensez à prévoir du temps pour tester votre projet en compilation native. En effet le temps de compilation est nettement supérieur à une compilation normale et l’isolation des bugs et leur correction vous prendra beaucoup plus de temps. Voici quelques conseils pour accélérer vos tests en compilation natif :

  • Si vous avez une erreur vérifiez bien que celle-ci n’est pas reproductible sans la compilation native
  • Activez par défaut la levée de l’ensemble des exceptions pour ne rien rater
  • Lorsque la compilation native est activée et que votre débugueur s’arrête sur une exception vous vous rendrez compte que le code généré et très difficilement compréhensible (d’où l’obfuscation naturelle), pensez donc à ajouter des logs dans vos applications

Thierry,

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.