Sie sind hier:
Wissen
Telefon (Mo-Fr 9 bis 16 Uhr):
0201/649590-0
|
Kontaktformular
MENU
Medien
Übersicht
Lexikon/Glossar
Spickzettel
Weblog
Konferenzvorträge
Fachbücher
Fachartikel
Leserportal
Autoren gesucht!
Literaturtipps
Praxisnahe Fallbeispiele
Downloads
Newsletter
.NET
Startseite
.NET 8.0
.NET 7.0
.NET 6.0
.NET 5.0
.NET Core
.NET 4.0/4.5.x/4.6.x
.NET 3.0/3.5
.NET 2.0
.NET-Lexikon
Programmiersprachen
Entwicklerwerkzeuge
Klassenreferenz
Softwarekomponenten
Windows Runtime
World Wide Wings-Demo
Versionsgeschichte
Codebeispiele
ASP.NET
Artikel
Bücher
Schulung & Beratung
Konferenzen/Events
ASP.NET
Startseite
Lexikon
Sicherheit
Konfiguration
Global.asax
Tracing
Technische Beiträge
Klassenreferenz
Programmiersprachen
Entwicklerwerkzeuge
Softwarekomponenten
Forum
Schulung & Beratung
PowerShell
Startseite
Commandlet-Referenz
Codebeispiele
Commandlet Extensions
Versionsgeschichte
Schulungen+Beratung
Windows
Startseite
Windows Runtime (WinRT)
Windows PowerShell
Windows Scripting
Windows-Schulungen
Windows-Lexikon
Windows-Forum
Scripting
Startseite
Lexikon
FAQ
Bücher
Architektur
Skriptsprachen
Scripting-Hosts
Scripting-Komponenten
COM/DCOM/COM+
ADSI
WMI
WMI-Klassenreferenz
Scripting-Tools
WSH-Editoren
Codebeispiele
.NET-Scripting
Forum
Schulung & Beratung
Nutzer
Anmeldung/Login
Buchleser-Registrierung
Gast-Registrierung
Hilfe
Website-FAQ
Technischer Support
Site Map
Tag Cloud
Suche
Kontakt
Erklärung des Begriffs: Native AOT (NAOT)
Begriff
Native AOT
Abkürzung
NAOT
Eintrag zuletzt aktualisiert am
20.11.2023
Zur Stichwortliste unseres Lexikons
Was ist
Native AOT
?
Native
AOT
ist der
Ahead-of-Time-Compiler
, den Microsoft in
.NET 7.0
eingeführt hat als Alternative zum
Just-in-Time-Compiler
.
.NET bietet seit Version 7.0 erstmals den schon seit einigen Jahren angekündigten
Ahead-of-Time-Compiler
für .NET an, der zur Entwicklungszeit Maschinencode erzeugt und keinen
Just-in-Time-Compiler
, der zur Laufzeit Intermediate Language in Maschinencode übersetzt, mehr benötigt.
In
.NET 7.0
nur für Konsolenanwendungen
Keine Laufzeitcodegenerierung (
Reflection
.Emit)
Kein
Entity Framework Core
, Dapper, AutoMapper -> nur
ADO.NET
und NanORM
https://github.com/DamianEdwards/Nanorm
Keine Kompilierung von Expressions
Kein dynamisches Nachladen von Assemblies (
Add-In
s/Plug-Ins) mit Assembly.LoadFile()
Keine COM-Interop,
WinRT
-
API
s,
WMI
,
ADS
Kein
C++/CLI
Keine Dymamic PGO und andere Plattformoptimierungen
In
.NET 8.0
Auch für Minimal Web
API
,
gRPC
und Worker Services
Weiterhin o.g. Einschränkungen
Native
AOT
aktivieren
Mit <PublishAot>true</PublishAot> in der Projektdatei
Seit
.NET 8.0
mit --aot beim Anlegen eines Projekts bzw. per Projektvorlage in
Visual Studio
:
dotnet new console --aot
dotnet new api --aot
dotnet new grpc --aot
dotnet new worker --aot
Weitere Hinweise zu Native
AOT
Optimierungsziele vom Entwickler konfigurierbar (Size | Speed), z.B. <IlcOptimizationPreference>Speed</IlcOptimizationPreference>
Das Kompilieren mit Native
AOT
dauert deutlich länger und funktioniert bisher nur mit Konsolenprojekten.
Native
AOT
verwendet
Tree Shaking
(
Application Trimming
)
Das Ergebnis ist eine einzige ausführbare Datei, die alle notwendigen Teile der .NET-Laufzeitumgebung enthält (self-contained, single File).
Es gibt darin weiterhin eine Runtime mit
Garbage Collector
, aber keinen Just-in-Timer-Compiler
Die Ausführbare Datei ist spezifische für ein Betriebssystem und eine Prozessorarchitektur (z.B. win-x86 oder linux-x64)
Erfordert zusätzliche Build-Werkzeuge
Windows:
Visual Studio
C++-Werkzeuge
Linux
: Clang
MacOS: Xcode
Cross-Platform
-Publishing ist nicht möglich
Vor
.NET 7.0
gab es in .NET nur
AOT
-Kompilierung für
Blazor WebAssembly
nach WebAssembly-Bytecode (seit
.NET 6.0
) und die in
.NET Core 3.0
eingeführte
CrossGen
-Technik, bei der eine Assembly partiell schon zur Entwicklungszeit vorkompiliert wird, aber dennoch den gesamte Intermediate Code mitliefert.
Querverweise zu anderen Begriffen im Lexikon
Ahead-of-Time-Compiler
Entity Framework Core (EFC)
Just-in-Time-Compiler
Application Trimming
Blazor WebAssembly (Blazor WASM)
Garbage Collector (GC)
Cross-Platform
Visual Studio (VS)
.NET Core 3.0
Tree Shaking
Reflection
.NET 8.0 (.NET 8)
.NET 7.0 (.NET 7)
.NET 6.0 (.NET 6)
CrossGen
C++/CLI
Add-In
Linux
Active Data Objects .NET (ADO.NET )
Windows Runtime (WinRT)
Google Remote Procedure Call (gRPC)
Ahead-of-Time-Compilation (AOT)
Application Programming Interface (API)
Active Directory Service (ADS)
Windows Management Instrumentation (WMI)
Beratung & Support
Anfrage für Beratung/Consulting zu Native AOT NAOT
Gesamter Beratungsthemenkatalog
Technischer Support zum Native AOT NAOT
Schulungen zu diesem Thema
Anfrage für eine individuelle Schulung zum Thema Native AOT NAOT
Gesamter Schulungsthemenkatalog
Bücher zu diesem Thema
Alle unsere aktuellen Fachbücher
E-Book-Abo für ab 99 Euro im Jahr