.NET Native ist die Bezeichnung für eine Technik, die zu Microsofts.NET-Plattform gehört und die Übersetzung einer Anwendung in Maschinencode bereits zum Entwicklungszeitpunkt ermöglicht. Ein Ahead-of-time-Compiler dient zur Kompilierung von Windows Store Apps (UWP), die in C# oder Visual Basic .NET programmiert sind.[1] .NET Native beinhaltet außerdem eine Laufzeitumgebung und wird als Bestandteil oder Ergänzung von .NET Core betrachtet, der aber bisher nur für UWP-Apps unterstützt wird.
Für .NET gibt es seit der Version .NET Core 3.0 auch eine Möglichkeit der AOT-Kompilierung durch sogenannte Ready-To Run Images. Die JIT-Kompilierung wird dabei als (optionaler) Schritt bei der Veröffentlichung der Anwendung (dotnet publish) vorab ausgeführt. Das Ergebnis, der (plattformspezifische) Maschinencode wird gemeinsam mit dem Managed Code in der Assembly-Datei gespeichert.[2] Die Dateien werden hierdurch natürlich größer, insbesondere wenn die Option gewählt wird, das Laufzeitsystem mit in die Datei zu integrieren, weitere Optionen beziehen sich dann darauf, das Laufzeitsystem möglichst auf die wirklich benötigten Bestandteile zu kürzen.[3]
Außerdem wurde über mehrere Jahre ein alternatives Laufzeitsystem für die Ahead-of-time-Kompilierung entwickelt ("corert"), das inzwischen auch in den Hauptentwicklungszweig für .NET übernommen wurde und ab der Version .NET 7 unter der Bezeichnung Native AOT zur Verfügung steht.[4] Es ist aber mit erheblichen Einschränkungen verbunden.[5]
Die Entwicklung von .NET Native wurde durch Microsoft erstmals im April 2014 bekanntgegeben. Eine Vorabversion des Compilers war in Visual Studio 2013 Update 2 enthalten. Die erste finale Version wurde zusammen mit Visual Studio 2015 verfügbar.
Einsatz
Anfänglich konnte der Compiler nur für Windows-Anwendungen benutzt werden, die basierend auf der Windows Runtime unter Windows 8.x laufen. Mittlerweile ist er für Anwendungen einsetzbar, die für die Universal Windows Platform und Windows 10 entwickelt wurden. Microsofts Angaben zufolge verbessert .NET Native die Performance von UWP-Anwendungen um bis zu 60 Prozent.[6]