Bit a bit, si cresce sempre


Blog di un ingeformatico
Statistiche
  • Views Home Page: 297.839
  • Views Posts: 1.019.857
  • Views Gallerie: 345.598
  • n° Posts: 487
  • n° Commenti: 284
Ora e Data
Archivio Posts
Anno 2014

Anno 2013

Anno 2012

Anno 2011

Anno 2010

Anno 2009

Anno 2008

Anno 2007

Anno 2006

Anno 2005

Recensione libro C# 4.0 in a Nutshell (O'Reilly)

  

Dopo due anni e 4 mesi dalla precedente, ecco la quarta edizione di questa
Bibbia del C# che così tanto successo ha riscosso negli anni passati.
Lo scorso 8 settembre 2008 avevo recensito la precedente edizione dedicata alla versione 3.0 di C#.

Avrei tanta voglia però, con questa e per alcune delle prossime recensioni, di fare come fanno gli autori di questo ed altri libri quando avviene il passaggio tra una versione e l’altra (di C#, VB, ASP.NET e così via), ovvero fare un bel Copy&Paste della precedente recensione, dare qualche aggiustatina qua e là, ed averla bella e pronta con poco sforzo.
Mi sa che per i prossimi mesi, in cui mi dedicherò alle nuove edizioni di libri su C# e ASP.NET farò più o meno così.
Magari mi concentrerò sulle differenze, e segnalerò se ci sono stati miglioramenti o peggioramenti rispetto a prima. Questo testo della O’Reilly, dei due fratelli Albahari, è un vero “must” per chi sviluppa in C#. persino Scott Guthrie (il papà di ASP.NET) lo ha raccomandato senza riserve su Amazon.

Innanzitutto rispetto alla vecchia versione le pagine sono aumentate di quasi 200, passando da 838 a 1025. Mi chiedo che libri avremo quando saremo arrivati a C# 12.0.
Dando un’occhiata al sommario si nota che sono stati aggiunti dei capitoli riguardanti i “Code Contracts” (cap. 13), la programmazione dinamica e parallela (cap. 19 e 22) e sono stati riorganizzati diversamente gli ultimi capitoli riguardanti argomenti avanzati.
La prima metà del libro non è cambiata tantissimo: sono stati risolti dei bug nel testo e nel codice degli esempi (in sostanza le “errata” della vecchia versione), ma il “core” del discorso è quasi identico.
Chi aveva letto la versione 3.0 del libro si ritroverà quindi a leggere le stesse frasi e a vedere gli stessi esempi, pur con qualche lieve differenza.
Il tipo di esposizione non è cambiato: tanto codice, esempi brevi e mirati, testo lungo il necessario, niente domande a quiz alla fine dei capitoli, e nemmeno sommari introduttivi o riepilogativi. Tutto lo spazio e dedicato ad approfondire i meandri di C# e del CLR.
Non manca qualche utile accortezza di design, come il mettere in grassetto i pezzi di codice aggiunti o particolarmente significativi, e i fondamentali box a lato dove si approfondiscono alcuni concetti o si illustrano curiosità e dettagli.

Come avevo fatto due anni fa, una premessa importante è d’obbligo: questo non è un libro per principianti, ma non bisogna nemmeno essere dei super esperti per trarne beneficio. Diciamo che le spiegazioni degli autori sono molto sintetiche, e non sprecano 10 pagine per spiegare cosa è una variabile o un ciclo “foreach”.

Non comprendo però il motivo per cui ci sia stata una regressione nella realizzazione della rilegatura. Nella precedente edizione era efficacissima. Il bordo del libro non era incollato alle pagine, come in tutti i “normali” libri, ma era staccato ed agganciato alle due copertine con una tecnica molto comoda e nello stesso tempo robusta. Ciò consentiva di tenere aperto sulla scrivania senza problemi un libro di oltre 800 pagine. In questa edizione, invece, dove le pagine sono aumentate e quel tipo di rilegatura sarebbe stata invero utile, si è ritornati al passato, con la classica rilegatura incollata. Ora è praticamente impossibile tenerlo aperto, ed è una scomodità da tenere conto. La qualità della carta, molto buona, è rimasta invece invariata, come anche il font del testo e altre caratteristiche di impaginazione che lo rendono molto leggibile e piacevole da leggere.

Quello che invece mi infastidisce maggiormente, in questo pur ottimo testo, è il fatto di dover spendere ogni volta almeno un’oretta nella sistemazione in matita delle varie errate riscontrate dai lettori. Alcune sono poco significative (ad esempio per migliorare la chiarezza di alcune frasi), ma altre riguardano errori nel codice degli esempi, e questo ha un impatto ben maggiore. Capisco che in un tomo del genere, con così tanta carne al fuoco ed un numero spropositato di esempi di codice, sia più facile incorrere in qualche bug, ma preferirei aspettare magari qualche mese in più ma ottenere un libro che abbia ricevuto un’attenta ed approfondita correzione delle bozze. Bisogna dire però che questa edizione soffre di un numero inferiore di errori rispetto alla precedente (ed è già un passo avanti).

Questa è la pagina del sito O’Reilly dedicata al libro.
Da qui è possibile scaricare un Pdf di 18 pagine contenente il sommario dettagliato il primo breve capitolo.

Questa è la pagina delle Errata.

Purtroppo, come si vede, non sono affatto poche, anche se alcune piuttosto banali e trascurabili.
Ricordarsi di verificare sia le errata “confirmed” che quelle “unconfirmed”.
Per quanto riguarda il codice invece, forse perché molto frammentato, non esiste un file di download.
Gli autori però mettono a disposizione un tool ad hoc per provare le proprie query LINQ.
Si chiama LINQPad, e qua sotto è rappresentato uno screenshot.

Sotto riporto il sommario sia della versione 4.0 che della versione 3.0 del libro, così ci si può fare meglio un’idea del cambiamento nei contenuti.

Come voto finale metto un 9 pieno, maggiore dell’8 che avevo assegnato alla versione 3.0. Il libro, pur con qualche difetto, è un vero e proprio “Dizionario del C#”, e si trova tutto quanto può servire.

 

PRO

Eccellente compendio di tutto ciò che riguarda C# 4.0 nel suo complesso. Libro ideale da tenere come reference omnicomprensiva. Grande abbondanza di esempi mirati e ottimamente pensati.

 

CONTRO

La presenza di non pochi refusi costringe il lettore (e il libro stesso) ad una sorta di quarantena in modo da sistemarseli a mano. La rilegatura ha perso la tecnica geniale che aveva nella precedente edizione.

 

Voto complessivo: 9/10

 

Lettore: Intermedio / Avanzato

 

Table of contents

Chapter 1 : Introducing C# and the .NET Framework Object Orientation

Chapter 2 : C# Language Basics A First C# Program

Chapter 3 : Creating Types in C# Classes

Chapter 4 : Advanced C# Delegates

Chapter 5 : Framework Overview The CLR and Core Framework

Chapter 6 : Framework Fundamentals String and Text Handling

Chapter 7 : Collections Enumeration

Chapter 8 : LINQ Queries Getting Started

Chapter 9 : LINQ Operators Overview

Chapter 10 : LINQ to XML Architectural Overview

Chapter 11 : Other XML Technologies XmlReader

Chapter 12 : Disposal and Garbage Collection IDisposable, Dispose, and Close

Chapter 13 : Diagnostics and Code Contracts Conditional Compilation

Chapter 14 : Streams and I/O Stream Architecture

Chapter 15 : Networking Network Architecture

Chapter 16 : Serialization Concepts

Chapter 17 : Assemblies What’s in an Assembly?

Chapter 18 : Reflection and Metadata Reflecting and Activating Types

Chapter 19 : Dynamic Programming The Dynamic Language Runtime

Chapter 20 : Security Permissions

Chapter 21 : Threading Threading’s Uses and Misuses

Chapter 22 : Parallel Programming Why PFX?

Chapter 23 : Asynchronous Methods Why Asynchronous Methods Exist

Chapter 24 : Application Domains Application Domain Architecture

Chapter 25 : Native and COM Interoperability Calling into Native DLLs

Chapter 26 : Regular Expressions Regular Expression Basics

Appendix : C# Keywords

 

Questo invece è il sommario della precedente edizione, giusto per farsi un’idea dei cambiamenti. E più sotto i dettagli del libro, sia presi dal sito della O'Reilly che da Amazon.

 

Summary

Preface

1 - Cap. 1 – Introducing C# and the .NET Framework

8 - Cap. 2 – C# Language Basics

60 - Cap. 3 – Creating Types in C#

105 - Cap. 4 – Advanced C#

159 - Cap. 5 – Framework Overview

170 - Cap. 6 – Framework Fundamentals

229 - Cap. 7 - Collections

274 - Cap. 8 – LINQ Queries

320 - Cap. 9 – LINQ Operators

362 - Cap. 10 – LINQ to XML

395 - Cap. 11 – Other XML Technologies

422 - Cap. 12 – Disposal and Garbage Collection

432 - Cap. 13 – Streams and I/O

469 - Cap. 14 - Networking

498 - Cap. 15 - Serialization

535 - Cap. 16 - Assemblies

562 - Cap. 17 – Reflection and Metadata

612 - Cap. 18 - Security

639 - Cap. 19 – Threading

698 - Cap. 20 – Asynchronous Methods

709 - Cap. 21 – Application Domains

722 - Cap. 22 – Integrating with Native DLLs

738 - Cap. 23 – Diagnostic

756 - Cap. 24 – Regular Expressions

775 - A. C# Keywords

782 - B. Namespace-to-Assembly Reference

791 - Index

 

 

 

 

 

.
.
.
Categoria: Books
lunedì, 07 giu 2010 Ore. 11.00

Messaggi collegati


Copyright © 2002-2007 - Blogs 2.0
dotNetHell.it | Home Page Blogs
ASP.NET 2.0 Windows 2003