Sviluppare un'applicazione web sembra essere una cosa molto semplice e facile grazie ai tool di sviluppo oggi in commercio. Questo però non è sempre vero soprattutto se ci dimentichiamo di applicare le regole di base. A volte ci si spinge a soluzioni estreme, che esaltano le nostre competenze, dimenticando però che una buona infrastruttura di base costituisce le fondamenta di tutta la nostra soluzione.
Come un giocatore di basket professionista non può commettere infrazione di passi in modo continuativo per essere utile alla sua squadra; così un buon programmatore web non può dimenticarsi di applicare alcuni accorgimenti per rendere le proprie applicazioni più solide, scalabili e performanti .
Provate ad applicare questa check list, proposta da Jeff Prosise, alla vostra web application:
- La vostra applicazione usa LoadControl per caricare dinamicamente User Controls? Se è così, assicuratevi che questo funzioni in modo tale che LoadControl possa lavorare sia con che senza Output Cache.
- State usando Output Cache in kernel-mode e Session State nella stessa pagina? In caso affermativo rimuovete la direttiva OutputCache per evitare il cache della pagina o spegnete l'Output Cache in kernel-mode per l'intera applicazione.
- Chiamate il metodo FormsAuthentication.RedirectFromLoginPage nella vostra applicazione ASP.NET 1.x? Si? Allora impostate il secondo parametro del metodo a False o modificate la proprietà Expires del cookies di persistenza della autenticazione basata su forms con un più appropriato valore di timeout (rispetto al default).
- Una o più pagine della vostra applicazione genera un quantitativo di view state eccessivo? Se è così, disabilitate il view state per i singoli controlli o spostatelo sul server.
- La vostra applicazione usa SQL Server per mantenere la Session state? In caso affermativo, preoccupatevi di disabilitare la sessione nelle pagine che non ne fanno uso.
- Utilizzate nella vostra applicazione ASP.NET 2.0 il role manager? In caso affermativo abilitate il role caching per migliorare le performance.
- Utilizzate custom data types come proprietà del profilo di un utente? Se è così, eviterete problemi creando custom data type che siano compatibili con la serializzazione XML o marcando con l'attributo [Serializable] i tipi e usando il binary serializer per serializzare e deserializzare i tipi.
- La vostra applicazione esegue delle query verso un database che richiedono tempi di risposta lunghi? Se si, cosiderate se sia il caso di rendere asincronte le pagine che usano i dati di queste query.
- La vostra applicazione ASP.NET usa la client impersonation? In caso affermativo, rafforzate i permessi basati sulla ACL riducendo le eventuali incoerenze.
- Avete profilato le attività sul vostro database? E' consigliabile esaminare la comunicazione tra l'applicazione e il vostro database come primo passo per il performance-tuning.
Ne volete sapere di più? Non mancate di leggere l'articolo "Keep Sites Running Smoothly By Avoiding These 10 Common ASP.NET Pitfalls" di Jeff Prosise presente nel numero di luglio di MSDN Magazine.
powered by IMHO 1.3