Est-il vraiment impossible de migrer de .net framework à .net 7 ?
Chaque nouvelle version de .net arrive avec son lot de rumeurs et d’idées reçues. Dernièrement, j’ai lu sur Reddit qu’il était impossible de migrer de .net framework vers .net 7. Jouant avec .net depuis ses débuts, je suis choqué par cette affirmation sans véritable fondement.
Heureusement, cela n’est pas vrai.
Des limites ?
Dans un premier temps, il faut savoir identifier les limites. Tous les projets ne sont pas forcément éligibles à la migration. On peut regrouper la majorité des limitations en deux catégories :
- Dépendances incompatibles avec .net 7.
- Technologies inexistantes dans .net 7 (exemples: .net remoting, ASMX, ASHX, etc.).
Des complications ?
Les limites techniques peuvent se voir agrémenter de quelques petits, ou gros problèmes d’architecture :
- Code spaghetti.
- Couplages forts.
- Architecture monolithique.
- Antipatterns
- etc.
Des solutions ?
Ce n’est pas la première fois que j’aborde des sujets de migration. Je n’irai donc pas jusqu’à dire qu’il n’y a qu’une approche possible. Il en existe de très nombreuses. Mais il y en est qui sont plus simples que d’autres. Je vais donc me limiter aux éléments que l’on retrouve toujours :
- Ne pas penser la migration en une opération unique. Il s’agit d’une aventure qui sera plus ou moins longue.
- Réduire la dette technique avant de débuter la migration.
- Remplacer les technologies, et dépendances dépréciées ou obsolètes (exemple : migrer de SOAP à REST ou gRPC).
- Utiliser l'hôte générique d'injection fourni avec .net core (supportant .net standard, et donc .net framework).
Une grande partie du travail peut être effectué tout en restant avec .net framework. Si votre application s’appuie sur des services, il est même envisageable de migrer ceux-ci en premier (voir l’intégralité du backend). La partie cliente de l’application est souvent celle qui demande le plus de travail de migration. Il n’est donc pas impossible de rester un temps avec un front-end ou un UI Windows fonctionnant avec .net framework.
Conclusion
Face à la difficulté, je comprends que certains préfèrent penser que la migration est impossible. Mais il faut se souvenir qu’avec .net, il y a toujours une solution.