Bonjour,
Tous est dans le titre! En clair j'avais un programme de 20000 lignes que j'ai converti directement en .NET 8.0 parce que cette version est stable à long terme. 9.0 ne l'est pas encore.
Les principales difficultés à prévoir selon la littérature :
- API obsolètes
- Patch obsolètes (Nugets)
- Gestion des Paintbox anarchique (code et affichage lent).
- Gestion des moves de la souris
- Affichage lent de la page 'design' s'il y a beaucoup de Paintbox
- Affichage partiel des toolstripbox
- Affichage partiel des paintbox
- Et 55 bricoles de code divers à ajuster.
La conversion en soit est très rapide et une fois fait je me suis retrouvé avec 2560 erreurs. Rien de bien grave car 98% des erreurs étaient issues de 2 erreurs d'initialisation dans le Form1_Load ! Bingo !
J'ai réorganiser mon Form1_Load en regroupant par famille. Exemple partiel du code :
etc.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 ' 0) le Form reçoit les KeyDown même si un contrôle a le focus Me.KeyPreview = True ' 1) Handlers et visibilité initiale RegisterToolStripMouseEnterHandlers() SetEssentialToolStripVisible() ' 2) Handlers globaux et récursifs AddHandler MouseDown, AddressOf Controle_MouseDown AddHandler Me.DragEnter, AddressOf PictureBox_DragEnter AjouterHandlersRecursif(Me) ' 3) Chargement des images et refresh du panneau des pièces ChargerImagesDesPieces() TableauPieces1.Invalidate() TableauPieces1.Refresh()
Du coup une bien meilleure visibilité qui m'a permis d'identifier les handlers, les API et les mouses move à modifier.
Une fois fait il reste 'seulement' 55 erreurs ! Lesquelles sont toutes des erreurs d'écriture de code lié aux différences entre 4.81 et 8.0. Rien de compliqué il m'a fallu 3 heures pour en venir à bout.
Le plus difficile : Faire les test et le debug ! Le plus long dans mon cas a été de modifier les propriétés des paintbox en enabled=true dès l'ouverture soit une écriture d'environ 200 lignes de plus. Et de comparer les propriétés des ToolStrip
pour les harmoniser affin qu'ils s'affichent. En 4.81 il n'y avait pas de problème mais en 8.0 la rigueur est la règle ! Il y a eu une centaine de lignes de code à optimiser pour divers bug.
Une fois fait l'exe s'ouvre en une fraction de seconde contre 7s en 4.81 => un gain énorme en qualité
L'affichage est plus rapide aussi. Petite amélioration du temps de fonctionnement des routines en général.
Le défaut uniquement coté programmeur : Affichage lent de la page 'design' s'il y a beaucoup de Paintbox
Bilan tout marche nickel et 11 heures de travail. On a vu pire !
Partagez votre expérience de conversion ça nous intéresse.
A vous lire





Répondre avec citation
Partager