Sie sind hier:
Lexikon/Glossar
Telefon (Mo-Fr 10-16 Uhr):
0201/649590-0
|
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
Entwicklungswerkzeuge
Scripting
Softwareengineering
Datenbanken / Reporting / BI
Betriebssysteme & Virtualisierung
Microsoft Server-Produkte
Windows & Office für Anwender
Soft Skills & IT-Recht
Beratung
Beratungsthemen
Coaching
Softwareentwicklung
Technischer Support
Unsere Top-Berater
Referenzkunden
Angebotsanfrage
Individuelle Schulungen
1023 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 10.0
.NET 9.0
.NET 8.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, Barrierefreiheit
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