Volevo condividere con voi tre utili suggerimenti per velocizzare in modo semplice e rapido il caricamento delle applicazioni ASP.NET in fase di sviluppo, intervenendo dall'esterno senza impattare sul codice già scritto. Il primo ovvio consiglio consiste nell'utilizzare quanta più RAM le nostre possibilità ci consentono ed disco fisso il più veloce possibile. Questi due elementi infatti sono quelli che maggiormente impattano sulle performance di un'applicazione ASP.NET nel momento del suo caricamento e primo avvio.
Come sappiamo ASP.NET si avvale di file temporanei in cui memorizza il codice compilato, questi file ovviamente vengono letti e scritti su disco fisso e quindi è lampante il vantaggio che si otterrebbe posizionando i file temporanei su un drive veloce. Possiamo indicare ad ASP.NET di posizionare i file temporanei su un disco veloce di nostra scelta o magari meglio ancora su un RAM Disk. Per fare questo è sufficiente specificare la seguente opzione nel web.config dell'applicazione ASP.NET:
<compilation tempDirectory="k:\temp\asptemp\"> ... </compilation>
Quando un'applicazione ASP.NET viene avviata per la prima volta, precompila le sue pagine e controlli e li posiziona nei file temporanei visti prima così che i caricamenti successivi siano enormemente più rapidi. Questo va benissimo in produzione ma mentre siamo in fase di sviluppo questa precompilazione avviene ad ogni sessione di debug rallentando enormemente il lavoro. Per evitare questo comportamento mentre siamo nella fase di sviluppo è sufficiente specificare la seguente opzione sempre nel file web.config:
<compilation batch="false"> ... </compilation>
In questo modo verranno ricompilati di volta in volta solo i file realmente modificati e non sempre e comunque tutto il progetto.
Un'altra ottima soluzione per velocizzare enormemente i tempi di compilazione in fase di sviluppo consiste nell'impostare la compilazione parallela dei progetti della soluzione richiamando opportunamente da Visual Studio 2008 il tool MSBuild. Per una descrizione dettagliata di questa possibilità possiamo consultare questo ottimo post sul blog di Scott Hanselman.