Comment utiliser l’attribut [Obsolete] pour déprécier certaines parties de son code

Quel est le meilleur moyen pour indiquer qu’il faut cesser d’utiliser une classe, une méthode ou une propriété énormément sollicitée de votre code? L’une des stratégies les plus appropriées est de passer par l’utilisation de l’attribue [Obsolete] qui est inclus à même le framework .NET.

L’utilisation de cet attribut permet d’indiquer aux consommateurs de votre librairie que certaines de vos fonctions sont en cours de dépréciation au profit d’un autre ensemble de fonctionnalités. Ce qui rend intéressant cet approche, c’est que le compilateur C# ainsi que Visual Studio sont aussi liés à cet attribut. Lorsque l’attribut est utilisé, des avertissements de compilation seront affichés aux différents endroits où les éléments de code dépréciés seront utilisés.

C’est très gentil comme approche, lorsqu’on y pense.

Mise en contexte

L’attribut [Obsolete] s’utilise de plusieurs façons. Considérons la classe UserDirectory qui suit.

Pour bonifier l’exemple, disons que cette classe est consommée dans un namespace différent dans une classe UserSearchEngine.

Scénario #1 – [Obsolete]

Supposons que nous ajoutions [Obsolete] sur la classe UserDirectory. Dorénavant, deux effets se produiraient visuellement au nivea de Visual Studio.

warning-obsolete warning-obsolete-compile

Un indicateur visuel ainsi qu’un avertissement de compilation est maintenant affiché dans l’IDE. Il n’est vraiment pas possible de passer à côté.

Scénario #2 – [Obsolete(<string>)]

Il est possible d’ajouter un paramètre de type string à l’attribut Obsolete afin d’ajouter un message qui sera ajouté à l’avertissement de compilation. Il suffit d’écrire l’attribut ainsi: [Obsolete(« Utilisez UserRepository en remplacement »)].

Cela aura effet de produire un avertissement de compilation qui prend la forme suivante:

warning-obsolete-compile-message

Scénario #3 – [Obsolete(<string>, <bool>)]

Cette signature de l’attribue Obsolete est, à mon avis, l’équivalent d’une bombe nucléaire. Le paramètre bool qui est ajouté permet d’indiquer au compilateur de générer une erreur de compilation au lieu d’un avertissement.

error-obsolete-compile-message

Lors qu’activé, ce paramètre fait en sorte que votre projet ne compilera pas tant et aussi longtemps que vous n’aurez pas réglé la ou les fonctionnalités dépréciées. Au moins, la signature fait en sorte que vous devez obligatoirement indiquer un message lorsque vous activez la génération d’erreurs avec [Obsolete]. Cela fait un peu moins rude pour vos consommateurs!

Advertisements

Laisser un commentaire

Entrer les renseignements ci-dessous ou cliquer sur une icône pour ouvrir une session :

Logo WordPress.com

Vous commentez à l’aide de votre compte WordPress.com. Déconnexion / Changer )

Image Twitter

Vous commentez à l’aide de votre compte Twitter. Déconnexion / Changer )

Photo Facebook

Vous commentez à l’aide de votre compte Facebook. Déconnexion / Changer )

Photo Google+

Vous commentez à l’aide de votre compte Google+. Déconnexion / Changer )

Connexion à %s

%d blogueurs aiment ce contenu :