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

.Net Native ist eine vorkompilierungs Technologie zum entwickeln und Bereitstellen von Windows-apps, die in Visual Studio 2015 und höheren Versionen enthalten sind..NET Native 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 werden von .net Native Windows-apps direkt in systemeigenen Code kompiliert.In contrast, .NET Native compiles Windows apps directly to native code. Für Entwickler bedeutet das Folgendes:For developers, this means:

  • Ihre apps verfügen über die Leistung von System eigenem Code.Your apps feature the performance of native code. In der Regel ist die Leistung für Code, der zuerst in IL kompiliert und dann vom JIT-Compiler in systemeigenen Code kompiliert wird, übergeordneter.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 Apps bietet .net Native folgende Vorteile:For users of your apps, .NET Native offers these advantages:

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

  • Schnellere Startzeiten für die Mehrzahl der apps und Szenarios.Faster startup times for the majority of apps and scenarios.

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

  • Optimierte App-Speicherauslastung.Optimized app memory usage.

Wichtig

Bei den meisten apps und Szenarien bietet .net Native deutlich schnellere Startzeiten und eine bessere Leistung im Vergleich zu einer in Il kompilierten APP oder zu einem 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. Ihre Ergebnisse können jedoch variieren.However, your results may vary. Um sicherzustellen, dass Ihre APP von den Leistungsverbesserungen .net Native profitiert, sollten Sie die Leistung mit der Non-.net nativen 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 die Leistungs Sitzung.For more information, see Performance Session Overview.

.Net Native umfasst jedoch mehr als eine Kompilierung in nativem Code.But .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 Native-Laufzeit ist für die statische Vorkompilierung optimiert, und in der Mehrzahl der Fälle bietet eine bessere Leistung.The .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 Native verwendet das gleiche Back-End wie C++ der Compiler, der für statische vorkompilierungs Szenarios optimiert ist..NET Native uses the same back end as the C++ compiler, which is optimized for static precompilation scenarios.

.Net Native ist in der Lage, die Leistungsvorteile C++ von Entwicklern von verwaltetem Code zu bieten, da die gleichen oder C++ ähnliche Tools wie in der folgenden Tabelle verwendet werden..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 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: