TADA: ClientPages!

di Cristian Civera, in lab,

Salve ragazzi, mi dispiace: ci sono ancora :-D

Prima di tutto ringrazio tutti coloro che mi hanno fatto i complimenti per la mia nomina a MVP. Non me ne aspettavo così numerosi ;-) Non l'ho fatto prima perché ho un brutto rapporto con il blog, non che snobbi il riconoscimento.

Passiamo alle ClientPages. Cusa lèè? Questo è il link alla pagina ufficiale del lab.

In pratica è un'implementazione del client callback presente nella futura versione 2 di ASP.NET.
Anzi, ho fatto di più. Ho creato una struttura di classi ed ho esteso alcuni normali webControl. Quello che fa la versione ASP.NET 2 nella beta 1 è:
- richiamare la pagina;
- invocare il metodo RaiseCallbackEvent del controllo;
- restituire una stringa ad una funzione JavaScript;

Le ClientPages invece fanno:
- richiamare la pagina mandando a scelta tutto il form;
- invocare il metodo RaiseCallbackEvent del controllo;
- emettere del codice JavaScript richiesto da uno o più controlli della pagina;
- risalvare il viewState mandandolo indietro e sostituendolo nella form.

Il risultato è che noi lavoriamo normalmente con i controlli (intercettiamo eventi, binding, modifiche proprietà ecc) ma differenziando il comportamente. Se in fase di client callback si fermerà prima del rendering ed emetterà codice Js, altrimenti effettuerà il normale rendering della pagina.

Non è stato facile, le classi del Framework .NET hanno molti membri internal e private e qualche chiamata via reflection viene fatta. Ovviamente non tutte le proprietà sono dinamiche, non mi andava di riscrivere tutti i WebControls :-D oltre al fatto molti membri e classi non si possono sovrascrivere.

Insomma, se volete vederlo al lavoro, andate qua. Noterete come tutto viene fatto senza postback, che non c'è nessun codice nuovo da scrivere e che se scatenate un postback normale avrete il viewState e le proprietà corrette.

Secondo me è fichissimo, ma sono di parte ;-)

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