Qu'est-ce que .NET Hot Reload ?
Avec Hot Reload, vous pouvez désormais modifier le code source géré de vos applications pendant que l'application est en cours d'exécution, sans avoir besoin de mettre manuellement en pause ou d'atteindre un point d'arrêt. Effectuez simplement une modification prise en charge pendant l'exécution de votre application et, dans la nouvelle expérience Visual Studio, utilisez le bouton « Appliquer les modifications de code » pour appliquer vos modifications.
Hot Reload fonctionne avec de nombreux types de projets existants et à venir tels que WPF, Windows Forms, les Previewaperçus .NET MAUI, les applications ASP.NET Core code-behind, les applications console, WinUI 3 (débogueur géré requis) et bien d'autres. Cette prise en charge est très large avec l'expérience de base de tout projet alimenté par les environnements d'exécution .NET Framework ou CoreCLR.
Avec Hot Reload, l'objectif de Microsoft est de rendre cette expérience disponible quelle que soit la manière dont vous préférez lancer votre application. Avec la version d'aujourd'hui, vous pouvez désormais utiliser cette expérience via l'expérience de débogage Visual Studio entièrement intégrée ou l'outil de ligne de commande dotnet watch, avec plus d'options à venir dans les versions ultérieures.
Commencer à utiliser Hot Reload
Pour commencer, vous avez la possibilité d'utiliser la dernière Preview de Visual Studio ou .NET 6 Preview 4, en suivant les instructions ci-dessous.
Visual Studio
Pour essayer le rechargement à chaud dans Visual Studio lors de l'utilisation du débogueur:
- Téléchargez et installez Visual Studio 2019 version 16.11 Preview 1
- Ouvrez un type de projet pris en charge, par exemple une application WPF
- Lancez l'application avec le débogueur attaché via F5 (assurez-vous que «activer le débogage du code natif» est désactivé dans les paramètres du débogueur / profil de lancement du débogage)
- Ouvrez un fichier de code C# avec du code qui peut être réexécuté via l'interface utilisateur des applications en cours d'exécution (exemple: code derrière un bouton ou une commande ViewModel) ou quelque chose qui est déclenché à un intervalle par une minuterie et modifiez le code
- Appliquez les modifications de code à l'aide du nouveau bouton Appliquer les modifications de code (ALT-F10) dans votre barre d'outils Visual Studio (à côté du bouton Continuer). Notez que l'enregistrement des fichiers n'est pas nécessaire lors de l'utilisation de Visual Studio, ce qui vous permet de modifier rapidement le code et de continuer.
Si la modification que vous avez apportée est prise en charge, votre application sera désormais corrigée pendant son exécution avec votre nouvelle logique et vous devriez voir les changements dans le comportement de votre application la prochaine fois que le code mis à jour sera réexécuté par votre action ou par quelque chose comme un minuteur déclenchant le code.
Vous pouvez également continuer à utiliser d'autres fonctionnalités du débogueur telles que les points d'arrêt, Edit & Continue, XAML Hot Reload, etc. Tout ce à quoi vous êtes habitué aujourd'hui devrait fonctionner en parallèle avec .NET Hot Reload. Si quelque chose ne fonctionne pas pour vous, vous pourrez toujours en informer l'éditeur !
CLI
Pour essayer Hot Reload à partir de la ligne de commande lors du lancement de votre application à l'aide de dotnet watch:
- Installez .NET 6 Preview 4
- Mettez à jour votre projet ASP.NET Core existant pour cibler .NET 6
- Ajoutez la propriété «hotReloadProfile»: «aspnetcore» à votre profil de lancement d'applications dans launchSettings.json.
Exemple de Properties / launchSettings.json:Code JavaScript : Sélectionner tout 1
2
3
4
5
6
7
8{ "profiles": { "dotnet": { "commandName": "Project", "hotReloadProfile": "aspnetcore" } } }
- Exécutez le projet à l'aide de dotnet watch et regardez la sortie car elle devrait indiquer que le rechargement à chaud est activé
- Apportez une modification de code prise en charge au code source géré de vos applications et enregistrez le fichier à appliquer
Tout comme avec l'expérience Visual Studio, votre nouvelle logique doit maintenant être appliquée et vous devriez voir les changements dans le comportement de votre application la prochaine fois que le code mis à jour est réexécuté.
Vous pouvez également utiliser cette approche avec vos projets Blazor WebAssembly en modifiant le profil de rechargement à chaud «blazorwasm» et en suivant les étapes similaires ci-dessus. Vous pouvez même l'essayer avec un Windows Forms ou d'autres types de projets alimentés par CoreCLR, ajoutez simplement manuellement un fichier nommé launchSettings.json sous le dossier Propriétés avec le contenu de l'exemple ci-dessus.
Cette expérience est toujours en développement et Microsoft suit les améliorations futures qui faciliteront l'utilisation de dotnet watch pour recharger à chaud tous les types d'applications .NET Core sans les fichiers launchSettings.json, mais il s'agit d'une limitation dans la version actuelle.
De meilleures fonctionnalités attendues pour Visual Studio 2022 et .NET 6
Microsoft explique qu'avec la Preview d'aujourd'hui, l'éditeur ne livre qu'un aperçu de sa vision complète de Hot Reload pour les développeurs .NET. Bien que certaines fonctionnalités soient mises à disposition dans les premières versions de .NET 6 et dans Visual Studio 2019, pour la pleine puissance de cette fonctionnalité, Microsoft cible .NET 6 (ainsi que les futures versions de .NET) et Visual Studio 2022 en tant qu'ensemble de frameworks et outillage qui aura l'expérience la plus complète et la plus optimisée.
Pour vous donner un aperçu du type de fonctionnalités que Microsoft prévoit de proposer dans les prochaines prévisualisations et dans la version finale, voici quelques exemples:
- Interface utilisateur de l'application multiplateforme .NET (.NET MAUI): avec .NET 6 Preview 4, les développeurs qui créent des applications .NET MAUI peuvent désormais utiliser .NET Hot Reload avec des projets ciblant WinUI 3. Dans les prochaines versions, Microsoft apportera le support .NET Hot Reload aux scénarios iOS, Android et Mac Catalyst.
- Pages Razor: dans les versions futures, Hot Reload et Edit and Continue (EnC) seront pris en charge pour l'édition de Razor pour les sites Web ou les applications Blazor ciblant .NET 6 ou supérieur
- Aucun débogueur requis dans Visual Studio : dans la prochaine version de Visual Studio 2022, nous travaillons à ajouter la prise en charge pour utiliser Hot Reload sans avoir besoin du débogueur, cela signifie que les développeurs pourront lancer leurs applications en utilisant CTRL-F5 et continuer à utiliser Hot Reload pour corriger leur application en cours d'exécution
- Réduction du nombre de modifications non prises en charge: dans les futures versions de Visual Studio 2022 et .NET 6+, Microsoft prévoit des travaux entre plusieurs équipes, ce qui réduira le nombre de modifications non prises en charge au moment de l'exécution
- Optimiser les frameworks pour qu'ils fonctionnent au mieux avec Hot Reload : dans .NET 6, Microsoft étudie comment certains frameworks peuvent être améliorés pour mieux prendre en charge le Hot Reload. Des exemples de ceci dans le futur incluront des améliorations à ASP.NET Core, .NET MAUI et d'autres frameworks où les ajustements et l'optimisation rendront les changements de rechargement à chaud plus utiles dans plus de situations.
Source : Microsoft
Et vous ?
Qu'en pensez-vous ?
Voir aussi :
Microsoft Visual Basic 6 est mort, mais RAD Basic vient avec la promesse d'une solution 100 % compatible : support 64 bits et open source au menu
La version 2.0 bêta de l'EDI Arduino est disponible et divise les développeurs informatique sur la question de savoir si un plugin Arduino pour Visual Studio Code constitue une meilleure option
Visual Studio Code avril 2021 (1.56) est publié avec Electron 12, cette version apporte la prise en charge de Wayland et de KaTeX dans les blocs-notes