Programmazione.it v6.4
Ciao, per farti riconoscere devi fare il login. Non ti sei ancora iscritto? Che aspetti, registrati adesso!
Info Pubblicità Collabora Autori Sottoscrizioni Preferiti Bozze Scheda personale Privacy Archivio Libri Corsi per principianti Forum
LINQ: The Future of Data Access in C# 3.0
Recensito da Paolo De Nictolis il 23-03-2007 ore 09:51
Copertina ISBN: 0596528418
Autori: Joe Hummel
Editore: O'Reilly
Lingua: Inglese
Anno: 2006
Pagine: 60
Allegati: Nessuno
Intel Parallel Studio XE 2015
La O'Reilly, sempre all'avanguardia nel mondo dell'editoria, ha avuto l'idea - non nuova, ma sempre interessante - di una collana di libri assai snelli, di massimo 80 pagine, gli Short Cuts, da acquistare e scaricare in formato PDF; come al supermercato, vengono offerti con la formula 3x2 e, per acquisti superiori ai 30 dollari, viene offerta la consegna a domicilio in formato cartaceo, con stampa laser B/N su una sola facciata e consegna in una pratica cartellina da ufficio. L'unica, banale cosa che manca è, in effetti, proprio un adesivo identificativo sulla copertina della cartellina.

Questo minitesto che vado a presentarvi è dedicato a Language Integrated Query (LINQ), la tecnologia che sarà disponibile nella prossima versione di C# - ma ovviamente anche VB.NET e, perché no, IronPython, IronRuby, Phalanger e Chrome - per eliminare l'impedance mismatch fra linguaggio di programmazione e sorgenti dati ed offrire un accesso ad alto livello a tutte le fonti supportate dai DataSource .NET - ad oggi database relazionali, documenti XML ed oggetti - esistono tre declinazioni dell'API per le tre fonti dati citate - e dobbiamo aspettarci sicuramente futuri componenti, sia da Microsoft stessa che da terze parti; per adesso, sono già stati sviluppati Blinq, un tool che genera un'applicazione ASP.NET dallo schema di un database, e LINQ to Amazon, per le ricerche sull'omonimo store on line.

Il testo comincia con l'elencare i numerosi benefici che l'API apporterà - oltre all'estensibilità già ricordata, query costruibili dinamicamente, in stile SQL, all'interno del linguaggio stesso, con il check dei tipi a tempo di compilazione, il supporto di IntelliSense e la sicurezza di esecuzione di una stored procedure - e col ricordare che LINQ richiederà un add-on al .NET Framework 3.0, perfettamente retrocompatibile e noto agli addetti ai lavori come .NET 3.5. Gli esempi di codice sono disponibili sul sito del libro, e richiedono la CTP di LINQ, oramai inclusa in Orcas; vengono poi presentati alcuni esempi di query SQL-like - LINQ consente ogni operazione di tipo CRUD, comprese le join - su un esempio che ci accompagnerà per tutto il testo, una lista di dottori implementata grazie ai generics.

LINQ sfrutta l'inferenza dei tipi ed i tipi anonimi, due delle novità di C# 3.0; il testo prosegue presentandone l'architettura, che fondamentalmente è organizzata intorno ad un'astrazione di alto livello delle collection: lo sviluppatore usa LINQ su una collezione di oggetti, ed è compito del compilatore C# 3.0 trasformare l'interrogazione in Intermediate Language specifico per la sorgente dati. Quest'astrazione è alla base della estensibilità modulare di LINQ , ed ha un'importantissima conseguenza: è possibile usare Language Integrated Query con oggetti .NET 1.* e 2.0. Vengono poi presentate le novità di C# 3.0 alla base di LINQ, che affondano le loro radici nelle punte di diamante di C# 2.0 ovvero generics, delegates e metodi anonimi; il lettore potrà comodamente fare riferimento alla mia panoramica delle specifiche. Opportunamente, per ognuna delle novità viene fornito il codice IL generato dal compilatore, ottenuto col Reflector di Lutz Roeder.

Il piatto forte del minitesto sono sicuramente gli esempi d'uso di LINQ, seguiti dall'elenco stile Help in linea degli operatori, che copre da solo quasi metà testo e comprende una comoda pagina riassuntiva, che indica anche se per l'operatore viene usata la lazy evaluation. Viene mostrato come effettuare query CRUD su DataSet, database relazionali (sfruttando un potente tool a linea di comando, SqlMetal, che crea automaticamente una vista ad oggetti del database), documenti XML e file di testo - sfruttando l'API LINQ to XML, dalle funzionalità equivalenti ad XPath ed XQuery, ma assai più semplice da usare - e su una qualsiasi collection di oggetti che implementi l'interfaccia IEnumerable. Viene anche presentato un esempio reale su come produrre un file XML dai log testuali di IIS.

Un semplice esempio sull'estensibilità di LINQ, tramite l'override dell'operatore Distinct, chiude il minitesto. Per finire, segnalo The C# Programming Language for Java Developers che si può rivelare davvero utile.
proUn testo di buon approfondimento, teorico e pratico, su una tecnologia recente e di grande interesse.
controNessuno in particolare.
Precedente: Il futuro dello sviluppo in casa Red Hat
Successiva: Il Semantic Web è destinato a fallire?
Copyright Programmazione.it™ 1999-2014. Alcuni diritti riservati. Testata giornalistica iscritta col n. 569 presso il Tribunale di Milano in data 14/10/2002. Pagina generata in 0.22 secondi.