Alla grande il pomeriggio mi sono rifatti con due sessioni consecutive tenute da uno dei pilastri del C#, ossia
Anders Hejlsberg. Con semplicità estrema e con esempi alla mano ha dimostrato la potenza di questa nuova tecnologia chiamata
LINQ (Language Integrated Query).
Un progetto nato probabilmente dalle ceneri degli
Object Spaces tanto declamati nella PDC di due anni fa e poi più sentiti. In effetti la base è quella ma il tutto ha subito una radicale evoluzione e ha fatto un passo enorme in avanti anche perchè è proprio il Framework (quindi anche i compilatori) che è cambiato per supportare questa tecnologia.
LINQ è composto da due sotto-linguaggi chiamati rispettivamente
DLing (il futuro ADO.NET) e
XLing. Il primo per operare su basi dati come database ma anche strutture del Framework come array liste, ecc. Il secondo per lavorare su strutture dati
XML. Entrambi i linguaggi consentono di effettuare query in un linguaggio simil-SQL che però in realtà a questo punto fa parte del C# che viene esteso tramite appositi namespaces. Per utilizzare
LINQ è stato fatto gran uso dei Generics. Nel linguaggio sono stati implementati ulteriori operatori per rendere possibile il tutto in maniera flessibile ed efficace senza scrivere troppe linee di codice. A questo punto con questi strumenti sul tavolo credo che i DataSet così come
SQLXML, e
XQuery,
XPath, DOM e tutto il resto se ne andranno ben presto in pensione (non li ho mai sopportati). Addirittura utilizzando
XLing rispetto al
DOM si ottengono guadagni prestazionali notevoli.
Neanche i DBA saranno tanto contenti sapendo che il Framework genera automaticamente in base al codice del programmatore statements SQL da inviare a SQL Server :) però da quello che si è visto tutte le istruzioni SQL sono costruite in modo ottimale e ottimizzato.
Il tutto sarà naturalmente corredato dall'
Intellisense ci sarà un type checking a livello di compilazione e ridurremo notevolmente la probabilità di mandare in crash la nostra application.
Forse sono andato un po' di fretta, anche io devo andare a ristudiare tutti i concetti visti per la prima volta oggi, specialmente quelli che riguardano le nuove specifiche di
C# 3.0. La base di partenza per tutti è qui:
http://msdn.microsoft.com/netframework/future/linq/default.aspxDove trovate video, samples, documentazione, whitepapers, tutorials, downloads, overview e altro.