Alkampfer's Place

Il blog di Gian Maria Ricci
posts - 659, comments - 871, trackbacks - 80

My Links

News

Gian Maria Ricci Mvp Logo CCSVI in Multiple Sclerosis

English Blog

Tag Cloud

Article Categories

Archives

Post Categories

Image Galleries

I miei siti

Siti utili

Effettuare caching dell'utente corrente in asp.net

Ieri stavo controllando una pagina scritta in asp.net, lo scopo era aggiungere la localizzazione di un dato. Visto che la pagina conteneva vari user control ed aveva troppa logica nel code behind, ho aperto il profiler di sql server per sniffare subito le stored che venivano chiamate, senza nemmeno dovere andare a cercare nel codice (e' si lo so....sono veramente lazy :D). Con mia sorpresa ho visto, oltre la stored cercata, anche 34 select nella tabella utenti di asp.net. Purtroppo l'autore della pagina aveva inserito una logica strana in una gridview gestendo l'evento RowDataBound e chiamando in esso la Membership.GetUser(), la quale naturalmente effettua una select nel database utenti.....una per ogni riga della gridview :( :( :(

Dato che ogni chiamata ad un database è un operazione di I/O, il mio consiglio è cachare sempre le chiamate alle membership api di ASP.NET. Una soluzione è mettere l'oggetto membership user nella sessione, a chi non piace la sessione consiglio invece l'utilizzo dell'httpcontext, in questo modo per ogni richiesta al massimo si fa una select al database una volta sola.

Alk.

Print | posted on mercoledì 16 maggio 2007 12:10 | Filed Under [ .NET ]

Comments have been closed on this topic.

Powered by:
Powered By Subtext Powered By ASP.NET