Sviluppo PreCompiler 1.2

di Cristian Civera, in .NET,

Lo so che è un po' che non mi faccio sentire, ma ultimamente il tempo libero scarseggia. In questi giorni sto proseguendo con la versione 1.2 del PreCompiler che vi avevo promesso. L'interfaccia grafica c'è, ora ricompila anche gli UserControls.
Devo risolvere un ultimo problema dovuto all'uso del Global.asax. Incredibile ma sono arrivato ad un limite di ASP.NET :-D. Nel senso che non è previsto sostituire l'istanza HttpApplication. O meglio, ci son due vie:

  • Cambiare ad ogni richiesta la proprietà ApplicationInstance di HttpContext;
  • Richiamare il metodo SetCustomApplication via Reflection delle classe internal HttpApplicationFactory alla prima richiesta.

In entrambi i casi però, la prima richiesta non sarà influenzata dalla nostra classe HttpApplication (gli eventi partiranno alla successiva) e non sarà possibile usare l'AutoEventWireup (la possibilità di usare metodi di nome Application_Start ecc).
Questo perché, semple HttpApplicationFactory, alla prima richiesta, parserizza il file global.asax (che in una app precompilata non c'è), istanzia la classe, individua quei metodi per la gestione degli eventi e li tiene memorizzati per essere scatenati. Un bel problema, perché se sfrutto questa classe, dovrr riscrivere un po' di quella logica.
In alternativa, si potrebbe, non usare l'AutoEventWireup che non è un gran sacrificio, ed usare il code-behind per il global.asax. In questo modo si ignora la classe HttpApplication temporanea e ci limiteremo a fare il cast dell'istanza con il nostro tipo.

Preferirei fare una soluzione completa, che non ponga limiti, così da non doversi trovare a modificare il codice quando si è pronti per la produzione.

Appena sarà pronto comunque lo pubblico e prevedo per la 1.3 la possibilità di compilare in un unico assembly.

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