Bonjour,

Une question difficile à exprimer mais qui me pose problème sur mon projet actuel :

Je souhaite réaliser un système de version au sein de mon projet en fonction de dates. Je m'explique :

Admettons qu'une méthode, située n'importe où au sein du projet ne soit plus valable à un moment donné et remplacée par une autre. Cependant, cette méthode serait toujours valable le jour où on souhaiterait l'utiliser en se reportant dans le passé.

Un cas concret (et simplifié) :
On calcule le salaire d'une personne dans une entreprise à une certaine date. Un jour, on se rends compte qu'une loi à changé et qu'a partir d'une certaine date, il va falloir prendre en compte d'autres paramètres mais que le jour où on voudra recalculer le salaire de cette personne, les anciens paramètres devront toujours exister (par exemple si on se rends compte que ce salarié à été mal calculé, il faudra le recalculer mais avec les anciennes lois).

Dans mon cas, le projet existe déjà depuis un certain temps. Je trouve personnellement que ce projet a été mal réalisé mais il est tellement gros que je ne peux me permettre de tout recommencer.

Est-ce que quelqu'un connait une solution pour me permettre de créer par exemple, un contrôleur universel au sein du projet pour superviser les méthodes en fonction d'une date de mise en service de cette méthode et d'une date d'expiration ?

Biensur, il existerai un moyen simple, en écrivant en dur dans chaque méthode, un if tout bête en testant la date, mais le projet est tellement gros, que ça demanderai un travail énorme et un risque d'erreur omniprésent, chose que je ne peux me permettre. Donc, évitez cette proposition, merci !)

Je suis désolée que ma question soit si complexe mais le projet sur lequel je suis est déjà bien compliqué à la base et en plus, c'est du C# qui a été réalisé quasiment en intégralité en programmation structurée (sans concept objet)