Compiler des applications avec .NET Native

.NET Native est une technologie de précompilation qui permet de générer et de déployer des applications UWP. .NET Native est compris dans Visual Studio 2015 et versions ultérieures. Il compile automatiquement la version publiée des applications UWP écrites en code managé (C# ou Visual Basic) en code natif.

En règle générale, les applications .NET sont compilées en langage intermédiaire (IL). Au moment de l'exécution, le compilateur juste-à-temps (JIT) traduit le langage intermédiaire en code natif. Par contraste, .NET Native compile les applications UWP directement en code natif. Pour les développeurs, cela signifie les points suivants :

  • Vos applications présentent les performances du code natif. Normalement, les performances seront supérieures au code qui est d’abord compilé en IL, puis compilé en code natif par le compilateur JIT.

  • Vous pouvez continuer à programmer en C# ou Visual Basic.

  • Vous pouvez continuer à tirer parti des ressources fournies par le .NET Framework, y compris sa bibliothèque de classes, sa gestion automatique de la mémoire et son garbage collection, ainsi que sa gestion des exceptions.

Pour les utilisateurs de vos applications, .NET Native offre les avantages suivants :

  • Temps d’exécution plus rapides pour la majorité des applications et des scénarios.

  • Temps de démarrage plus rapides pour la majorité des applications et des scénarios.

  • Faibles coûts de déploiement et de mise à jour.

  • Utilisation optimisée de la mémoire par les applications.

Toutefois, .NET Native va au-delà d’une simple compilation en code natif. Il transforme la façon dont les applications .NET Framework sont intégrées et exécutées. En particulier :

  • Pendant la précompilation, les parties nécessaires du .NET Framework sont liées statiquement dans votre application. Cela permet à l’application de s’exécuter avec les bibliothèques app-local du .NET Framework et au compilateur d’effectuer une analyse globale pour obtenir des gains de performance. Ainsi, les applications se lancent systématiquement plus rapidement même après une mise à jour de .NET Framework.

  • Le runtime .NET Native est optimisé pour la précompilation statique et, dans la plupart des cas, offre des performances supérieures. Dans le même temps, il conserve les fonctionnalités de réflexion principales, si productives au regard des développeurs.

  • .NET Native utilise le même back-end que le compilateur C++, qui est optimisé pour les scénarios de précompilation statique.

.NET Native peut offrir les avantages de performances de C++ aux développeurs de code managé parce qu’il utilise les mêmes outils, ou similaires, que C++ en coulisses, comme indiqué dans ce tableau.

Composant .NET Native C++
Bibliothèques .NET Framework + Windows Runtime Win32 + Windows Runtime
Compilateur Compilateur d'optimisation UTC Compilateur d'optimisation UTC
Déployé Fichiers binaires prêts à être exécutés Fichiers binaires prêts à être exécutés (ASM)
Runtime MRT.dll (Runtime CLR minimal) CRT.dll (Runtime C)

Pour les applications UWP, vous chargez les binaires de compilation de code .NET Native des packages d’application (fichiers .msix ou .appx) sur le Microsoft Store.