Incontrando Luca Bolognese all'inizio della sessione, oggi PM di C# e un paio di anni fa PM di Object Spaces, e gli faccio i miei complimenti. Il lavoro che aveva già brillantemente presentato alla WPC 2003 non è affatto andato sprecato ed è stato magnificamente integrato in quello che sarà C# 3.0 e VB.NET 9.0.
È Hejlsberg in persona a mostrare la sintassi e la potenza di Linq, un potente query language integrato in C# 3.0 e vb.net 9.0 per risolvere il problema del data management.
Linq si divide in DLinq, il futuro di ado.net, e XLinq, il futuro del DOM XML. I punti fondamentali sono:
- sempre e comunque strong-typed
- avere un controllo rigoroso al compile time
- usare custom object che modellino i dati reali
- usare gli attributi per mappare le proprietà di questi oggetti sui campi del database
- usare il query language per filtrare, esplorare in modo gerarchico e raggruppare i dati, ma ottenendo per contro istanze di oggetti
La conseguenza è quella di abbandonare il modello classico costituito da connessione, query, parametri, ma soprattutto contenitori generici a base di DataSet.
Hmm, tutto questo mi ricorda qualcosa che ho detto durante il workshop data management . Il culmine arriva quando Hejlsberg ribadisce che in SQL i dati sono rettangolari, nel mondo reale no. Musica per le mie orecchie visto che continuo a ripeterlo all'infinito nei newsgroup e forum quando insisto che il dataset non può rappresentare in modo esaustivo un problema reale.
La cosa meravigliosa di Linq è che può essere usato su qualsiasi fonte dati che implementi IEnumerable.
Che dire... il mio personalissimo parere è che questo sia l'inizio della fine del linguaggio SQL. Viene spontaneo immaginare, per migliorare le performance, che in futuro verrà provvisto un meccanismo per mappare direttamente queste query con l'engine interno di SQL server. E gli altri db? Devono cominciare a correre ...