martedì 26 gennaio 2010

Best Master Page

Facendo mente locale all'esperienza passata e ad alcuni studi recenti, con relativa sperimentazione, sono giunto alla seguente conclusione: se dovessi riscrivere una custoim master page userei solo codice html e placeholder. Detta così non c'è nulla di inaspettato, ma spiegando quanto ho in mente forse qualche perplessità potrebbe nascere. Vi invito quindi fin da subito a commentare quanto andrò a dire, concedendomi l'attenuante di una temporanea insanità mentale e del fatto che non propongo ciò come LA SOLUZIONE, ma semplicemente come uun'idea che mi è venuta in mente, o perlomeno una presa di coscienza.

L'invenzione dell'acqua calda consiste in questo: invece di mettere i controlli direttamente nella master page, soprattutto quelli custom (si pensi per esempio al rendering accessibile dei menu tramite l'utilizzo delle componenti di ARF, che ho menzionato in post precedenti), andrei a posizionarli in control template personalizzazati, posizionati in pagina tramite feature, utilizzando appunto i delegate control. Un vantaggio che mi viene in mente, e qui potrebbero scatenarsi i detrattori, è la possibilità di scrivere del codice runat server all'interno dei controlli ascx, cosa che nelle master page non è possibile fare; questo mi permetterebbe volendo (anche se non è il sistema più elegante dal punto di vista dei puristi dello sviluppo) di non generare codice compilato in DLL. Ovvero ad eventuali modifiche non dovrei ricompilare il codice per riportarlo o nella bin della web application oppure in GAC.

A questo punto sono pronto alla pubblica lapidazione. Ben venga se ne esce qualcosa di costruttivo che ci consenta di scrivere delle buone master page, facilmete manutenibili.

Aggiungo qualche link di approfondimento:
User Control in Master Page (Page Footer)
Sovrascrivere i DelegateControl