Bonjour a tous,
Je suis actuellement entrain de me poser une question existentielle sur une façon de procéder proprement pour répondre au problème suivant :
J'ai codé une dll utilitaire en C# me facilitant la tache pour tout un tas de chose.
Celle ci commence à dater et se trouve être utilisée dans la quasi totalité de mes projets depuis 5 ans.
J'y ais (presque) toujours apporté un soin particulier quand a la conception et à l'étude de l'API afin de ne pas me retrouver avec des problème incompatibilité entre versions de DLL et version des Soft
L'idée étant de pouvoir utiliser la dernier version de cette DLL quelle que soit cette ayant été utilisée pour la compilation initiale.
Mais voila, j'y ait presque fait toujours attention, et je me retrouve aujourd'hui avec le problème suivant :
J'ai une classe Abstraite A possédant une méthode abstraite M1 qui possède le prototype suivant :
Cette classe est ensuite hérité par des classes spécialisées.
Et malheur à moi, je ne sais pas pourquoi je n'avais pas prévu et pourtant c’était plus que prévisible que cette méthode doive retourner un Boolean, et ce même si je ne l'ai jamais utilisée jusqu’à aujourd'hui.
Code : Sélectionner tout - Visualiser dans une fenêtre à part abstract void M1(string p1);
Mais voila, aujourd'hui j'ais besoin de ce retour et mon problème est le suivant :
Trouver la solution la plus élégante pour que disposer de cette méthode avec retour sans que l'utilisation de cette DLL avec des projets plus ancien ne nécessite de recompilation. Sachant que si je modifie simplement le type de retour la méthode ne sera plus du tout utilisable avec toutes ces anciennes applications.
Pour l'instant la solution que j’entrevoie naïvement serait de laisser cette méthode dans l'état et d'en créer une nouvelle qui pourrait avoir la tête suivante :
Obligeant ainsi tous les appels avec un retour vers cette méthode.
Code : Sélectionner tout - Visualiser dans une fenêtre à part abstract Boolean M1_Avec_Retour(string p1);
ou de re-compiler tous les projets avec la nouvelle DLL plus propres, mais relativement long, sachant que je n'ai pas trop de temps a consacrer à ces anciens projets, mais n'ayant pas envie de laisser des horreur pareils a mes futurs collègues je me demandais donc si vous aviez en tête une solution
plus clean à mon problème.
Merci d'avance pour les idées qui pourraient germer de vos esprits moins insalubres que le mien.
Cordialement
Partager