.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]