Annoncé à l’occasion de la Build 2014, ce projet de Microsoft vise à réduire l’écart de performances entre les applications natives comme le C++ et les applications C# (en code managé donc).

Si vous codez en C# pour certains projets et en C++ pour d’autres, vous aurez sans-doute remarqué la différence notable de vitesse à l’exécution et l’empreinte mémoire plus importantes des appli C#, c’est le prix à payer pour bénéficier de toutes les belles choses offertes pas le framework .net et la syntaxe si simple à maitriser du C#, le tout améliorant la productivité du développeur.

Mais ça, c’était avant.

S’installant comme un pluggin pour Visual Studio 2013 (Update 2 ou Update 3 CTP à ce jour), .Net Native Preview 2 s’utilise de façon très simple. Aucun besoin de connaitre les subtilité des compilateurs pour en tirer bénéfice, votre application iras simplement plus vite en quelques clics (testé et approuvé).

L’équipe travaillant sur ce project revendique un gain allant jusqu’a 60% en vitesse de lancement des apps Windows Store, une empreinte mémoire réduite.

Après avoir joué avec, fait des tests avant-après dans mes propres apps, je confirme le gain au lancement, qui me semble même dépasser les 60% ! Le démarrage est à présent immédiat, le splash-screen ayant à peine le temps de s’afficher. Idem pour la consommation de mémoire, qui a baissé de ~15% en moyenne.

La compilation .Net native est supportée en ARM et x64 sous 2023 Update 2, le support x86 est apporté par l’Update 3 (Actuellement en CTP seulement).

Installation

  1. Mettez à jours Visual Studio 2013 avec l’update 2 (Stable) ou l’update 3 (CTP)
  2. Téléchargez le setup ici
  3. Fermer VS et installer le package (next,next,finish..)2014-06-05 22_17_00-Microsoft .NET Native SDK Developer Preview Setup
  4. Ouvrez votre projet Windows 8, configurez la solution afin de cibler x64 ou ARM (pas “Any CPU”)2014-06-05 22_35_06-SouchProd.SecoursRoutier - Microsoft Visual Studio
  5. Avec un clic droit sur le projet, sélectionnez “Enable for .Net Native”2014-06-05 22_37_33-SouchProd.ChinoisHSKBasic - Microsoft Visual Studio
  6. Visual studio vas alors ajouter quelques éléments dans votre projet, tel que le fichier default.rd.xml, qui vous permettras de faire du fine tuning afin de gagner plus de performances. Un test de compatibilité démarreras automatiquement, si il réussit vous pourrez utiliser la compilation native en toute quiétude: cela ne feras pas planter votre App chez vos utilisateurs.

A retenir

  • Simple à mettre en place.
  • Accélère le démarrage des apps C#.
  • Consommation de RAM réduite.
  • Pas de modification à faire dans votre code.
  • Seulement pour les applications Windows Store (8/RT) écrites en C# mais devrais être porté à WinForm et WPF.
  • Stable, malgré que ce ne soit qu’une version preview.

Sources

http://msdn.microsoft.com/fr-fr/library/dotnetnative.aspx
http://blogs.msdn.com/b/dotnet/archive/2014/04/02/announcing-net-native-preview.aspx
http://blogs.msdn.com/b/wsdevsol/archive/2014/05/22/my-experience-with-net-native-preview.aspx

Visual Studio 2013 Update 3 CTP1

http://support.microsoft.com/kb/2933779/fr