Kompilieren von Anwendungen mit .NET NativeCompiling Apps with .NET Native

.NET systemeigen.NET Native ist eine vorkompilierungstechnologie für die Erstellung und Bereitstellung von Windows-apps, die mit Visual Studio 2015 und höher enthalten ist. is a precompilation technology for building and deploying Windows apps that is included with Visual Studio 2015 and later versions. Die in verwaltetem Code (C# oder Visual Basic) geschriebene Releaseversion von Apps mit .NET Framework und Windows 10 als Ziel für systemeigenen Code werden automatisch kompiliert.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.

In der Regel werden Anwendungen, die auf .NET Framework ausgerichtet sind, in Intermediate Language (IL) kompiliert.Typically, apps that target the .NET Framework are compiled to intermediate language (IL). Zur Laufzeit übersetzt ein JIT-Compiler (Just-In-Time) die IL in systemeigenen Code.At run time, the just-in-time (JIT) compiler translates the IL to native code. Im Gegensatz dazu kompiliert .NET systemeigen.NET Native Windows-Apps direkt in systemeigenen Code.In contrast, .NET systemeigen.NET Native compiles Windows apps directly to native code. Für Entwickler bedeutet das Folgendes:For developers, this means:

  • Ihre apps an Funktionen der Leistung von systemeigenem Code.Your apps feature the performance of native code. In der Regel wird Leistung überlegen Code sein, die zuerst in IL kompiliert und anschließend vom JIT-Compiler in systemeigenen Code kompiliert wird.Usually, performance will be superior to code that is first compiled to IL and then compiled to native code by the JIT compiler.

  • Sie können weiterhin in C# oder Visual Basic programmieren.You can continue to program in C# or Visual Basic.

  • Sie können weiterhin die vom .NET Framework bereitgestellten Ressourcen nutzen, einschließlich Klassenbibliothek, automatische Speicherverwaltung und Garbage Collection sowie Ausnahmebehandlung.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.

Für Benutzer Ihrer Anwendungen bietet .NET systemeigen.NET Native die folgenden Vorteile:For users of your apps, .NET systemeigen.NET Native offers these advantages:

  • Schnellere Ausführungszeiten für die meisten apps und Szenarien.Faster execution times for the majority of apps and scenarios.

  • Schnellere Startzeiten für die meisten apps und Szenarien.Faster startup times for the majority of apps and scenarios.

  • Niedrige Kosten für Bereitstellung und Update.Low deployment and update costs.

  • Optimierte anwendungsspeichernutzung.Optimized app memory usage.

Wichtig

Für die meisten apps und Szenarien bietet .NET Native, bedeutend schneller Startzeiten und eine überragende Leistung im Vergleich zu einer app kompilierte IL oder ein NGEN-Image.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. Allerdings können die Ergebnisse variieren.However, your results may vary. Um sicherzustellen, dass Ihre app von .NET native die Leistungssteigerungen profitiert hat, sollten Sie seine Leistung, die nicht .NET Native Version Ihrer app vergleichen.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. Weitere Informationen finden Sie unter Übersicht über Leistungssitzungen.For more information, see Performance Session Overview.

Aber .NET systemeigen.NET Native umfasst mehr als nur eine Kompilierung in systemeigenem Code.But .NET systemeigen.NET Native involves more than a compilation to native code. Es ändert die Art und Weise, in der .NET Framework-Anwendungen erstellt und ausgeführt werden.It transforms the way that .NET Framework apps are built and executed. Insbesondere:In particular:

  • Bei der Vorkompilierung werden erforderlichen Bestandteile von .NET Framework statisch mit Ihrer App verknüpft.During precompilation, required portions of the .NET Framework are statically linked into your app. Dadurch kann die Anwendung mit lokalen Appbibliotheken von .NET Framework ausgeführt werden, und der Compiler kann eine globale Analyse ausführen, um Leistungszuwächse bereitzustellen.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. Daher starten Anwendungen konsistent schneller – sogar nach .NET Framework-Updates.As a result, apps launch consistently faster even after .NET Framework updates.

  • Die .NET systemeigen.NET Native Common Language Runtime ist für die statische Vorkompilierung optimiert und bietet eine bessere Leistung in der Mehrzahl der Fälle.The .NET systemeigen.NET Native runtime is optimized for static precompilation and in the vast majority of cases offers superior performance. Gleichzeitig werden aber die zentralen Reflektionsfeatures beibehalten, die Entwickler so produktiv finden.At the same time, it retains the core reflection features that developers find so productive.

  • .NET systemeigen.NET Native verwendet das gleiche Back-End wie der C++-Compiler, der für statische Vorkompilierungsszenarios optimiert ist. uses the same back end as the C++ compiler, which is optimized for static precompilation scenarios.

.NET systemeigen.NET Native kann die Leistungsvorteile von C++ auf Entwickler von verwaltetem Code übertragen, da im Endeffekt die gleichen oder ähnliche Tools wie für C++ verwendet werden, wie in dieser Tabelle gezeigt wird. 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 systemeigen.NET Native C++C++
BibliothekenLibraries .NET Framework + Windows-RuntimeThe .NET Framework + Windows Runtime Win32 + Windows-RuntimeWin32 + Windows Runtime
CompilerCompiler UTC-OptimierungscompilerUTC optimizing compiler UTC-OptimierungscompilerUTC optimizing compiler
BereitgestelltDeployed Sofort ausführbare BinärdateienReady-to-run binaries Sofort ausführbare Binärdateien (ASM)Ready-to-run binaries (ASM)
LaufzeitRuntime MRT.dll (minimale CLR-Laufzeit)MRT.dll (Minimal CLR Runtime) CRT.dll (C-Laufzeit)CRT.dll (C Runtime)

Für Windows-Apps für Windows 10 laden Sie Binärdateien für die Kompilierung von systemeigenem .NET-Code in App-Paketen (APPX-Dateien) in den Windows Store hoch.For Windows apps for Windows 10, you upload .NET Native Code Compilation binaries in app packages (.appx files) to the Windows Store.

In diesem AbschnittIn This Section

Weitere Informationen zum Entwickeln von Anwendungen mit der .NET Native-Codekompilierung finden Sie in den folgenden Themen:For more information about developing apps with .NET Native Code Compilation, see these topics: