Migration vers .NET 4 : quelques points à prendre en compte
Je n'ai pas encore totalement explorée la liste des breaking changes pouvant impacter une application existante lors de sa migration vers .NET 4 (ou son exécution sous .NET 4 sans recompilation), mais il semble que certains points ne fassent pas partie des "listes officielles" que voici :
Voici donc quelques informations complémentaires :
Events get a little overhaul in C# 4, Part III: Breaking Changes
Il va falloir s'attendre à quelques avertissements à la compilation, mais peut être aussi quelques erreurs.
Breaking changes in SmtpClient in .NET 4.0
La classe SmtpClient implémente maintenant IDisposable, il va donc falloir faire le nécessaire pour s'assurer d'appeler la méthode Dispose.
Modification du comportement de TypeConverter.IsValid
Je pense que toutes les personnes ayant un jour utilisée cette méthode en .NET pré-4.0 l'ont maudite, vu qu'elle avait un comportement un peu décalé par rapport à son nom.
Ce exemple de code retournait true, au lieu du false attendu :
String maybeInt32Value = "Ha ha ha...";
TypeConverter int32Converter = TypeDescriptor.GetConverter(typeof(Int32));
Boolean isValid = int32Converter.IsValid(maybeInt32Value);
Console.WriteLine(isValid);
Avec .NET 4 ce ne sera plus le cas, donc il va falloir faire une revue des codes reposant sur cette fonctionnalité et qui pourraient se mettre à fonctionner correctement, et donc différemment. C'est le genre de cas où on découvre des bugs ne s'étant jamais produits, par exemple si les valeurs passées durant les tests (et la production) étaient toujours des valeurs valides du point de vue de l'étape suivant la validation.
A ce sujet, voir ces entrées sur Connect :
N'hésitez pas à ajouter un commentaire à ce post si vous avez eu vent d'autres changements à prendre en compte lors d'une migration.
Ce post vous a plu ? Ajoutez le dans vos favoris pour ne pas perdre de temps à le retrouver le jour où vous en aurez besoin :