</>
Plan du cours — 45/46

Native AOT

Avancé

.NET 10 permet de compiler certains projets (typiquement des APIs Minimal API) en un exécutable natif autonome : pas de runtime .NET à installer sur la machine cible, démarrage quasi instantané, empreinte mémoire réduite.

# Publier en Native AOT (nécessite les outils natifs de la plateforme cible)
dotnet publish -c Release -p:PublishAot=true
<PropertyGroup>
  <PublishAot>true</PublishAot>
  <InvariantGlobalization>true</InvariantGlobalization>
</PropertyGroup>

Limite à connaître : Native AOT interdit la réflexion dynamique non déclarée à l'avance (pas de Assembly.Load arbitraire, etc.). La sérialisation JSON doit utiliser un source generator (JsonSerializerContext) plutôt que la réflexion classique de System.Text.Json.

[JsonSerializable(typeof(Utilisateur))]
[JsonSerializable(typeof(List<Utilisateur>))]
internal partial class AppJsonContext : JsonSerializerContext { }

builder.Services.ConfigureHttpJsonOptions(options =>
    options.SerializerOptions.TypeInfoResolverChain.Insert(0, AppJsonContext.Default));