Éléments obsolètes dans le .NET Framework
Le .NET Framework change avec le temps. Chaque nouvelle version comporte de nouveaux types et membres de type qui fournissent de nouvelles fonctionnalités. Les types existants et leurs membres changent également avec le temps. Ainsi, certains types deviennent moins importants à mesure que la technologie qu'ils prennent en charge est remplacée par une nouvelle, et certaines méthodes sont remplacées de plus récentes qui sont soit plus pratiques, soit plus complètes.
Le .NET Framework et le Common Language Runtime s'efforcent de prendre en charge une compatibilité descendante (ce qui permet aux applications développées avec une version du .NET Framework de fonctionner sur la version suivante). Il est donc difficile de simplement supprimer un type ou un membre de type. À la place, le .NET Framework indique qu'un type ou un membre de type ne doit plus être utilisé en le marquant comme étant obsolète ou déconseillé. Le fait de déconseiller un type ou un membre implique de le marquer afin que les développeurs soient informés de sa suppression et qu'ils aient le temps de réagir. Toutefois, le code existant qui utilise le type ou le membre continue à fonctionner dans la nouvelle version du .NET Framework.
Remarque |
---|
Les termes obsolète et déconseillé ont la même signification lorsqu'ils sont appliqués aux types et membres du .NET Framework. |
Attribut ObsoleteAttribute
Le .NET Framework indique qu'un type ou membre de type est obsolète en le marquant avec l'attribut ObsoleteAttribute. L'application de l'attribut à un type ou membre indique que ce type ou membre sera supprimé dans une version ultérieure du .NET Framework sans endommager le code compilé qui utilise ce membre.
En plus d'indiquer qu'un type ou un membre de type est obsolète, ObsoleteAttribute définit comment le compilateur gère le code source qui inclut ce type ou membre. Le compilateur peut compiler le code mais émettre un message d'avertissement, ou il peut traiter l'utilisation du type ou du membre comme une erreur. Dans le premier cas, le code peut être compilé avec succès, mais un message d'avertissement indique que le type ou le membre est obsolète. Dans le deuxième cas, la compilation échoue.
Même si la compilation produit une erreur au lieu d'un message d'avertissement, ObsoleteAttribute n'affecte pas le comportement au moment de l'exécution. Autrement dit, les applications qui utilisent le type ou le membre et qui ont réussi leur compilation s'exécuteront toujours avec succès. Seule une tentative de recompilation d'une application qui utilise le type ou le membre échoue.
Comment gérer des types et membres obsolètes
Lorsque vous mettez à niveau et recompilez du code existant, l'utilisation d'un type ou membre obsolète qui génère un avertissement du compilateur dans votre application est parfaitement acceptable. Toutefois, vous devez examiner le message d'avertissement du compilateur pour déterminer si vous devez modifier votre code d'application. Si le message ne pointe pas vers une alternative appropriée, vous devez faire l'une ou l'autre des opérations suivantes :
Modifiez votre code en supprimant l'utilisation du type ou membre, si possible.
ou
Examinez la documentation de ce domaine technologique pour déterminer comment réagir face à la désapprobation.
Vous pouvez choisir de ne pas recompiler le code existant par rapport à une version ultérieure du .NET Framework. À la place, vous pouvez spécifier la version du .NET Framework sur laquelle votre code compilé existant est exécuté. Par exemple, supposez que vous possédiez une application nommée app1.exe qui a été compilée par rapport au .NET Framework 3.5, mais que vous souhaitiez que l'application s'exécute par rapport au .NET Framework 4. Ce processus implique les étapes suivantes :
Créez un fichier de configuration pour votre fichier exécutable principal et nommez-le appName.exe.config, où appName est le nom du fichier exécutable de l'application. Pour l'application nommée app1.exe de notre exemple, vous créeriez un fichier de configuration intitulé app1.exe.config.
Ajoutez le code suivant au fichier de configuration.
<configuration> <startup> <supportedRuntime version="v4.0" /> </startup> </configuration>
Le tableau suivant répertorie les valeurs de chaîne que vous pouvez assigner à l'attribut version pour cibler une version spécifique du .NET Framework.
Version du .NET Framework |
Chaîne version |
4 |
v4.0 |
3.5 |
v2.0.50727 |
2.0 |
v2.0.50727 |
1.1 |
v1.1.4322 |
1.0 |
v1.0.3705 |
Listes obsolètes pour le .NET Framework 4
Listes obsolètes pour les versions antérieures
.NET Framework 3.5 Obsolete List
.NET Framework 2.0 Obsolete List