Il blog di Gianni Giaccaglini

Blog su VBA e VSTO
Gianni Giaccaglini

My Links

News

NB - V. anche gli ARTICOLI (in fondo a questa barra)
Solo quesiti validi a: giannigiac@tin.it
Il mio nuovo libro


La mia nipotina ELISA

Foto con dedica a ME di
Bill Gates giovanissimo
nei mitici anni 80!

Categorie Post

Categorie Articoli

Archivio

Immagini

Blog Stats

Linq in Action, valido libro Manning Publications

Linq in Action, valido libro sul linguaggio dell’anno

TITOLO: Linq in action http://www.manning.com/marguerie/

AUTORI: FABRICE MARGUERIE, STEVE EICHERT e JIM WOOLEY

EDITORE: Manning Publications Co. www.manning.com

PREZZO: $ 49,90 (sconto 25% se accoppiato a “C# in depth”)

ORDINI PER email: orders@manning.com

 

Abstract for foreigner readers
(I lettori italiani, che proprio non comprendono l’inglese (!) possono saltare questo proemio)

Manning Publications presents LINQ in Action as “a fast-paced, comprehensive tutorial for professional developers who want to use LINQ, a new extension to the Visual Basic and C# programming languages designed to simplify data queries and database interaction”.

This book covers about the entire LINQ spectrum , from “Hello World” code samples and the new C# 3.0 and VB.NET 9.0 features to LINQ’s extensibility and a tour of all the LINQ providers, therefore it offers to developers everything they need to create applications that take advantage of the new, powerful features of Linq. This book explore the Linq technology and the additions have been made to the C# and VB.NET languages, as well as to the .NET class library.

Last but not least, this book has a very pleasant, artistic typographical face, as all Manning books do.

 

Come è noto, Linq non è semplicemente un potente e innovativo linguaggio dedicato alla gestione di tutte le possibili basi di dati – dalle collezioni di oggetti in memoria ai DBMS più diffusi sul mercato ai file del sempre più diffuso formato XML (di tipo gerarchico, non relazionale!) – una gestione unificata all’insegna del linguaggio di query SQL, rinnovato opportunamente nei diversi ambienti trattati (“provider”, in gergo Linq).

Linq ha anche se non soprattutto il pregio di essere una libreria perfettamente integrata nel framework di Visual Studio, che così viene rinnovato, potenziato e semplificato anche in tutti i suoi aspetti. Un caso esemplare che chi scrive cita volentieri è quello dell’ordinamento di un array di oggetti: nel vecchio mondo .NET per sfruttare il metodo Sort applicato a un tale vettore – esempio: Array(miacoll).Sort - occorreva entrare in un incubo, definendo come Icomparable la/le proprietà interessata/e della specifica classe (cosa pressoché impossibile con classi chiuse create da altri...). Con Linq basta invece una specifica clausola OrderBy per risolvere questo (e altri) problemi, su oggetti propri o altrui.

I potenziamenti apportati da Linq ne spiegano il successo e il rapido diffondersi di libri dedicati, tra cui i validi testi di autori italiani: Paolo Pielorsi e Marco Russo (Microsoft Press e Mondadori) e Alessandro Del Sole (FAG). Non è il caso però di fare paragoni né graduatorie, trattandosi sempre di testi validi, tuttavia possiamo dire che Linq in Action benché non copra temi particolari come Linq to Entities  o Linq e ASP.Net (trattati nell’ottimo manuale di Del Sole) ha le seguenti caratteristiche distintive circa i contenuti e l’esposizione. Alle quali ci piace aggiungere la piacevole, diremmo artistica, veste tipografica tipica della produzione Manning, come la copertina da libro, appunto, d’arte, l’impaginazione elegante e riposante e i font graziosi (quelli dei titoli li abbiamo qui stesso “rubati”).

  • Chiare ed esaurienti introduzioni al tema. Quella storica deriva dall’esperienza dei tre autori, MVP di lungo corso come beta tester di Linq e, a quanto essi vantano, come collaboratori di Microsoft. L’introduzione di anteprima offre una panoramica concettuale e funzionale, sulle novità e sulle prospettive di Linq. Di entrambe pertanto si può raccomandare la lettura anche da parte di CIO e/o IT manager non codificatori.
  • Figure e schemi illustrativi più abbondanti rispetto ai normali manuali di programmazione (quelli formati da soli listati risultano un po’ aridi, no?).
  • Diversi esempi originali. Qui ripetiamo che anche nei manuali rivali non mancano certo, ma Linq On Action qua e là si distingue per opportune comparazioni fra il vecchio e il nuovo mondo, ben evidenziando così i vantaggi in termini di semplicità e compattezza del codice che Linq consente. Inoltre questo è uno dei pochi se non l’unico testo che, per contro, fornisce spunti (non trionfalisti) sui possibili scotti di performance che l’uso di Linq in certi casi può presentare.

In sintesi, il libro guida il lettore alla comprensione e all’uso concreto del nuovo “bestiario” di Linq, comprendente gli operatori per query, le espressioni lambda, e gli expression trees. Qui va detto che (a nostro avviso) i primi sono di immediata comprensione, mentre gli altri compensano le semplificazioni che Linq introduce con nuovi ma delicati concetti e sottigliezze sintattiche. Sui quali il libro offre spunti e chiarimenti opportuni, sempre ben corredati da esempi, tra cui interessanti quelli sull’uso ibrido di fonti eterogenee, e che arrivano a coprire anche il data processing avanzato, come l’estensibilità offerta da Linq, grazie alla quale si possono interrogare altre fonti di dati rispetto a quelle supportate per default.

Contenuti in breve

PART 1 GETTING STARTED

1 ¦ Introducing LINQ

2 ¦ C# and VB.NET language enhancements

3 ¦ LINQ building blocks

PART 2 QUERYING OBJECTS IN MEMORY

4 ¦ Getting familiar with LINQ to Objects

5 ¦ Beyond basic in-memory queries

PART 3 QUERYING RELATIONAL DATA

6 ¦ Getting started with LINQ to SQL

7 ¦ Peeking under the covers of LINQ to SQL

8 ¦ Advanced LINQ to SQL features

PART 4 MANIPULATING XML

9  Introducing LINQ to XML

10 ¦ Query and transform XML with LINQ to XML

11 ¦ Common LINQ to XML scenarios

PART 5 LINQING IT ALL TOGETHER

12 ¦ Extending LINQ

13 ¦ LINQ in every layer

Due parti in dettaglio

Per brevità, riportiamo solo gli indici dettagliati di due parti. Senza ovviamente togliere nulla all’importanza del Linq nel trattamento database “classici” (ove Sql già esisteva), indichiamo quelli relativi alle parti forse più nuove, quella sulle query di oggetti in memoria (perché di fatto semplificano e arricchiscono l’ambiente OOPP di Visual Studio) e quella rivolta all’XML.

Qua e là abbiamo evidenziato in rosso e grassetto temi che di per sé si presentano avanzati, e che di fatto alla lettura si sono rivelati ben e chiaramente approfonditi.

PART 2 QUERYING OBJECTS IN MEMORY

4 Getting familiar with LINQ to Objects

4.1 Introducing our running example

Goals  Features The business entities

Database schema   Sample data

4.2 Using LINQ with in-memory collection

What can we query? Supported operations

4.3 Using LINQ with ASP.NET and Windows Forms

Data binding for web applications ¦ Data binding

for Windows Forms applications

4.4 Focus on major standard query operators

Where, the restriction operator  Using projection

Operators  Using Distinct Using conversion

operators  Using aggregate operators

4.5 Creating views on an object graph in memory

Sorting Nested queries Grouping

Using joins Partitioning

5 Beyond basic in-memory queries

5.1 Common scenarios

Querying nongeneric collections Grouping by multiple

criteria  Dynamic queries  LINQ to Text Files

5.2 Design patterns

The Functional Construction pattern  The ForEach

pattern

5.3 Performance considerations

Favor a streaming approach Be careful about immediate

execution  Will LINQ to Objects hurt the performance of my

code? Getting an idea about the overhead of LINQ to

Objects   Performance versus conciseness: A cruel

dilemma?

Come anticipato, l’importante paragrafo 5.3 affronta  le questioni sull’“appesantimento” (overhead) e sulla possibile riduzione delle prestazioni, problematiche che, più o meno inevitabilmente, ogni linguaggio che agisce “a livello più elevato” rispetto a quello sottostante (C# o VB normali, nella fattispecie) presenta. Il trattamento di questo cruel dilemma evita quantomeno le facilonerie e le aspettative eccessive.

PART 4 MANIPULATING XML

9 Introducing LINQ to XML

9.1 What is an XML API?

9.2 Why do we need another XML programming API?

9.3 LINQ to XML design principles

Key concept: functional construction Key concept: contextfree

XML creation   Key concept: simplified names

9.4 LINQ to XML class hierarchy

9.5 Working with XML using LINQ

Loading XML  Parsing XML  Creating

XML  Creating XML with Visual Basic XML literals

Creating XML document  Adding content to XM

Removing content from XML Updating XML

content 344  Working with attributes Saving

XML

10 Query and transform XML with LINQ to XML

10.1 LINQ to XML axis methods

Element  Attribute  Elements  Descendants

Ancestors  ElementsAfterSelf, NodesAfterSelf,

ElementsBeforeSelf, and NodesBeforeSelf ¦ Visual Basic XML

axis properties

10.2 Standard query operators

Projecting with Select  Filtering with Where

Ordering and grouping

10.3 Querying LINQ to XML objects with XPath

10.4 Transforming XML

LINQ to XML transformations Transforming LINQ to

XML objects with XSLT

Anche qui la nostra sottolineatura evidenzia gli aspetti più approfonditi del “braccio” XML di LINQ, in particolare il paragrafo 10.3, che getta un ponte fra il nuovo mondo LINQ e la precedente sintassi standard XPath. Da leggere e meditare, per evitare equivoci e confusioni.

?>

posted on venerdì 5 dicembre 2008 13.06