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.Loadarbitraire, etc.). La sérialisation JSON doit utiliser un source generator (JsonSerializerContext) plutôt que la réflexion classique deSystem.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));