Bonjour à tous.
Dans le cadre de mon boulot, j'ai créer une petite application qui permet de manipuler des petits jeux de données plus ou moins aléatoires.
Pour ca, l'application permet d'extraire les données depuis une base SQL server pour les mettre dans un DataTable. Ce DataTable est modifiable par l'interface (une grille DevExpress pour ceux qui connaissent) a la manière d'un Excel.
Seulement voila, il est fréquent que l'on souhaite modifier le DataTable plus profondément, ou que l'on souhaite toucher toutes les lignes, etc...
Par exemple, si on prend un jeu de données de 5000 lignes, on souhaites ajouter une colonne numérotant les lignes de 1 à 5000. Pour éviter de le faire a la main, j'ai mis une petite textbox dans lequel on tape le corps d'une fonction static recevant le DataTable en paramètre, ainsi, on peux écrire dedans une boucle for et renuméroter les lignes.
Cette fonction peut être écrite en C# ou en VB.Net, au choix, le code est ensuite compilé (CSharpCodeProvider, VBCodeProvider, CompilerParameters, CompilerResults) en mémoire, puis, par réflexion, la fonction résultante est exécutée.
Tout ca fonctionne parfaitement bien mais je voudrais aller plus loin.
Je voudrais pouvoir, au sein de mon application contenant mon TextBox avec le code, poser des points d'arrêts dans ce TextBox (l'aspect visuel du point d'arrêt n'est pas un problème) et permettre de débugger cette fonction.
Il n'est pas ici question de coder un débogueur, mais de permettre d'utiliser celui ou ceux présents sur la machine. En l'occurrence pour moi ca sera le débogueur de Visual Studio, mais si l'utilisateur final possède un autre débogueur compatible .Net, je ne suis pas contre l'utiliser.
Donc en gros, je voudrais transformer mon petit TextBox en mini IDE.
Le minimum est de pouvoir poser des points d'arrêts fonctionnels et pouvoir visualiser la valeur des variables. Les fonctions plus avancées comme les points d'arrêts conditionnels, la redéfinition du pointeur d'exécution, ou encore la fonction Edit&Continue, tout ca viendra plus tard si j'ai le temps, pour le moment je m'en moque totalement.

Seulement voilà, toutes mes recherches me montrent comment on utilise un débogueur au sein d'un IDE existant, genre comment poser en point d'arrêt en cliquant en face de la ligne ... Bref, je trouve rien qui m'aide, à par quelque chose sur l'interface ICorDebug mais je n'ai pas encore tout saisit à propos de celle-ci.

Avez-vous des pistes ? Comment savoir si un débogueur est présent sur la machine ? Comment l'appeler ? ...

Merci de votre aide