Kompilieren von Apps mit .NET Native

.NET Native ist eine Vorkompilierungstechnologie für die Erstellung und Bereitstellung von UWP-Apps. .NET Native ist in Visual Studio 2015 und höher enthalten. Die Releaseversion von UWP-Apps, die in verwaltetem Code (C# oder Visual Basic) geschrieben sind, wird automatisch in nativen Code kompiliert.

Typischerweise werden .NET-Apps in eine Intermediate Language (IL) kompiliert. Zur Laufzeit übersetzt ein JIT-Compiler (Just-In-Time) die IL in systemeigenen Code. Im Gegensatz dazu kompiliert .NET Native UWP-Apps direkt in nativen Code. Für Entwickler bedeutet das Folgendes:

  • Ihre Apps bieten die Leistung von nativem Code. In der Regel ist die Leistung höher als bei Code, der zuerst in IL und dann vom JIT-Compiler in nativen Code kompiliert wird.

  • Sie können weiterhin in C# oder Visual Basic programmieren.

  • Sie können weiterhin die von .NET Framework bereitgestellten Ressourcen nutzen, einschließlich der Klassenbibliothek, der automatischen Speicherverwaltung und Garbage Collection sowie der Ausnahmebehandlung.

Für Benutzer Ihrer Apps bietet .NET Native folgende Vorteile:

  • Schnellere Ausführungszeiten für die meisten Apps und Szenarien.

  • Schnellere Startzeiten für die meisten Apps und Szenarien.

  • Niedrige Kosten für Bereitstellung und Update.

  • Optimierte Anwendungsspeichernutzung.

Aber .NET Native umfasst mehr als nur eine Kompilierung in systemeigenem Code. Es ändert die Art und Weise, in der .NET Framework-Anwendungen erstellt und ausgeführt werden. Dies gilt insbesondere für:

  • Bei der Vorkompilierung werden erforderlichen Bestandteile von .NET Framework statisch mit Ihrer App verknüpft. Dadurch kann die Anwendung mit lokalen App-Bibliotheken von .NET Framework ausgeführt werden, und der Compiler kann eine globale Analyse ausführen, um Leistungszuwächse bereitzustellen. Daher starten Anwendungen konsistent schneller – sogar nach .NET Framework-Updates.

  • Die .NET Native-Runtime ist für die statische Vorkompilierung optimiert und bietet in den meisten Fällen eine bessere Leistung. Gleichzeitig werden aber die zentralen Reflektionsfeatures beibehalten, die Entwickler so produktiv finden.

  • .NET Native verwendet das gleiche Back-End wie der C++-Compiler, der für statische Vorkompilierungsszenarios optimiert ist.

.NET Native kann Entwicklern von verwaltetem Code die Leistungsvorteile von C++ bieten, da die gleichen oder ähnliche Tools wie C++ verwendet werden, wie in dieser Tabelle gezeigt.

Komponente .NET systemeigen C++
Bibliotheken .NET Framework + Windows-Runtime Win32 + Windows-Runtime
Compiler UTC-Optimierungscompiler UTC-Optimierungscompiler
Bereitgestellt Sofort ausführbare Binärdateien Sofort ausführbare Binärdateien (ASM)
Typ MRT.dll (minimale CLR-Laufzeit) CRT.dll (C-Laufzeit)

Für UWP-Apps laden Sie .NET Native-Codekompilierungs-Binärdateien in App-Paketen (MSIX- oder APPX-Dateien) in den Windows Store hoch.