.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. .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. 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.
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. Es ist aber mit erheblichen Einschränkungen verbunden.
Geschichte
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.
Literatur
- Mascha Schnellbacher: .NET Native und die Bedeutung für Universal-Windows-Platform-Entwickler, in: entwickler.de vom 21. August 2015
- Holger Schwichtenberg: Native Framework-Evolution, in: dotnetpro Nr. 8/2014, S. 74 ff.
- Holger Schwichtenberg: C# erzeugt jetzt auch nativen Code, in: heise developer vom 3. April 2014
- Holger Schwichtenberg: Zwei auf einen Streich, in: Windows Developer Nr. 10/2015, S. 8–14, auch online bei entwickler.de
- Holger Schwichtenberg: Begrenztes Universum, in: iX – Magazin für professionelle Informationstechnik Nr. 2/2016, S. 50 ff.
Weblinks
- Überblick über .NET bei mirGitHub (Memento vom 4. März 2016 im Internet Archive)
- Dokumentation zu .NET Native im MSDN
- .NET Native als Package in NuGet
Einzelnachweise
- ↑ mairaw: .NET Native und Kompilierung. Abgerufen am 28. November 2019 (deutsch).
- ↑ Announcing .NET Core 3.0 Preview 6. 12. Juni 2019, abgerufen am 28. November 2019 (amerikanisches Englisch).
- ↑ tdykstra: Befehl „dotnet publish“ - .NET CLI. Abgerufen am 16. April 2022 (deutsch).
- ↑ LakshanF: Native AOT deployment overview - .NET. Abgerufen am 9. November 2022 (amerikanisches Englisch).
- ↑ LakshanF: Native AOT deployment overview - .NET. Abgerufen am 9. November 2022 (amerikanisches Englisch).
- ↑ Mascha Schnellbacher: .NET Native und die Bedeutung für Universal-Windows-Platform-Entwickler (Memento vom 9. Dezember 2015 im Internet Archive), in: entwickler.de vom 21. August 2015