Debugging e tracing con ASP.NET

2 pagine in totale: <<Indietro 1 [2]

Il debug

Come nel caso del tracing, anche il debugging può essere attivato da web.config oppure dalla singola pagina.

L'utilità del debugging è palese, perchè permette di visualizzare un messaggio dettagliato sull'errore che si è generato, che il più delle volte consente di porvi rimedio in maniera abbastanza semplice.
Può capitare di utilizzare una variabile nulla, oppure senza averla instanziata, ed è in casi come questi che qualcosa di più di "si è verificato un errore", o peggio ancora di un funzionamento non regolare dell'applicazione, risulta di aiuto.
Ecco ad esempio cosa accade se utilizzando VB.NET, cercate di mandare in output il valore di una variabile che non è stata dichiarata:

Immagine

Per attivare il debug su una singola pagina, basta aggiungere la proprietà "Debug" alla direttiva Page, come nell'esempio:

<%@Page Language="VB" Debug="true"%>

Gestione avanzata degli errori

Questo primo approccio appena analizzato può andare bene per debuggare una singola pagina, su base occasionale o durante lo sviluppo.
In situazioni normali, tuttavia, è opportuno non abilitare questa funzionalità, altrimenti, come potete notare dalla figura precedente, si corre il rischio di mostrare frammenti di codice ai nostri utenti.

Così come per il tracing, è possibile abilitare il debugging, tramite web.config, solo sulla rete locale. Vediamo come fare, aggiungendo sempre queste informazioni all'interno della sezione system.web:

<compilation debug="true"/>
<customErrors mode="RemoteOnly" defaultRedirect="/error.aspx">
    <error statusCode="404" redirect="/404.aspx" />
</customErrors>

In realtà in questo esempio abbiamo fatto molto di più. Abbiamo sì attivato il debugging, ma attraverso la sezione CustomErrors, abbiamo impostato lo stesso solo su base locale, rimandando i nostri utenti in caso di errore ad una pagina /error.aspx che potrebbe contenere un avviso.
Da notare come sia possibile specificare, attraverso l'utilizzo di una sezione error, un handler differente per ogni codice di stato corrispondente ad un errore. Nel nostro esempio, abbiamo deciso di utilizzare per l'errore 404 (Page Not Found - Pagina non trovata) uno script ASP.NET differente. Ovviamente, nulla ci vieta di gestire l'errore attraverso uno script ASP o una normale pagina HTML.

Ecco cosa vedranno invece i nostri utenti, nel caso di un errore:

Immagine

Infine, per abilitare il debugging su una singola, pagina, è sufficiente utilizzare questa istruzione:

<%@Page Language="VB" Debug="true"%>

Conclusioni

Come abbiamo avuto modo di vedere, ASP.NET si distingue da ASP per la grande flessiblità ed una facilità di configurazione che non trova analogie nella controparte.
Come avrete sicuramente capito, uno degli svantaggi maggiori delle classic ASP rispetto ad altre tecnologie sta proprio negli strumenti di tracing e debugging, specie in caso di applicazioni abbastanza complesse.
ASP.NET raccoglie tutto quanto di buono le ASP hanno significato in questi anni, introducendo allo stesso tempo funzionalità di tracing e debugging, tanto per cominciare, degne davvero di un framework potente e ben congeniato, che deve tenere conto senza ombra di dubbio di tutta una serie di problematiche come queste, che hanno un'importanza basilare per lo sviluppatore, facilitandolo in una delle fasi più delicate di tutto il ciclo di produzione.

Su debbuing e tracing, ASP.NET batte ASP 2-0. Palla al centro.

2 pagine in totale: <<Indietro 1 [2]

Contenuti dell'articolo

Commenti
Dai un voto a questo articolo, ci aiuterà a migliorare il nostro sito (1 è il voto minimo, 5 il massimo).

Per procedere al rating dell'articolo devi essere autenticato.

Aggiungi un nuovo commento »»»
Per inserire un commento, devi registrarti alla nostra community.


TUTORIALS
TOP TEN ARTICOLI
NOTIFICHE

Iscriviti alla nostra newsletter nuoviarticoli per ricevere e-mail le notifiche!

Indirizzo e-mail:
PROVIDER ASP.NET 2.0

Seleziona il database per avere il web.config pronto per Membership, Roles e Profile API.



IN EVIDENZA
MISC