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
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-2015. Alcuni diritti riservati. Testata giornalistica iscritta col n. 569 presso il Tribunale di Milano in data 14/10/2002. Pagina generata in 0.797 secondi.