Sie sind hier:
Lexikon/Glossar
Telefon (Mo-Fr 9 bis 16 Uhr):
+49 (0)201 649590-50
|
Kontaktformular
MENU
Start
Hauptseite
Angebote im Überblick
Kernkompetenzen
Softwareentwicklung
Beratung
Firmen-Schulungen
Offene Seminare
Online-Maßnahmen
Vorträge
Coaching
Support
Fachbücher
Fachartikel
Konditionen
Themen
Themenüberblick
Aktuelle Themen
Web & Cloud
Apps / Mobilplattformen
Benutzeroberflächen / User Experience
.NET
JavaScript/TypeScript
Java
Programmiersprachen/Sprachsyntax
Entwicklungswerkzeuge
Scripting
Softwareentwicklung allgemein
Datenbanken
Betriebssysteme und Virtualisierung
Microsoft Server-Produkte
Windows und Microsoft Office für Anwender
Allgemeine IT-Themen
Beratung
Beratungsthemen
Coaching
Softwareentwicklung
Technischer Support
Unsere Top-Berater
Referenzkunden
Angebotsanfrage
Individuelle Schulungen
1019 Schulungsthemen
Agendakonfigurator
Weiterbildungsphilosophie
Didaktische Konzepte
Vor-Ort oder Online
Unsere Top-Trainer
Referenzkunden
Teilnehmerfeedback
Angebotsanfrage
Offene Seminare
.NET-Akademie
.NET/C#-Basisseminar
WPF
WinUI
.NET MAUI
Blazor
ASP.NET WebAPI & gRPC
Entity Framework Core
Unit Testing / TDD
PowerShell
Infotage
Wissen
Übersicht
Fachbücher
Fachartikel
Konferenzvorträge
Konferenzen/Events
Spickzettel
Lexikon/Glossar
Programmcodebibliothek
Versionshistorie
Weblog
Downloads
Newsletter
Community-/Leserportal
Registrierung
.NET/C#/Visual Studio
.NET 8.0
.NET 7.0
.NET 6.0
ASP.NET (Core)/Blazor
PowerShell
Über uns
Kontakt
Selbstdarstellung
Kernkompetenzen
Dr. Holger Schwichtenberg
Top-Experten
Leitung & Kundenteam
Referenzkunden
Kundenaussagen
Referenzprojekte
Partner
Konditionen
Stellenangebote
Weitere Websites
Impressum
Datenschutzerklärung, Haftung, Urheberrecht
Suche
Themenkatalog
Tag Cloud
Volltextsuche
Site Map
FAQs
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