Lesedauer 2 Minuten

Ab sofort beherrscht Avalonia HotReload. Ein lange erwartetes Feature, das extrem viel Zeit spart. Dieser Beitrag zeigt Dir wie du HotReload in dein Avalonia Projekt integrieren und unter JetBrains Rider nutzen kann. Los geht’s!

Was ist Avalonia HotReload?

Hotreload überträgt Änderungen an .axaml– und .cs-Dateien direkt in eine laufende Anwendung, ohne dass ein Neustart nötig ist. Einfach speichern, und die betroffenen Controls, Styles, Ressourcen und Datenvorlagen werden an Ort und Stelle neu aufgebaut. Das Feature ist ab sofort allgemein verfügbar – für Windows, macOS, Linux, iOS und Android.

Wie HotReload funktioniert

Du musst dir keinen weiteren proprietären TCP-Stack einrichten oder ein zusätzliches Tool installieren – Avalonia HotReload baut auf .NET HotReload selbst auf, in das Microsoft für .NET MAUI ohnehin schon viel investiert hat, unter anderem mit Android- und iOS-Unterstützung ab .NET 11. Davon profitierst du einfach mit, ohne dafür extra etwas einrichten zu müssen. Für dich bedeutet das: ein Tool weniger, um das du dich kümmern musst.

Wenn du eine .axaml-Datei speicherst, siehst du die Änderung fast augenblicklich in der laufenden App – ohne Neustart, ohne Wartezeit. Auch Änderungen im C#-Code, etwa an einem ViewModel, wirken sich sofort aus, du musst nicht erst wieder zur betroffenen Ansicht navigieren.

Besonders angenehm:
Meistens wird nur das Element aktualisiert, das du tatsächlich bearbeitet hast. Der Zustand bleibt erhalten, der Rest der App bleibt unberührt – du verlierst also nicht ständig deinen aktuellen Arbeitskontext. In den Logs kannst du außerdem genau nachvollziehen, was bei jeder Änderung passiert ist.

Ganz ausgereift ist es aber noch nicht:
Bei manchen Änderungen bekommst du statt eines gezielten Updates noch einen vollständigen Reload des Elements zu sehen, wodurch dessen Zustand dann doch verloren geht. Trotzdem ein Feature das man nicht mehr missen mag.

Die Voraussetzungen für Avalonia HotReload

Avalonia HotReload ist ein Avalonia Plus-Feature, d.h. es erfordert eine entsprechende Avalonia-Lizenz.

Folgende Dependencies müssen erfüllt sein:

.NET 8.0 – 10.0:

  • Avalonia ≥ 12.0.1
  • Avalonia.Markup.Xaml.Loader ≥ 12.0.1
  • AvaloniaUI.Licensing ≥ 3.1.2

3 einfache Schritte: Integration von HotReload  in dein Avalonia Projekt

Zur Integration von Avalonia HotReload in Jetbrains Rider gehst Du wie folgt vor:

1. Installation des Avalonia HotReload Package

Installiere AvaloniaUI.DiagnosticsSupport.HotReload über die NuGet Paketverwaltung:

Avalonia Hotereload NuGet

2. Anpassen der Avalonia Projektdatei

In Deiner Projektdatei entfernst Du zuerst den von NuGet neu erstellen Eintrag für das AvaloniaUI.DiagnosticsSupport.HotReload Package:

Dann fügst Du dein Eintrag mit dem folgenden Code gleich wieder hinzu und zwar so, daß die Lib nur im Debug-Modus geladen wird:

Die zusätzliche Property-Group bewirkt folgendes:

  • AvaloniaHotReloadEnableFileWatcher:
    Aktiviert HotReload
  • AvaloniaHotReloadIncremental:
    Änderungen werden beim HotReload inkrementell verarbeitet, d.h. der App-State bleibt weitgehend erhalten.

3. Avalonia Lizenz hinzufügen

Der folgende Abschnitt fügt deine Avalonia Lizenz hinzu:

Dein Projekt ist nun startklar. Happy Hot-Reloading :-)

Mehr über Avalonia lesen

 

 

Hat Dir der Beitrag gefallen?

Wenn Du Fragen oder Anmerkungen zu diesem Beitrag hast, dann starte einen Kommentar. DANKE für Dein Feedback!