luglio 2003 Blog Posts
Tutti di corsa quelli dello staff di Ugi che partono da Barcelona. Destinazione Genova, che verrà raggiunta con la nave domani pomeriggio.I pensieri sulle sessioni ovviamente non finiscono qui.
Una sessione tormentata quella di Kate, che si è inciampata su alcuni semplici esempi con COM e progetti Console.La panoramica c'è conqunque stata e si sono prese in considerazione le varie strade.Runtime Callable Wrapper per l'interop da NET a COM, PInvoke e uso di progetti misti C++ managed/unmanaged. Qui le cose si fanno più complesse perchè mentre per gli exe non ci sono grossi problemi, nelle dll mischiare non conviene.Per i cari vecchi oggetti COM, la soluzione che mi è piaciuta di più (anche se non è quella preferita da Kate) è quella del refactoring. Consiste nel migrare il codice C++...
La sessione era tutta incentrata sui template (generics) per il mondo unmanaged con particolare riferimento all'adeguamento di VC++ 2003 agli standard ISO (98% raggiunta).Il relatore informa subito la platea che la sessione è stata erroneamente classificata come 3 (livello medio) ma che è in realtà un livello 4.Non ci sono mezze misure, l'argomento di partenza è la specializzazione dei template. Si prosegue poi con una particolarità, la partial specialization, che è stata uno dei tanti lati oscuri della conformità ISO del compilatore VC++6. Chi come il sottoscritto si è divertito a scrivere codice che fa uso di queste caratteristiche, si sarà accorto...
Uomini dell'IT, amministratori di sistema, sviluppatori, mostri dell'office automation e persino i dba ;-) vagano nelle sale del Teched per cercare un pc libero su cui chattare, leggere posta e bloggare. Nella sala ci sono anche un paio di negozietti per comprare libri, o gadget dei più svariati: caricabatterie del cellulare via usb (!), magliette e cappellini, jojo griffato Microsoft (chiedetelo ad Alessandro), e molto altro.
L'installazione di più framework side-by-side funziona, credetemi. Tra le dialog del notebook del relatore abbiamo contato almeno 10 versioni del framework installate contemporaneamente. La versione più bassa era la 1.1 e le altre una folla di diverse build della inedita 1.2.La sessione è iniziata con il deploy del framework, di cui conosciamo già tutto grazie all'articolo di Corrado (http://www.ugidotnet.org/articles/articles_read.aspx?ID=46).Poi siamo passati all'uso di applicazioni scaricate da Internet Explorer, e i primi tip si sono fatti vivi. Il primo è stato quello di trovare la versione del framework su IE, lato client, con la stringa UserAgent o dal server (asp.net) con Request.Browser.ClrVersion.Poi...
Molto interessante e ben struturata la sessione sui patterns per la serializzazione e il disaccoppiamento dei dati. Il dilemma da cui si è partiti è stato: disegnare prima lo schema o prima il codice (classi)? Ovviamente qualsiasi risposta trova sostenitori ed oppositori con uguali ragioni. Si passa quindi alle demo dove venogono mostrati i passi fondamentali da seguire nell'uno e nell'altro caso. Non c'è che dire, entrambe le strade offrono un certo livello di difficoltà che Microsoft conosce bene e che si spera verrà semplificato nelle prossime release del framework perchè diciamolo, non è così piacevole lavorare a manina su wsdl.Un tip che...
Non so in quanti usino UML sul serio. Con questo non voglio dire che non sia utile, ma sappiamo che i programmatori hanno il vizietto di scrivere (alcuni anche prima di pensare) e poi tirare un urlaccio allo specchio per non aver previsto un certo numero di features.Non credo neanche che siano in tanti che dicano: ah, dopo aver letto questo blog, sicuramente mi metto lì con un libro e mi studio per bene Visio e UML.La sessione ha mostrato le fase essenziali che la Visio for Enterprise Architects mette a disposizione: diagrammi use-cases, diagrammi sequence, generazione di codice ma...
Qui a Barcelona (si, si, si scrive con una 'l') ho incontrato un vecchio amico, l'organizzatore del Winsummit e ho proposto a lui ed Andrea un'idea per UgiDotNet.Cos'è il Winsummit? Dovete proprio guardare il sito http://www.winsummit.com. Tanto per gradire il Technical chair della manifestazione è Jeffrey Richter. Il tutto viene condito con il grande Jeff Prosise (mai letto prima su MSJ e poi su msdn magazine?) e si continua con il grande de-bugger's John Robbins. Hey, non manca neanche l'amico Dino Esposito, ma di Italiani c'è anche Francesco Balena, dedicato ai vb-netters.Gli altri nomi non li consocete? Guardate bene sui titoli dei libri,...
Quando un relatore comincia a scrivere il codice da un progetto vuoto, la sessione si fa dura.Non sono mancati i piccoli suspance quando il codice non compilava. L'argomento core era sulla personalizzazione dei soap header. Lo stesso relatore ha confessato la difficoltà del codice liquidando la parte più complessa ad alcune parti ad un set di classi disponibili gratuitamente qui: http://radio.weblogs.com/0108971/.Complesivamente posso dire che è stata una demo molto contorta a cui si è arrivati alla fine con un po' di fatica.... ma questo è materiale per Pierre... non perdetevi il suo blog!
Juval Lowy non ha mancato di sottolineare più volte di essere uno dei "Software Legend" (così sono stati chiamati i relatori VIP). Peccato che le leggende sono tali quando sono gli altri a ricordaselo ;-)Gli argomenti erano tutt'altro che noiosi e hanno ripercorso i passi della security.Siamo partiti dai classici concetti di role-based, declarative e imperative security per proseguire alle problematiche di security nei web services. Ovviamente si è parlato anche di WS-Security, impersonation e non è mancato un bel tip. Quando la LogonUser delle Win32 riceve un dominio errato, l'utente viene impersonato a guest... motivo in più per disabilitare...
Il program manager australiano Tony Goodhew ha presentato la seconda parte dei custom controls di asp.net. E voi direte: e la prima? Si teneva contemporaneamente ad altre sessioni ma guardate i commenti sui blog di Marco o Davide.La sessione è stata una lunga e complessa demo (il livello di difficoltà delle sessioni era il più alto) sulla costruzione di una datagrid semplificata. Il tutto da zero.Il controllo costruito nella sessione (con pezzi di codice prointi perchè è realmente un argomento fiume) ha mostrato come gestire il datasource, quindi le problematiche di rendering a runtime, per poi passare al rendering al...
La sessione era incentrata su c# ma i vb.netters avrebbero comunque gradito questa sessione sulle best practices nella modellazione object oriented.Indubbiamente non ci sono stati argomenti shock o novità sconvolgenti ma credo che sia sempre importante ripetere alla nausea che il design è fondamentale.Per questo motivo la parola interfaccia è stata quella più ripetuta nella sessione. La partita Interfaccia - Classi astratte è stata venta dalla prima.La raccomandazione è quella di definire soprattutto metodi nelle interfacce di base delle classi e proprietà per le interfaccedi base delle strutture.Un bel concetto ricordato è che quando si esegue un cast su un'interfaccia,...
Quando vedo queste sessioni comincio a fantasticare. La sessione ci ha aperto gli occhio su un argomento già presente nei tip di ugidotnet.Con il namespace CodeDom è possibile eseguire compilazioni programmatiche. Il sistema torna comodo per scrivere degli script di c# o vb.net.Si è quindi passati alle demo di generazione del sorgente partendo dallo schema a blocchi dell'applicazione. Certo Visual Studio o Visio non producono codice partendo da una flow chart (Viso lo crea negli schemi UML, ma è un'altra cosa) ma credo che se non esiste già, qualcuno creerà presto un bel tool visuale. Visto nella demo, con solo...
... sulle performance dei windows forms di vario genere. Non posso dilungarmi perchè qui il tempo è veramente d'oro. SI corre da un aula all'altra senza tregua.L'inizio è a base di Exceptions, da non usare se non per gli errori. Non mancano le raccomandazioni, come quelle di chiamare DIspose sulle classi che la implementano.Si prosegue poi con demo grafiche che mostrano l'importanza di diversi metodi:* uso del double buffering* uso di pre-multiplied bitmap* Uso di BeginUpdate/EndUpdate + SuspendLayout/ResumeLayout.Si prosegue con la demo sul caricamento dinamico degli assembly che eprmette di velocizzare notevolmente il tempo di load iniziale dell'applicazione. Il JIT...
Ancora loro, Russinovich e Solomon, i veri hacker del kernel di Windows, hanno parlato delle novità nel kernel di XP ma soprattutto di Windows 2003.Veramente troppe le novità per raccontarle tutte. Ne cito alcune: prefetch migliorato, supporto per hyperthreading e numa boxes, nuovo meccanismo di scheduling, di locking, supporto per allocazioni > 2GB.Alcune delle novità hanno numeri da paura: 7TeraBytes di User address space nel sottosistema a 64bit, 512 GB di RAM massima che Solomon dice di essere sufficiente persino per Office 2003 :-))Altre caratteristiche invitanti sono la FAT32 per io dvd-ram, i volumi ntfs in readonly e la shadow...
La sessione non poteva essere più estrema sualla security. Così estrema che il relatore ha protetto in lettura diverse slide e parte del codice demo.Alla fine della sessione però ho eseguito un reverse engineering sui concetti principali.* uso di demand e assert* uso di security imperativa e dichiarativa (vedi workshop ugidotnet)* Dichiarazione esplicita da parte delle dll su'effettiva pericolosità dei loro metodi.Non sono mancati riferimenti all'injection di codice. Questa volta non sul codice sql ma sui paraemteriu degli url nelle chiamate a web services.
Una brillante sessione quella di Kimberly Tripp, a cui ha assistito anche Murphy che ha oscutrato per qualche minuto il notebook con le demo.Delle ottime speigazioni sui possibili rimedi ai drop accidentali delle tabelle hanno dato inizio alla sessione. Subito una frecciata ai dba. Kimberly racconta che frequentemente le viene fatta la domanda: "come possio evitare ad un dba di fare il drop di unn a table?". Lei risponde scherzando: "sostituitelo!".Un buon rimedio al problema è oggetto della prima demo: l'uso dello stamtement "with schema bounding" che lega le dipendenze dell'oggetto table ad altri come ad esempio le view.Un altro...
Come prima vera sessione ho scelto l'hyperthreading dei nuovi processori. Il relatore era un tecncio di Intel che ha spiegato come funziona questa tecnologia.Il bello è che non è necessario cambiare nulla alle proprie applicazioni per usufruire della nuova meraviglia. Windows vede due processori ma in realtà ce n'è uno solo. Se avete la fortuna di avere un biprocessore hyperthreaded, il vostro Windows crederà di avere un quad-processor... wow!Questa tecnologia non fa ovviamente miracoli e non raddoppia la velocità dei vostri pc, però sfrutta i tempi morti della cpu per eseguire istruzioni di un altro thread. Il trucco sta nel...
Questa mattina si è svolto il keynote, la sessione introduttiva all'evento per tutti i partecipanti.La mattina è iniziata tardi. Ci siamo sgranchiti le dita su uno dei 400 pc in rete e poi via, tutti dentro l'aula magna della sessione introduttiva: il keynote.Il filo portante della presentazione è stato sui web services con il framework.net, argomenti di cui tutti noi sul forum di ugidotnet conosciamo l'importanza.Essendo una sessione plenaria, non poteva certo essere una visione approfondita sull'argomento. Per i dettagli lascio il racconto agli altri bloggers di ugidotnet.Impressionante la massa di system administrator, dba, professionisti dell'it e sviluppatori. Tutti insieme...