Guardando le dimensioni dei libretti della collana Pocket della Apogeo sembrerebbe di trovarsi di fronte a dei mini riassunti degli argomenti trattati, magari persino con un linguaggio per principianti assoluti o quasi.
Spesso invece, perlomeno tra quelli che ho avuto modo di avere tra le mani, racchiudono parecchi concetti, affrontati pure con una discreta dose di approfondimento e completezza.
Il prezzo, economico a dir poco, contribuisce anch’esso alla loro competitività.
Questo libretto dedicato alla nuova versione di C#, ad esempio, si distingue per il fatto di coprire abbastanza bene la maggior parte degli argomenti base e intermedi del linguaggio, offrendo anche solide basi di programmazione ad oggetti.
L’autore, Enrico Amedeo, è già autore di altri 4 libretti Pocket per Apogeo: uno su Ajax, un altro sul linguaggio C, poi su UML e infine il più recente su ASP.NET 4.0
Non bisogna però farsi trarre in inganno dalle piccole dimensioni di questo libro: non è indirizzato ai principianti. Già nel primo lungo capitolo, in cui si spiega cosa sono il .NET Framework e il CRL, si capisce che l’autore parte dal presupposto che il lettore sia già abbastanza “infarinato” sull’argomento. Idealmente dovrebbe provenire da una precedente versione del linguaggio, ed utilizzare la gran parte delle pagine del libro come ripasso e riassunto, dedicandosi alle restanti per la comprensione delle nuove feature introdotte con la versione 4.0. Queste ultime – come gli operatori opzionali e i tipi di dato “dynamic” – sono sì affrontate, ma senza che l’autore ne sottolinei la loro recente introduzione (in altri casi invece ciò avviene).
Personalmente avrei preferito leggere “introdotte con la versione 4.0”, in modo da rendere chiaro al lettore la caratteristica di novità.
Si prosegue poi con un’approfondita (e spalmata su più capitoli) trattazione della programmazione ad oggetti, che copre, tra l’altro, argomenti anche piuttosto avanzati, come i costruttori copia, i metodi di estensione e gli operatori di conversione. Qua, in teoria, sorgerebbe la questione se sia il caso di tradurre questi termini (extension methods, operator overloading, ecc.) in italiano, dato che li si trova universalmente nella loro definizione originale. Questione di gusti: l’autore comunque propende per tradurli tutti in italiano.
Si prosegue poi con tutti gli altri argomenti fondamentali: strutture, eccezioni, cicli, delegati e generici, lasciando LINQ e addirittura i puntatori agli ultimi capitoli.
Già dall’esposizione degli argomenti si capisce, come ho detto prima, che il libro non è adatto ai principianti.
.
Giusto per fare un esempio: nella prima metà del libro ci sono degli esempi che fanno uso dei generici (List, ad esempio). Il capitolo sui Generici però è successivo a questi, e ciò creerebbe problemi ad un lettore che non li ha mai visti prima.
Non ho riscontrato tanti refusi, se non solo qualche inesattezza nella tabellina dei valori numerici dei tipi di dato primitivi. Purtroppo, sul sito Apogeo, non si fa menzione di pagine dedicate ad Errata o cose simili.
Non ci sono riassunti conclusivi alla fine dei capitoli, né domande a quiz per testare la comprensione raggiunta dal lettore. Anche le rarissime immagini di Visual Studio 2010 sono molto piccole. Tutto sembra ottimizzato per riuscire a stare in poco spazio e poche pagine.
Dal punto di vista estetico, ho apprezzato il tipo di font (piccolo e ben leggibile) utilizzato per il testo. Molto meno quello per gli esempi di codice. Essendo troppo largo e spaziato, ha creato un’indentazione non ottimale, sacrificata, a dire il vero, anche dalle piccole dimensioni delle pagine.
La rilegatura invece è veramente troppo rigida. È impossibile tenere aperto il libro sulla scrivania (a meno di inchiodarlo).
Il piccolo file del codice sorgente (30 kB), scaricabile da questa pagina
contiene solo due “solution” di Visual Studio 2010: “Csharp4pocket” e “HelloWorld”.
Quest’ultimo progetto in realtà serve a ben poco, dato che sono giusto 4 righe di codice per far stampare a video il classico “Hello World”.
Il primo invece racchiude ben 28 classi contenenti praticamente tutti gli esempi proposti nel libro.
Il codice è ben scritto e ben indentato, direi, anche se in ciò è facilitato dalla ridotta quantità di righe per classe.
Non so quali siano state le linee editoriali Apogeo seguite per la realizzazione di questo libro, ma giunto alla fine della sua lettura mi pare che questo autore sia stato quasi sprecato. Dotandolo di più tempo, più pagine, più larghezza, e tutto quanto serve per realizzare un libro degno di questo nome, il risultato sarebbe stato ben diverso, e si sarebbe ottenuto forse il miglior libro in italiano sull’argomento.
Così come è, può rappresentare solo un bigino, utile come ripasso da leggersi sui mezzi di trasporto o da tenere in borsa e consultabile al bisogno.
Chi può, e ne ha le capacità, dovrebbe essere reso in grado di esprimersi compiutamente.
Qua sotto i dettagli del libro.
Per chi volesse scrivere all’autore per segnalargli qualche rimostranza, meglio che sappia in anticipo che è un praticante di Aikido, come risulta dalla sua biografia.
Sommario
Introduzione
1 – Cap. 1: .NET Framework
27 – Cap. 2: Le basi di C#
33 – Cap. 3: Tipi primitivi e operatori
59 – Cap. 4: Strutture di controllo
69 – Cap. 5: Classi
105 – Cap. 6: Sottoclassi
115 – Cap. 7: Interfacce
121 – Cap. 8: Strutture
127 – Cap. 9: Conversioni di tipo
133 – Cap. 10: Delegati ed eventi
145 – Cap. 11: Eccezioni
157 – Cap. 12: Generici
171 – Cap. 13: LINQ
187 – Cap. 14: Puntatori
197 – Indice analitico