Start Debugging

Tag: native-aot

19 Beiträge · Seite1von2

Framework-abhängig vs. eigenständig vs. Native AOT für ein .NET 11 Container-Image
Framework-abhängig auf einem chiseled aspnet-Image ist der richtige Standard für einen ASP.NET Core Dienst unter .NET 11, weil die Laufzeit-Schicht zwischen Diensten geteilt wird und eine Laufzeit-CVE durch einen Wechsel des Basis-Images behoben wird. Eigenständig mit Trimming und Native AOT erkaufen ein 2- bis 5-mal kleineres Image und einen deutlich schnelleren Kaltstart und kosten genau das. Echte veröffentlichte Größen, die Rechnung der geteilten Layer und der .NET 11 Basis-Image-Inferenzfehler, der den AOT-Pfad bricht.
new Regex(...) durch den [GeneratedRegex] Source Generator in .NET 11 ersetzen
Ein vollständiger Leitfaden zur Umstellung von new Regex(pattern, RegexOptions.Compiled) auf [GeneratedRegex] in .NET 11: die mechanische Umschreibung, partielle Methoden gegenüber partiellen Eigenschaften, gemessene Startzeit- und Durchsatzwerte, die Diagnosen SYSLIB1040-1045 und die zwei Muster, bei denen der Generator stillschweigend auf eine zwischengespeicherte Regex zurückfällt.
Was ist trim-sicherer Code und wie schreibe ich ihn?
Trim-sicherer Code ist Code, dessen Erreichbarkeit der .NET-Trimmer statisch beweisen kann, sodass er erhalten bleibt, wenn ungenutzter Code aus einer eigenständigen App entfernt wird. Dies ist die praktische Anleitung: Aktivieren Sie den Analyzer, treiben Sie jede IL2xxx-Warnung auf null, annotieren Sie Reflection mit DynamicallyAccessedMembers, propagieren Sie RequiresUnreferencedCode an öffentliche APIs und ersetzen Sie nicht analysierbare Muster durch Source Generatoren.
Was ist das DynamicallyAccessedMembers-Attribut?
DynamicallyAccessedMembers teilt dem .NET-Trimmer und dem AOT-Compiler mit, welche Member eines Type Sie per Reflection erreichen, damit diese erhalten bleiben statt weggetrimmt zu werden. Es verwandelt eine stille MissingMethodException zur Laufzeit in eine IL2070-Warnung zur Build-Zeit. Hier erfahren Sie, was das Attribut tut, wie die zugrunde liegende Datenflussanalyse funktioniert und wie Sie Parameter, Felder und generische Typparameter korrekt annotieren.
Weiter