Bonjour,
Je viens vers vous pour demander une aide (qui peut avoir juste l'apparence de pistes si vous voulez^^) pour m'aider à résoudre un petit souci.
La problématique est la suivante :
Dans notre projet actuel, se trouvent a peu près 1000 procédures stockées, ce projet est tellement vieux et tellement passé de main en main que je
compte trouver les procédures qui ne sont plus utilisées à la fois par oracle et par l'application en elle meme. (A noter que j'ai tous les code sources de l'application donc pas besoin d'aller chercher dans les dll)
Au niveau de la couche métier :
Pour chaque classe devant appeler des procédures, les procédures sont déclarées au niveau de la classe en tant que chaine constante privée.
Cette constante est ensuite utilisée au sein de la méthode appelante
Sauf que parfois la convention de nommage n'est pas respectée et on se retrouve avec :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 public class maclasse{ private const string maprocedure = "NomDeLaProcedure"; public void ListerTousLesEnregistrement(ref DataSet) { ... cmd.CommandText = maprocedure ; ... } }
Une idée d'application:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 public class maclasse{ public void ListerTousLesEnregistrement(ref DataSet) { ... cmd.CommandText = "NomDeLaProcedure"; ... } }
Etant donné le nombre de procédures à vérifier, j'ai moyennement envie de me farcir la vérification à la main. Donc j'avais pensé à un petit outil qui me retrouverait les endroits où sont utilisées ces procédures.
Le fonctionnement serait en gros le suivant :
->Récupération du nom de la procédure a trouver
->Interrogation de Oracle pour savoir si cette procedure est utilisée par un autre objet appartenant à Oracle
->Fouille de tous les fichiers .cs se trouvant dans un répertoire précisé a l'initialisation
Sauf que c'est à ce niveau là que je coince.
en effet il me sera facile de trouver la ligne
Puis à partir de cette ligne je pourrai peut-être trouver
Code : Sélectionner tout - Visualiser dans une fenêtre à part private const string maprocedure = "NomDeLaProcedure"
Mais une fois que je suis la, comment faire pour : Trouver la méthode qui contient la ligne ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part cmd.CommandText = maprocedure ;
(Trouver ensuite l'utilisation de cette méthode dans les fichiers cs ne sera pas trop difficile, c'est vraiment sur cet élément charnière que je bloque)
Mon idée très moche je trouve serait de positionner le curseur dans le fichier a ce niveau là puis de remonter jusqu'au premier mot clé trouvé de type "public,internal,protected..."
Mais je me demande s'il n'y a pas un moyen plus sioux...
Donc si vous avez des idées...
Je vous remercie par avance.
Partager