[Daily Issue] Controllare il rendering degli asp:Controls - Parte 1

Il cliente ha sempre ragione...

Anche quando vuole visualizzare 10.000 righe di dati senza paginazione... e poi si lamenta che il browser si incarta....

Questi ed altri problemi ci possono far girare le scatole.. perchè far sottostare l'applicativo a delle logiche palesemente "sbagliate" è molto poco agile... e molto poco intelligente ( IM(very)HO, se devi fare inquiry su 10.000 movimenti, usi i reporting services... se devi fare operatività su 10.000 movimenti.. metti un pulsante massivo, e fai vedere il dettaglio solo se _veramente_ ti serve, perchè non ci credo che tu nella maggior parte dei casi ti andrai a passare tutti i 10.000 movimenti per autorizzarne 9999 e escluderne uno.....)

Il problema di base è che non tutti i clienti possono essere agili... anzi ce ne saranno sempre molti (soprattutto i pregressi, soprattutto se i pregressi sono banche o assicurazioni o grosse case automobilistiche....) che oltre che non essere per niente Agili sono legati a doppia mandata a schemi mentali vecchi e piuttosto che accettare un cambiamento si fanno tagliare le gambe... o le tagliano a noi....

Però, noi (voi? :P) siamo sviluppatori coscienziosi, ed uno sviluppatore coscienzioso tenta anche l'impossibile, o meglio il "poco utile", nel mio caso mi sono accorto che la richiesta era senza senso, ma effettivamente l'output della DataGrid era troppo verbose, nel senso che andava a capo un pò troppo spesso e metteva un pò troppi tab. questo, su 10.000 movimenti, generava 10 mega (10.000 Kb circa, 10.000.000 bytes circa) di spazi .... risultando in una pagina di 12Mega....

Senza stare li a fare voli pindarici, in quando scardinare un progetto pregresso di queste dimensioni può risultare un suicidio, la soluzione piu semplice che ho trovato è stata ereditare la DataGrid in un mio controllo e intervenire nel rendering per levare i caratteri che non mi servono.... Risultato: da 12 mega a 2 mega.... circa, rimane il viewstate, ma quello è un'altro discorso :)

L'implementazione del tutto ... a domani! :) Il codice oggi funziona ma è un pò raffazzonato ed io devo correre da Leroy Merlin a prendere la finta pietra per la casa e un nuovo rullo per finire di vernicare :)

Print | posted on mercoledì 28 marzo 2007 17.54

Comments on this post

# re: [Daily Issue] Controllare il rendering degli asp:Controls - Parte 1

Requesting Gravatar...
"Anche quando vuole visualizzare 10.000 righe di dati senza paginazione... e poi si lamenta che il browser si incarta...."

E' incredibile come sembra quasi che TUTTI abbiamo lo stesso cliente!! :D
Left by Jack on mar 28, 2007 6.01

# re: [Daily Issue] Controllare il rendering degli asp:Controls - Parte 1

Requesting Gravatar...
> la soluzione piu semplice che ho trovato è stata ereditare la
> DataGrid in un mio controllo e intervenire nel rendering per
> levare i caratteri che non mi servono....

perche' non con un HttpModule?
Left by Adrian Florea on mar 28, 2007 6.50

# re: [Daily Issue] Controllare il rendering degli asp:Controls - Parte 1

Requesting Gravatar...
Beh col Module intervenivo trasversalmente su tutta l'applicazione e non era una cosa che volevo fare. ... anche perchè certi script JavaScript incorporati da alcuni controlli (di terze parti :P) se messi su una sola riga non funzionano (il punto e virgola questo sconosciuto) quindi piuttosto che crearmi problemi ho preferito agire solo sulle griglie che mi interessavano!
Left by Alessandro Ghizzardi on mar 28, 2007 7.14

# [Daily Issue] Controllare il rendering degli asp:Controls - Parte 2

Requesting Gravatar...
Left by Alessandro Ghizzardi - Il Web Lo on mar 30, 2007 10.07

# [Daily Issue] Controllare il rendering degli asp:Controls - Parte 2

Requesting Gravatar...
Left by Alessandro Ghizzardi - Il Web Lo on mar 30, 2007 11.13

# re: [Daily Issue] Controllare il rendering degli asp:Controls - Parte 1

Requesting Gravatar...
a livello di pagina (o di user control), si potrebbe usare Response.Filter (http://aspnetlibrary.com/articledetails.aspx?article=Use-Response.Filter-to-intercept-your-HTML) - non necessariamente nel tuo caso, dove la soluzione che hai adottato mi sembra buona
Left by Adrian Florea on mar 31, 2007 11.21

Your comment:

 (will show your gravatar)
 
Please add 1 and 5 and type the answer here: