Titolo: Illustrated C# 2005
Autore: Daniel Solis
Editore: Apress
ISBN: 1590597230
Pagine: 592
Prezzo: 26,39 $ (su Amazon)
Data di uscita: 18/12/2006
È ormai una consuetudine: chi deve imparare un linguaggio di programmazione, qualunque sia, sa già che dovrà impiegare un sacco di tempo per leggere enormi tomi scritti fitti fitti, i quali, necessariamente, richiederanno un certo minimo lasso di tempo prima di consentire al lettore di scrivere del codice autosufficiente e significativo. Dan Solis, l’autore di questo libro, ha il merito di avere tracciato un’altra via. Come dice il titolo, si può insegnare un argomento, già ostico di suo, facendo largo uso di immagini e grafici, in modo da renderlo in un certo senso “visuale”, e come ben sappiamo le immagini restano scolpite nella memoria molto meglio delle parole.
Il primo capitolo tratta in maniera completa ma sintetica le caratteristiche e la struttura del .NET Framework, ed i vantaggi di esso rispetto al vecchio mondo COM. Con il secondo capitolo si inizia invece a trattare delle basi del C#, illustrando semplici programmi di tipo Console. Già da questi primi due capitoli si notano subito le caratteristiche di questo libro, che si ritroveranno in tutti i capitoli successivi, ovvero il grande uso di figure, immagini e grafici, i commenti direttamente nel codice (scritto su sfondo grigio) tramite l’uso di freccette e vari indicatori e capitoli non eccessivamente lunghi e ricchi di brevi paragrafi. L’effetto è comunque buono, aiuta veramente a fissare i concetti. Un’altra caratteristica pervasiva è anche l’ariosità (se così si può chiamare) delle pagine, ovvero tanto spazio bianco, che evita l’effetto opprimente di tanti altri testi sullo stesso argomento (in sostanza c’è quindi parecchio spazio per scrivere appunti). Una nota: per visualizzare a video i risultati degli esempi, aggiungere un’istruzione Console.ReadLine() al termine del metodo Main, dato che senza di essa, come è nel codice del libro, non si fa in tempo a vedere la finestra DOS.
Non ci sono esempi di codice molto lunghi, o che vengono completati man mano nel corso dei capitoli, ma sono presenti numerosissimi piccoli pezzi di codice (snippet) che applicano i concetti appena spiegati.
Si prosegue poi con un’approfondita disquisizione dei concetti object-oriented, e questo differenzia il libro da molti altri che mettono a fuoco prima altri argomenti, quali i cicli e le eccezioni, il tutto accompagnato, come sempre da molte immagini che coadiuvano la parte scritta. Soprattutto il quinto capitolo spiega visivamente come i metodi posizionano le variabili nelle aree di memoria “stack” e “heap”, e questo difficilmente si trova in altri testi (ed aiuta molto nell’assimilazione dei concetti). I capitoli 4,5,6 e 7 forniscono una trattazione incredibilmente approfondita sulla programmazione ad oggetti, e rappresentano uno dei plus di questo libro.
Si prosegue poi con gli altri consueti argomenti, dalla gestione degli errori, ai cicli, alle strutture ed alle enumerazioni. Con il 14esimo capitolo, dedicato agli array, direi che si conclude la parte “basic” del C#, e chi non necessita di argomenti avanzati, o delle novità della versione 2005 del linguaggio, si può anche fermare qui. Gli argomenti dei capitoli dal 15esimo al 23esimo (ultimo) riguardano argomenti di minor frequente utilizzo, come i delegati, le interfacce, le direttive di preprocessore, i generici e i metodi anonimi, questi ultimi due non presenti nella prima versione di C# del 2002. Data la precedente esperienza dell’autore come programmatore C/C++ (tra l’altro è un biologo, come studi universitari), spesso si trovano note a margine che illustrano le differenze di questi linguaggi col C#.
Non sono presenti esercizi da risolvere al termine dei capitoli, come anche riassunti o sommari (spesso inutili).
La cura nella revisione delle bozze, grazie anche alla presenza di uno specifico revisore tecnico, è eccellente, rendendo il libro immune da refusi ed errori, sia nello scritto che nel codice (e chi programma sa quanto questo sia importante). Purtroppo alcuni esempi, soprattutto quelli nel capitolo dedicato alle Struct, mancano di riportare l’output che il progetto di tipo Console stamperebbe a video, e quindi il lettore si deve immaginare di come possa apparire il risultato, a meno di provarli uno per uno con il proprio pc. L’inglese utilizzato dall’autore è molto comprensibile, e in virtù del fatto di non avere lunghi brani scritti, rende il libro ben usufruibile dai lettori italiani non fluentissimi con l’inglese.
L’autore non dedica però spazio a Visual Studio: non ci sono schermate di esso, né ne viene illustrato l’utilizzo, tranne che brevi cenni sparsi qua e là. Considerando che il 99% di chi legge questo libro utilizzerà questo ambiente di sviluppo, avrei apprezzato almeno un capitolo dedicato ad esso.
Il codice scaricabile dal sito è ben suddiviso in capitoli, e vengono fornite le solution di Visual Studio 2005 già pronte per essere eseguite. Consiglio di prendere spunto da questi esempi per arricchirli man mano che aumentano le conoscenze.
Alla pagina è presente la scheda completa del libro, con la possibilità di scaricare, in formato pdf, il sommario dettagliato, il codice utilizzato negli esempi (450 KB circa, che diventano 1,5 MB scompressi) e il 14esimo capitolo dedicato agli array (una ventina di pagine).
Pro
Il linguaggio C# insegnato come raramente capita di trovare; visivamente, con una trattazione fluente e ricca di immagini e grafici. Eccellente e vasta la parte dedicata alla programmazione ad oggetti. Ottima impaginazione e rilegatura. Un libro valido sia per chi si è avvicinato da pochissimo a questo linguaggio, sia a chi già lo conosce bene. Il fatto di ritrovare, in forma visiva, concetti già conosciuti, aiuta molto a scoprire nuove sfaccettature o particolarità, che magari si davano per scontate o, peggio, si ignoravano del tutto.
Apprezzabile anche il fatto di avere tanti capitoli di lunghezza non eccessiva, piuttosto che pochi ma lunghissimi; in questo modo trovo più facile gestire ed assimilare i contenuti (ogni capitolo richiede circa un’ora, esercizi compresi).
Contro
Questo libro non ha molti difetti. Solo una piccola annotazione: mi sarebbe piaciuto ritrovare anche un capitolo dedicato a Visual Studio 2005 e magari pure uno che gettasse le basi di ADO.NET, ma ciò avrebbe necessariamente allungato la trattazione, e forse è meglio così, come lo ha impostato l’autore.
Ricordo che tutti gli esempi sono di tipo Console, quindi chi necessita di imparare C# finalizzato alla creazione di interfacce Windows o pagine web, è meglio che si indirizzi a libri più specifici.
Voto complessivo: 9/10
Livello: Principiante/Intermedio
Summary
About the Author
About the Technical Reviewer
Acknowledgments
Introduction
1- Chapter 1 C# and the .NET Framework
15 - Chapter 2 Overview of C# Programming
29 - Chapter 3 Types, Storage, and Variables
43 - Chapter 4 Classes: The Basics
61 - Chapter 5 Methods
95 - Chapter 6 More About Classes
139 - Chapter 7 Classes and Inheritance
171 - Chapter 8 Expressions and Operators
209 - Chapter 9 Statements
239 - Chapter 10 Namespaces and Assemblies
265 - Chapter 11 Exceptions
285 - Chapter 12 Structs
295 - Chapter 13 Enumerations
307 - Chapter 14 Arrays
333 - Chapter 15 Delegates
353 - Chapter 16 Events
371 - Chapter 17 Interfaces
397 - Chapter 18 Conversions
427 - Chapter 19 Generics
455 - Chapter 20 Enumerators and Iterators
481 - Chapter 21 Attributes
503 - Chapter 22 Preprocessor Directives
515 - Chapter 23 Other Topics
543 – Index