MesBlog

Thinking in sharp architectures
posts - 179, comments - 436, trackbacks - 150

Può interessare?

Oggi sono riuscito a far funzionare un "giro del fumo" che trovo personalmente abbastanza utile in certe occasioni: gestire una sorta di progress notification di un task molto lungo in una pagina asp.net. Mi chiedevo se può interessare una trattazione più approfondita.

il giro di cui sopra è qualcosa di questo tipo:

servizio di windows che istanzia un oggetto e lo fornisce a chi lo desidera in remoting e la cui classe implementa una interfaccia, quest'ultima è posta nell'assembly condiviso per il remoting (nota: io per qualche arcano motivo che non mi so spiegare _non_ sopporto i file di configurazione, è una cosa di pelle)

pagina asp.net da cui partono richieste asincrone ai metodi dell'oggeto remotato dal servizio, ovviamente i metodi sono quelli che dichiara l'interfaccia. fin qui nulla di nuovo e tutto nella norma.

quello che un paio di giorni fa mi ha solleticato l'ugola e che mi ha portato un passo più in là è stata la scoperta del remote-scripting in asp.net 2.0 (anche conosciuto come client-callbak), non volendo aspettare l'anno prossimo e avendo per le mani un progetto sul lavoro che ben si adattava all'esigenza mi sono imbarcato nello studio di fattibilità in asp.net 1.1. ciò che volevo ottenere non era solo la possibilità di avere il risultato della lunga transazione eseguita nel servizio di windows in maniera asincrona, ma era anche quello di averne la percentuale di progress senza refreshare la pagina. a tal proposito ho utilizzato del codice javascript trovato su codeproject.com, che poi ho scoperto essere tale e quale in mille altri siti che trattano sia di .net che di java e che da quello che ho visto _non_ fa uso dell'activex xmlhttp di micirosoft (tanto che gira anche su linux, il codice javascript intendo).

ebbene, con un l'unica accortezza di generare una sorta di contatore 1-->100 recuperabile tramite un metodo dell'interfaccia (insomma la lunga transazione dovrebbe poter essere suddivisibile in step in modo che ad ogni step si possa aggiornare tale contatore), ed utilizzando un timer lato client (un timer javascript), sono riuscito nell'intento di ottenere il progress nella pagina asp.net senza effettuare il refresh della stessa (bè, il classico "click" del refresh internet explorer lo fa, inoltre la barrettina blu di refresh in basso si fa notare, ma è poco fastidioso il tutto)

certo, c'è un po' da lavorare in javascript e il "giro" magari è un po' laborioso, ma a mio parere in certe circostanze può anche essere utilizzato.

PS: qui c'è appena stata una scossa di terremoto, in Brianza credo che sianno anni ed anni che non se ne sentiva una, leggera, ma c'è stata.

saluti

MesBlog powered by IMHO

Print | posted on giovedì 25 novembre 2004 02:04 |

Comments have been closed on this topic.

Powered by:
Powered By Subtext Powered By ASP.NET