La giornata inizia alle 8:30 con la KEYNOTE (sala quasi completamente piena) nella quale Ray Ozzie annuncia "Windows AZURE" inserendo un paio di demo e parecchie slide (comprensiva del nuovo logo del framework .net).
Non posso che dare ragione a Paolo: la keynote sembra dedicata al settore IT Manager... ma non si chiamava professional DEVELOPERS Conference?
Va bhe... da quel momento tutte le sessioni "* in the cloud" finalmente prendono un nome più umano e diventano "* in Azure" e questo lo si vede già nella sessione di Manuvir Das, che, da "A Lap around Cloud Services", viene rinominata in "Lap Around Windows Azure".
Per chi non ha voglia di pranzare all'americana:
c'è la possibilità di seguire la "launch session".
Io mi sono visto un pezzo della "Microsoft Visual C# IDE: Tips and Tricks", carina, ma le utility mostrate nella parte che ho seguito sono tutte già presenti in Resharper...
...me la riguarderò con calma confidando che contenga, nella parte che non ho visto, altri contenuti più interessanti.
Nel pomeriggio Anders Hejlsberg
presenta la sessione "The Future of C#", solo questa vale la pena di attraversare l'oceano!
Dopo un breve discorso sulla storia del C# (1.0 menaged, 2.0 generics e 3.0 query) finalmente ecco le novità del "4.0 Dynamic Programming":
- Dinamically Typed object: utilizzo del riferimento dynamic (risolto al run-time), dell'interfaccia IDynamicObject e della relativa classe DynamicObject.
- Optional and named parameters: (quando ho visto la slide, in mezzo alla sala mi è uscito un italianissimo "FINALMENTE"... ce l'aveva anche il Delphi 5 nel 1999!) è possibile definire nel parametro di una funzione se è opzionale e quale è il valore di default; in questo modo non si dovranno più avere overload inventati solo per simulare il default! Anche la sintassi è semplice:
public void Pippo1 (int value1 , bool value2 = true);
- Improved COM interoperability: per chi ha utilizzato componenti come word o excel è la manna che tutti aspettavamo: la classica chiamata
doc.SaveAs("test.doc" , ref Missing, ref Missing, ref Missing, ref Missing, ref Missing, ref Missing, ref Missing, ...);
diventa
doc.SaveAs("test.doc");
Bello vero?
Un'altra novità del C# 4.0 è fatto che, se fino a ieri il compilatore era una scatola alla quale si dava in pasto il codice e lui (qualora corretto) generava il compilato, da oggi è possibile utilizzando la classe CsharpEvaluator a run-time passare al framework una stringa che contiene il mio codice e questo lo esegue compilandolo "al volo".
Nella demo Anders Hejlsberg ha fatto l'esempio di una applicazione console la quale permetteva all'utente di imputare il codice C# da eseguire.
Qui: http://code.msdn.microsoft.com/csharpfuture altre info!
Dopo questa sessione un po' di pausa... ma tra non molto, al posto dell'ultima sessione odierna, AB ha prenotato uno slot di un’ora circa chiamato "Compatibility Lab", ovvero:
"Test your applications for compatibility on Windows 7 at PDC"
Io mi sono portato il setup dell'ultima applicazione che sto scrivendo... incrocio le dita!
Riccardo.