Fermer

mars 29, 2021

Démarrage rapide de la migration vers .NET Core avec l'assistant de mise à niveau


Passons en revue le nouvel Assistant de mise à niveau de Microsoft pour la migration de vos projets vers .NET Core, ainsi que quelques conseils pour faciliter le processus.

Microsoft a récemment annoncé un Assistant de mise à niveau pour faciliter et accélérer la transition à .NET Core. La sortie de cet outil est un coup de pouce pas si subtil pour aider tout le monde à migrer de .NET Framework vers .NET Core. L'assistant de mise à niveau s'appuie sur l'outil try-convert en fournissant un flux dirigé par l'utilisateur ainsi que des outils pour gérer la transition de plusieurs projets à la fois. J'ai décidé de me lancer et de commencer à utiliser l'assistant de mise à niveau pour voir s'il s'agit d'une étape par rapport à try-convert.

Éléments à prendre en compte avant de commencer

L'état actuel de l'assistant de mise à niveau mettra à niveau vos projets de à la structure de projet la plus récente et changez le framework ciblé en .NET Core. Parallèlement à la migration de la structure du projet, l'Assistant de mise à niveau appliquera certaines modifications de code dans C # pour les projets ASP.NET. Bien que ces modifications ne terminent peut-être pas la migration pour vous, elles constituent un pas dans la bonne direction avec plus de règles à venir dans les itérations ultérieures.

Nous avons passé en revue ce que l'assistant de mise à niveau fera pour vous, mais maintenant nous devrions en parler ce qu'il ne fera pas pour vous. Étant donné que l'assistant de mise à niveau repose sur try-convert, il présente les mêmes limitations de code qui ne peuvent pas être migrées vers .NET Core:

  • Domaines d'application
  • Remoting
  • Code access security (CAS)
  • Transparence de la sécurité
  • System.EnterpriseServices

La migration loin de chacun de ces concepts a son propre processus en profondeur avec des compromis et des remaniements qu'il vaut mieux laisser à chaque cas d'utilisation individuel. Une fois les limites éliminées, passons à quelques bonnes pratiques pour vous préparer au succès.

J'ai appris quelques leçons qui m'ont aidé à exécuter l'assistant de mise à niveau qui peut profiter à tout le monde. Avant d'exécuter l'outil, j'ai vérifié que je n'avais aucun changement actif dans ma branche et je m'assurais qu'il n'y avait pas de changements majeurs qui se produisaient actuellement bientôt ou en cours. Cet outil restructure les fichiers du projet avec les dépendances, donc je voulais m'assurer qu'il n'y aurait pas de gros problèmes de fusion avec la branche principale.

En plus de commencer avec une branche propre, j'ai fait une copie entière du dossier de solution actuel. Bien que copier un projet qui est déjà sous contrôle de code source semble exagéré, je trouve que voir les deux fichiers ouverts côte à côte aide à voir ce qui se passe.

Exécution de l'Assistant de mise à niveau

Pour installer les outils, vous devez installez upgrade-assistant et le moyen le plus simple de le faire serait d'utiliser l'outil dotnet dans PowerShell. Il existe une dépendance sur MSBuild, donc si vous ne l'exécutez pas sur une machine sur laquelle Visual Studio est installé, vous devrez installer MSBuild.

 dotnet tool install -g upgrade-assistant

Une fois installé, vous pouvez exécuter l'outil sur votre solution. Lorsque vous exécutez l'outil sur une solution, il vous invite à sélectionner le projet de point d'entrée, qu'il utilisera pour vous aider à générer l'ordre dans lequel vous devez migrer vos projets.

 upgrade-assistant.exe 

WinForm (Application Windows Form)

Pour les migrations WinForm, l'assistant de mise à niveau mettra uniquement à niveau la structure du projet et de la solution tout en modifiant le cadre cible avec des références. À l'heure actuelle, il n'y a pas de règles explicites pour changer le code avec les projets. Bien que cela puisse sembler un petit avantage, j'ai constaté que la plupart des projets WinForm ont tendance à avoir un certain nombre de projets dépendants au fil du temps, ce que cet outil peut aider à tout migrer dans le bon ordre.

ASP.NET MVC

Lorsqu'il s'agit de migrer une application ASP.NET MVC, l'assistant de mise à niveau a mis en place quelques règles supplémentaires pour vous aider à progresser dans le processus de migration. En plus de la migration des projets, il existe un ensemble de règles qui seront appliquées à votre projet C #.

 Vue des règles ASP.NET de l'Assistant de mise à niveau

Suivi

Après avoir suivi les invites du Upgrade Assistant, vous vous retrouvez à appuyer sur <1> et plusieurs fois. Finalement, vous constaterez que la migration est terminée. Il est possible que l'assistant de mise à niveau se termine avec succès et qu'il reste encore du travail pour terminer la migration.

Si l'assistant de mise à niveau ne présente aucun échec, vous pouvez commencer à exécuter des tests unitaires et tester l'application pour vérifier les modifications avant d'enregistrer le code. Mais, à ce stade, vous devriez être sur la bonne voie pour terminer la migration.

Si l'assistant de mise à niveau a échoué, il existe quelques options que vous pouvez utiliser pour rechercher les différences et repérer là où le processus a échoué. [19659005] La première et la plus simple approche consiste à comparer un diff des fichiers actuels aux fichiers précédents et à voir s'il y a eu un problème lors de la migration. Au cours de cette enquête, vous pouvez revenir à la réexécution de l'outil à l'aide de l'indicateur détaillé (-v) pour afficher les journaux exacts au moment de l'échec. Si rien ne sort de cela, vous aurez au moins quelques journaux très détaillés à fournir à Microsoft.

L'approche la plus extrême consiste à conserver les projets qui ont migré avec succès et à les restaurer à partir du dossier de sauvegarde créé à partir de l'assistant de mise à niveau. . Le dossier de sauvegarde prend une copie du projet avant la migration, vous devriez donc pouvoir supprimer le dossier actuel et renommer le .backup en .

Conclusion

Dans l'ensemble, le Upgrade Assistant est un outil très utile pour vous aider à démarrer la migration de votre code vers .NET Core. Bien qu'il fournisse un flux de travail direct, ce n'est qu'un début pour la migration de votre code. Certaines parties devront peut-être être modifiées même après la migration du framework pour que tout fonctionne. Mais l'avantage est que l'assistant de mise à niveau est extensible et dispose d'une feuille de route solide, il ne sera donc pas surprenant de voir des extensions et de nouvelles fonctionnalités fournies par l'utilisateur pour rendre cet outil encore plus utile. Bon codage!




Source link