Seminario microsoft su ASP.net
Prima parte in aula magna: prima ci allettano per farci diventare microsoft student partner per un bel pezzetto di tempo; poi finalmente si inizia a parlare seriamente.
Introduzione su .net. Grazie a questo ambiente managed, windows è finalmente assolutamente sicuro dagli attacchi sui buffer, perché la memoria è interamente gestita dal framework e non si accede più alle chiamate di sistema.
Che strano... Se fosse vero nessuna applicazione precedente a .net dovrebbe funzionare. Invece continuano a funzionare. Chissà come fanno se non accedono alle chiamate...
Ok i più competenti hanno capito che era una menzogna. Gli altri no.
ASP.net a che serve? Serve a fare i siti. E chi tiene la conferenza? Uno che ha un blog in cui il validatore del w3c ha trovato solamente
qualche centinaio di errori.Poi abbiamo i geniali controlli di .net. Invece di mettere un tag span, mettiamo (ovviamente) una label, che verrà convertita in un normale span quando la pagina sarà richiesta da un client.
Tutto questo perché siccome i server sono sfaccendati, hanno bisogno di un po' di lavoro extra (sono sarcastico, penso che non ci sia nessun valido motivo per effettuare sostituzioni a run-time che danno sempre lo stesso risultato).
Inoltre, invece di usare i soliti css, si usano le skin!
Cosa sono? Una specie di sostituto del css.
Si crea un file e si dice di che colore devono essere gli elementi; solo che invece di essere applicati dal browser, è il server che deve inserire in ogni tag il parametro style, inserendo le informazioni sui colori innumerevoli volte invece di inserirle una volta per tutte nei css.
Quando ho fatto notare lo spreco, mi è stato risposto che se il css è grande si spreca più banda. E ciò è falso!
Il css viene scaricato la prima volta che si visualizza una pagina del sito e messo in cache dal browser. Poi viene applicato a tutte le pagine. La skin viene elaborata dal server, ed invita elemento per elemento; pagina per pagina.
Devo fare una dimostrazione formale o è chiaro che con i css si spreca meno banda?
Scopriamo che con .net, per fare una semplice query ad un database, bisogna seguire un wizard (lentissimo) che ci serve per selezionare il database, le tabelle che vogliamo utilizzare, e le colonne che vogliamo prelevare. Davvero ottimo per i dilettanti che non conoscono SQL. Un po' meno per quelli che lo conoscono.
Sono andato via in anticipo perché la panza voleva la compagnia di cibo.
Al pomeriggio esercitazione di laboratorio sugli argomenti trattati al mattino.
Prima che iniziassimo l'esercitazione, il dott. Maiorano mi ha ricordato innumerevoli volte di essere un traditore.

Ho potuto toccare con mano l'inefficienza del visual studio.
Per fare una tabella che mostra i dati provenienti da una query, ho perso più tempo di quello che avrei impiegato a scrivere a mano il codice php; infatti ho dovuto creare un oggetto che si occupa di fare la query (tramite wizard) e la procedura è veramente molto lenta.
Poi l'oggetto tabella deve connettersi all'oggetto che fa la query. Si configura sempre tramite wizard.
Le pagine master sono una idea carina (sempre se uno non sa programmare e non sa scriversi quelle 2 o 3 linee di codice che gli permettono di implementarle).
Con notevole difficoltà, e con l'aiuto del valido Domenico Trovato (msp: microsoft spy provider) abbiamo ultimato l'esercitazione.
Il codice risultante è molto sporco e poco manutenibile. Non sono riuscito a fare un pulsante che contenga sia testo che immagini (in html ci riesco, ma se metto il tag button in visual studio lui lo prende come un tag anonimo e non posso modificarne le proprietà).
La tabella che mostra i dati della query è riordinabile. Lo fa lato client come sarebbe logico aspettarsi? Chiaramente no, invia i dati al server e ricarica la pagina.
Poi ho posto alcune domande a Mauro Minella (non ricordo testualmente):
S: Come mai fa sta porcata di mettere style ad ogni tag invece di usare un css?
M: In effetti sarebbe meglio inserire un css invece di ripetere tutti questi style.
S: Come si fa?
M: Magari lo vediamo poi, via email...
S: Come mai le pagine generate non validano? (mostro la pagina del w3c validator, con i suoi simpatici errori)
M: Cosa è questo?
S: Il w3c validator, è un tool per verificare che i css, html, xhtml siano corretti.
M: Dovrebbe generare codice html 3 valido...
S: Il doctype specifica XHTML 1 transitional
M: Si dovrebbe vedere l'errore qual è esattamente...
S: Come mai questo campo hidden contiene tutta questa roba? (vedere pagina generata per maggiori dettagli)
M: È il viewstate, serve per mantenere le informazioni dei form.
S: Ok, ma come mai se seleziono alcune caselle e riordino la tabella, le caselle selezionate si deselezionano?
M: Beh questa è una funzione a parte, la dovresti implementare a mano.
Mi chiedo: allora a cosa serviva quel campo hidden immenso?
Poi quando ha mostrato come effettuare l'upload del sito, procedura che supporta solo FTP, e un protocollo proprietario di microsoft; ho commentato: "ma quanta supporta anche sftp, webdav..."
Mi è stato risposto che in quel caso mi arrangio facendo l'upload a mano con un programma esterno.
E infine... le cibarie finali sono arrivate in ritardo! (Vabbè magari questa non è colpa di microsoft)
L'impressione finale è che questa roba serva ai mangiatori di ciocorì (chi non coglie la citazione è un mangiatore di ciocorì) e che il costo in termini di risorse sia elevato in maniera ingiustificabile.
Poi se uno vende un sito, ha solo da sperare che il compratore non sappia dell'esistenza del w3c...
Ecco qui una splendida pagina generata da asp.net:
link.