Cambiare la finestra l’output del Trace di ASP.NET AJAX

Fin dalla prima versione di ASP.NET esiste la possibilità di avere un tracciato del ciclo di vita della richiesta web, per poter monitorare e comprendere al meglio ciò che accade nella nostra applicazione web.
Personalmente lo ritengo uno strumento indispensabile quando si è nella situazione di dover lavorare su pagine web particolarmente complesse, in cui i fattori partecipanti alla costruzione dell’output possono rendere difficile l’individuazione di un particolare problema: proprio in questi contesti il Trace di ASP.NET può riverlarsi un ottimo alleato.

Ovviamente questo tipo di problematica si può riscontrare anche per tutte le pagine ricche di chiamate AJAX o Javascript e, per fortuna dello sviluppatore, anche in questo caso è disponibile una libreria client-side che permette di effettuare un Trace delle chiamate.
Di fatto, in una semplice pagina ASP.NET in cui sia presente uno ScriptManager è possibile invocare l’apposito metodo “Sys.Debug.trace” ed il contenuto del messaggio verrà mostrato nella finestra di output di VisualStudio.

Lo snippet seguente mostra l’utilizzo del “trace” su semplici funzioni ajax:
 

<script language="javascript" type="text/javascript">
    function testMessage(param) {
        Sys.Debug.trace(Date() + " - Button1 clicked");
    }
</script>

Lo screenshot seguente mostra la finestra di Output di Visual Studio che presenta il messaggio invocato dal trace via javascript:

8-11-2009 2-05-44 PM

Personalmente non ritengo molto comoda la visualizzazione dei Trace invocati tramite javascript nella finestra di output, in quanto vengono mischiati ad altre informazioni generate da Visual Studio stesso o dal compilatore.
Fortunatamente è possibile aggiungere, in alternativa, una textarea all’interno della pagina web, che mostrerà tutti i Trace client-side. Per poter sfruttare questa modalità è necessario aggiungere una textarea all’interno della pagina web in cui si desidera mostrare il Trace, ed il suo ID dovrà essere “TraceConsole”, come mostrato dallo snippet seguente:

<asp:TextBox Columns="100" Rows="5" runat="server" ID="TraceConsole" TextMode="MultiLine"></asp:TextBox>

Lo screenshot seguente mostra il trace nella textarea in azione.

8-11-2009 2-04-41 PM

Ulteriori informazioni riguardarti il Trace di applicazioni web sono disponibili qui.


Comments