AutoEventWireup con ASP.NET 2

di Cristian Civera, in .NET 2.0,

Qualche tempo fa parlai dell'implementazione dell'AutoEventWiredUp di ASP.NET sottolineando come riducesse moltissimo le performance e dell'oppurtunità di tenerlo sempre disattivato.

In ASP.NET 2 l'AutoEventWiredUp è ancora di default attivo e soprattutto Visual Studio 2005 a differenza di Visual Studio .NET 2003 lo tiene ancora attivo. Mi sono quindi spaventato e ho verificato cosa fa:

Quando impostiamo a false la proprietà viene emesso del codice nella pagina che sovrascrive TemplateControl.SupportAutoEvents. In funzione di questa variabile ad ogni esecuzione aggancia quindi gli eventi. La differenza sta nel fatto che tenta ancora di creare il delegate alla funzione tramite Delegate.CreateDelegate, ma ora alla funzione è possibile chiedere se generare o meno un'eccezione. Già questo migliora di molto le performance, inoltre mantiene un dictionary di MethodInfo (oggetti reflection) in cache così da non ripetere più l'operazione.
Per non pesare ancora sulla ricerca degli eventi alla quale agganciarsi in presenza di un metodo con il nome corretto, viene poi in aiuto il pattern degli eventi che sfrutta un dictionary nomevento (stringa) / delegate dell'evento. Il lavoro quindi dell'uso dell'AutoEventWiredUp si limita a sfogliare il dictionary contenente i metodi della nostra classe e il dictionary degli eventi.

Insomma, ora va molto meglio anche se personalmente continuerò con l'override dei metodi che scatenano gli eventi e la disattivazione della funzione.

Commenti

Visualizza/aggiungi commenti

| Condividi su: Twitter, Facebook, LinkedIn

Per inserire un commento, devi avere un account.

Fai il login e torna a questa pagina, oppure registrati alla nostra community.

Nella stessa categoria
I più letti del mese