Bienvenue à Blogs CodeS-SourceS Identification | Inscription | Aide

Actualités

  • Blog de Cyril DURAND, passionné de JavaScript, Ajax, ASP.net et tout ce qui touche au developpement Web Client-Side.

    View Cyril Durand's profile on LinkedIn

    hit counters

[Tips] Avoir une console de debug en Web grâce à WCF

Un développeur passe une grande partie de son temps à debugger, il est donc important qu'il ait de bons outils afin de ne pas perdre son temps. On est tous d'accord que lancer Visual Studio en mode debug est très lourd, surtout si l'on veut juste voir la valeur d'une variable, savoir si la fonction x s'éxécute bien avant la fonction y etc ... Il existe cependant une astuce pour éviter de recompiler le site web, cela consiste à attacher le site web à Visual Studio, cela nous fait déjà gagner de nombreuses secondes.

Mais peut-on être plus rapide ? Comment je peux faire pour seulement afficher une variable sans lancer l'artillerie lourde.

  • En ASP3, on utilisait des Response.Write un peu partout dans le code.
  • En ASP.net, on peut utiliser les Trace.Warn et Trace.Write

Avec ASP.net Ajax, on ne peut pas modifier la réponse HTML, par conséquent ni Response.Write ni Trace.Warn/Trace.Write fonctionne. J'ai longtemps utilisé des Console.Beep, mais au fil du temps, ma machine faisait des bips dans tous les sens et ce n'était pas toujours évident de savoir quel bips correspondait à quel signal.

J'ai récemment trouvé une solution plus fonctionnelle en utilisant un service WCF.

Untitled

Je me suis donc fait un minuscule service WCF qui ne contient que 2 méthodes :

[ServiceContract] public interface IDebugService { [OperationContract] void WriteLine(String value); [OperationContract] void WriteLineColor(String value, ConsoleColor color); }

Au niveau du host, j'ai configuré un basicHttpBinding afin de pouvoir faire un "Add Web Reference" plutôt qu'un "Add Service Reference" classique, ceci afin d'éviter de configurer le site pour utiliser .net 3.0.

Enfin dans le site web je peux écrire dans ma console en faisant :

#if DEBUG new DebugService().WriteLine(s) #endif

Je profite désormais d'une console de debug sans lancer Visual Studio en Debug ;-)

Posted: dimanche 9 décembre 2007 15:36 par cyril
Ce post vous a plu ? Ajoutez le dans vos favoris pour ne pas perdre de temps à le retrouver le jour où vous en aurez besoin :

Commentaires

Pas de commentaires

Les commentaires anonymes sont désactivés

Les 10 derniers blogs postés

- [WPF] Comment déclencher un évènement sur un contrôle ? par Thomas Lebrun le il y a quelques secondes

- [Expression Web] Astuce de la Semaine : Utilisation et Configuration des Extraits de Code par Chronos, Blog d'un Intégrateur .NET le il y a 15 heures et 20 minutes

- Faire de l'AJAX sans restrictions de domaine par Kévin Gosse le il y a 17 heures et 49 minutes

- [IronPython] : IronPython & Silverlight 2 - Part II par Kim's Blog le 07-22-2008, 14:50

- [WPF] Des requêtes NDepend pour analyser vos projets WPF par Thomas Lebrun le 07-21-2008, 09:27

- Liste de jeux pour Silverlight par Pierrick's Blog le 07-20-2008, 14:37

- T_PAAMAYIM_NEKUDOTAYIM par MadMatt le 07-19-2008, 16:16

- Et je mets le son.... par Pierrick's Blog le 07-19-2008, 12:09

- SharePoint : Comment interdire l’accès à un utilisateur pour tous les sites d’une Web Application par Blog Technique de Romelard Fabrice le 07-18-2008, 19:05

- VPC - Reset de la position de la console par Blog technique de Nicolas Boonaert le 07-18-2008, 16:29