Questo è un altro di quei libri in cui mi ritrovo a sorprendermi vedendo che su Amazon ci sono poche o nulle recensioni. Zero su Amazon UK e solo tre su Amazon USA; e tra l’altro quest’ultime due nemmeno tanto positive.
Non lo so come mai accade così tante volte; ok, questo testo non passerà alla storia come l’indiscussa bibbia sullo sviluppo in C#, però diamine, è una più che interessante lettura, non difficile da comprendere e ricca di consigli. Cos’altro potrei chiedere ad un libro del genere?
Secondo me saranno i capelli lunghi dell’autore che ispirano poca fiducia…… forse dovrei scrivergli di tagliarseli ;-)
A parte gli scherzi, probabilmente qualche lettore potrà trovare lo stile dell’autore un po’ prolisso. Qualche volta impiega diverse pagine per spiegare concetti che richiederebbero invece solo qualche paragrafo. A questo punto diventa una questione di gusti: meglio avere spiegato tutto per segno, oppure essere più rapidi e arrivare subito al punto?
Dopo aver letto pagine e pagine di puro testo, con pochissime immagini e rarissimo codice, mi verrebbe da scegliere la seconda opzione.
In effetti questo libro di quasi 700 pagine avrebbe potuto – secondo me – essere condensato in sole 400.
C’è però il vantaggio che è composto da ben 31 capitoli, e come si può intuire sono quasi tutti piuttosto brevi, tra le 10 e le 40 pagine al massimo. In tal modo può essere letto con una certa comodità, scegliendo l’argomento che interessa di volta in volta.
Innanzitutto chi è il lettore ideale di questo libro?
Premesso che non spiega C# come linguaggio, chi legge queste pagine deve conoscere già la versione 3.0 di C#, dato che si parla anche di LINQ e delle funzionalità introdotte da questa versione.
Deve muoversi con una certa scioltezza in Visual Studio 2008 (il libro è stato infatti scritto all’inizio dello scorso anno).
Data l’enorme mole di parole che compongono il testo, bisogna conoscere più che bene l’inglese.
Pure io, che ormai da anni leggo libri in lingua originale, spesso mi sono scontrato con parole mai viste.
Ma di che parla questo libro?
La sua originalità è legata al fatto che parla del mondo C# e .NET sotto varie sfaccettature, senza concentrarsi in particolare in nessun campo. È suddiviso in 6 parti, ognuna trattante una macro area di sviluppo e operatività.
Come sviluppare con vari obiettivi in mente: performance? Stabilità? Sicurezza? Ecc. ecc.
L’autore dispensa consigli su questi diversi approcci, riportando, con dovizia di particolari, la sua lunga esperienza nel campo.
Dopo questo vasto excursus, si passa poi all’ambiente di sviluppo prediletto, Visual Studio 2008. Si spiega come personalizzarlo per ottenerne i massimi benefici; come adattarlo a diverse esigenze, a scoprirne aspetti spesso poco conosciuti o poco utilizzati, e così via.
Il tutto con un numero non eccessivo di immagini, e qualche frammento di codice.
La parte del leone, come detto, la fa la parte scritta.
Si prosegue poi riaffrontando gli stessi argomenti iniziali – Sicurezza, Affidabilità, Performance – ma con un occhio diverso e un maggior livello di approfondimento.
Le ultime due parti sono un mix di argomenti diversi: da LINQ a XML, dal multithreading ai report.
C’è persino un breve (10 pagine) capitolo su F# e sull’utilità dei linguaggi funzionali in generale. Ovviamente, essendo un sunto, non consente di imparare a programmare in F#, ma perlomeno ci si fa un’idea.
Infine le ultime 40 pagine (un po’ troppe forse per questo tipo di argomento) spiegano dove e come ricercare informazioni in rete.
Lo stile e il layout del libro sono quelli classici Wrox della penultima generazione. Negli ultimi mesi, infatti, la casa editrice ha rinnovato parecchio l’impaginazione dei propri libri, rendendoli ancora meglio fruibili di quanto già non lo fossero nel passato. Questo libro però non ha seguito questa nuova strada, essendo stato pubblicato in tempi antecedenti.
La flessibilità della rilegatura è notevole, considerando le non piccole dimensioni, mentre la copertina – appena un po’ più spessa di una pagina – è piuttosto delicata e destinata a vita molto breve nel caso di uso intenso del libro.
Questa è la pagina del sito della Wrox dove reperire informazioni.
Da qui si possono scaricare, in formato Pdf, il sommario dettagliato, l’indice analitico e tutto il primo capitolo.
Come si può vedere dal sito, la pagina delle Errate è vuota (ci sono zero refusi?) ed anche il forum non contiene nessun post dei lettori.
Per quanto riguarda il codice sorgente, esso è suddiviso in cartelle numerate in base ai capitoli. Di questi ultimi, 1-4, 6, 8-9, 18, 21, 26, 28 e 29 sono capitoli senza codice, e quindi non hanno le rispettive cartelline nel file zippato.
Come si vedrà da queste pagine, il forum della Wrox dedicato al libro è desolatamente vuoto.
Giusto per dare credito al suo eclettismo, l’autore ha pubblicato recentemente un libro su IronPython: “Professional IronPython”.
Concludendo, direi che il grosso vantaggio di questo libro è la sua originalità.
Non è un manuale su C#, ma sviscera con un certo approfondimento alcune sue caratteristiche.
Non è un testo accademico sull’architettura delle soluzioni software, ma fornisce ampi consigli sulle migliori strategie per intraprendere progetti di tipo enterprise.
Non è una guida su Visual Studio, ma è ricco di trucchi e consigli per ottimizzarne l’uso durante la normale attività di sviluppo.
Copre quindi un settore formativo piuttosto sguarnito: è raro trovare in commercio un libro simile.
Lo scotto da pagare è l’estrema prolissità dell’autore, che spesso rende il percorso di apprendimento faticoso e stancante.
PRO
Per chi già smanetta con C# (versione 3.0) e il .NET Framework in generale, questo autore risulta un’ottima e vasta fonte informativa, soprattutto di concetti che negli altri libri vengono trattati piuttosto superficialmente.
Le discussioni sulle migliori strategie di sviluppo, e su come sfruttare le funzionalità misconosciute di Visual Studio, valgono da sole tutto il prezzo del libro.
CONTRO
L’eccessiva prolissità dell’autore appesantisce un testo che potrebbe risultare invece molto efficace dal punto di vista didattico. L’inglese utilizzato non è dei più semplici, e chi si aspetta molti esempi di codice potrà restare deluso. Alcune immagini sono troppo piccole per apprezzarne i dettagli significativi.
Voto complessivo: 7/10
Lettore: Principiante/Intermedio
Summary
Contents
Introduction xxix
Part I: Design Strategies
3 - Chapter 1: Defining the Language Environment
17 - Chapter 2: Understanding the Application Lifecycle
55 - Chapter 3: Defining a Design Strategy
79 - Chapter 4: Designing the User Interface
105 - Chapter 5: Designing with Speed in Mind
121 - Chapter 6: Designing with Reliability in Mind
131 - Chapter 7: Designing with Security in Mind
Part II: Coding Strategies
155 - Chapter 8: Customizing the IDE
177 - Chapter 9: Scripting
193 - Chapter 10: Viewing Data in the IDE
211 - Chapter 11: Working with Controls and Components
241 - Chapter 12: Coding the Application
265 - Chapter 13: Considering the Documentation
283 - Chapter 14: Implementing Error Handling
303 - Chapter 15: Testing, Debugging, and Quality Assurance
323 - Chapter 16: Deploying the Application
347 - Chapter 17: Supporting and Maintaining the Application
Part III: Speed, Reliability, and Security
361 - Chapter 18: Developing around the Performance Triangle
371 - Chapter 19: Considering Application Speed Implications
391 - Chapter 20: Considering Application Reliability Implications
403 - Chapter 21: Considering Application Security Implications
Part IV: Special Coding Methodologies
417 - Chapter 22: Serializing XML
441 - Chapter 23: Working with LINQ
477 - Chapter 24: Augmenting Applications Using F#
487 - Chapter 25: Creating Multithreaded Applications
507 - Chapter 26: Creating Reports and Other Output
519 - Chapter 27: Designing Low-Level Application Elements
Part V: Resources and Tools
543 - Chapter 28: Choosing Resources and Tools
553 - Chapter 29: Microsoft Resources and Tools
567 - Chapter 30: Third-Party Resources and Tools
585 - Obtaining Resources and Tools
587 - Glossary
609 - Index