Compilation d'applications avec .NET NativeCompiling Apps with .NET Native

.NET native est une technologie de précompilation pour générer et déployer les applications Windows qui est incluse avec Visual Studio 2015 et versions ultérieures..NET Native is a precompilation technology for building and deploying Windows apps that is included with Visual Studio 2015 and later versions. Elle compile automatiquement la version commerciale des applications écrites en code managé (C# ou Visual Basic) et qui ciblent .NET Framework et Windows 10 en code natif.It automatically compiles the release version of apps that are written in managed code (C# or Visual Basic) and that target the .NET Framework and Windows 10 to native code.

En règle générale, les applications qui ciblent .NET Framework sont compilées en langage intermédiaire (IL).Typically, apps that target the .NET Framework are compiled to intermediate language (IL). Au moment de l'exécution, le compilateur juste-à-temps (JIT) traduit le langage intermédiaire en code natif.At run time, the just-in-time (JIT) compiler translates the IL to native code. En revanche, .NET Native compile les applications Windows directement en code natif.In contrast, .NET Native compiles Windows apps directly to native code. Pour les développeurs, cela signifie les points suivants :For developers, this means:

  • Les performances du code natif de fonctionnalités de vos applications.Your apps feature the performance of native code. En règle générale, les performances seront supérieures au code qui est tout d’abord compilée en langage intermédiaire et ensuite compilé en code natif par le compilateur JIT.Usually, performance will be superior to code that is first compiled to IL and then compiled to native code by the JIT compiler.

  • Vous pouvez continuer à programmer en C# ou Visual Basic.You can continue to program in C# or Visual Basic.

  • Vous pouvez continuer à exploiter les ressources fournies par .NET Framework, y compris sa bibliothèque de classes, la gestion automatique de la mémoire, le garbage collection et la gestion des exceptions.You can continue to take advantage of the resources provided by the .NET Framework, including its class library, automatic memory management and garbage collection, and exception handling.

Pour les utilisateurs de vos applications, .NET Native présente les avantages suivants :For users of your apps, .NET Native offers these advantages:

  • Durées d’exécution pour la majorité des applications et de scénarios.Faster execution times for the majority of apps and scenarios.

  • Démarrage plus rapide pour la majorité des applications et de scénarios.Faster startup times for the majority of apps and scenarios.

  • Faibles coûts de déploiement et de mise à jour.Low deployment and update costs.

  • Utilisation de mémoire d’application optimisée.Optimized app memory usage.

Important

Pour la grande majorité des applications et des scénarios, .NET Native offre des temps de démarrage sensiblement plus rapides et des performances supérieures par rapport à une application compilée en langage intermédiaire ou à une image NGEN.For the vast majority of apps and scenarios, .NET Native offers significantly faster startup times and superior performance when compared to an app compiled to IL or to an NGEN image. Toutefois, les résultats peuvent varier.However, your results may vary. Pour vous assurer que votre application a tiré parti de l’amélioration des performances de .NET Native, vous devez comparer ses performances avec celle de la version non - .NET Native de votre application.To ensure that your app has benefited from the performance enhancements of .NET Native, you should compare its performance with that of the non-.NET Native version of your app. Pour plus d’informations, consultez vue d’ensemble de la Session de Performance.For more information, see Performance Session Overview.

Mais .NET Native ne concerne pas seulement une compilation en code natif.But .NET Native involves more than a compilation to native code. Il transforme la façon dont les applications .NET Framework sont intégrées et exécutées.It transforms the way that .NET Framework apps are built and executed. En particulier :In particular:

  • Pendant la précompilation, les parties nécessaires de .NET Framework sont liées statiquement dans votre application.During precompilation, required portions of the .NET Framework are statically linked into your app. Cela permet à l'application de s'exécuter avec les bibliothèques app-local de .NET Framework et au compilateur d'effectuer une analyse globale pour procurer des gains de performance.This allows the app to run with app-local libraries of the .NET Framework, and the compiler to perform global analysis to deliver performance wins. Ainsi, les applications se lancent systématiquement plus rapidement même après une mise à jour de .NET Framework.As a result, apps launch consistently faster even after .NET Framework updates.

  • Le runtime .NET Native est optimisé pour la précompilation statique et offre de meilleures performances dans la grande majorité des cas.The .NET Native runtime is optimized for static precompilation and in the vast majority of cases offers superior performance. Dans le même temps, il conserve les fonctionnalités de réflexion principales, si productives au regard des développeurs.At the same time, it retains the core reflection features that developers find so productive.

  • .NET native utilise le même serveur principal en tant que le C++ compilateur, qui est optimisé pour les scénarios de précompilation statiques..NET Native uses the same back end as the C++ compiler, which is optimized for static precompilation scenarios.

.NET native est en mesure d’offrir les avantages de performances de C++ gérer les développeurs de code, car elle utilise les outils similaires ou identiques en tant que C++ sous le capot, comme indiqué dans cette table..NET Native is able to bring the performance benefits of C++ to managed code developers because it uses the same or similar tools as C++ under the hood, as shown in this table.

.NET Native.NET Native C++C++
BibliothèquesLibraries .NET Framework + Windows RuntimeThe .NET Framework + Windows Runtime Win32 + Windows RuntimeWin32 + Windows Runtime
CompilateurCompiler Compilateur d'optimisation UTCUTC optimizing compiler Compilateur d'optimisation UTCUTC optimizing compiler
DéployéDeployed Fichiers binaires prêts à être exécutésReady-to-run binaries Fichiers binaires prêts à être exécutés (ASM)Ready-to-run binaries (ASM)
RuntimeRuntime MRT.dll (Runtime CLR minimal)MRT.dll (Minimal CLR Runtime) CRT.dll (Runtime C)CRT.dll (C Runtime)

Pour les applications Windows pour Windows 10, vous devez charger les binaires de compilation de code .NET Native contenus dans les packages d’application (fichiers .aspx) vers le Windows Store.For Windows apps for Windows 10, you upload .NET Native Code Compilation binaries in app packages (.appx files) to the Windows Store.

Dans cette sectionIn This Section

Pour plus d'informations sur le développement d'applications avec la compilation de code .NET Native, consultez les rubriques suivantes :For more information about developing apps with .NET Native Code Compilation, see these topics: