Bit a bit, si cresce sempre


Blog di un ingeformatico
Statistiche
  • Views Home Page: 515.191
  • Views Posts: 1.632.004
  • Views Gallerie: 829.931
  • n° Posts: 520
  • n° Commenti: 301
Ora e Data
Archivio Posts
Anno 2017

Anno 2016

Anno 2015

Anno 2014

Anno 2013

Anno 2012

Anno 2011

Anno 2010

Anno 2009

Anno 2008

Anno 2007

Anno 2006

Anno 2005

Recensione libro Programmare con ASP.NET 3.5 Guida pratica allo sviluppo (FAG)

Alessandro Ghizzardi è un MVP Microsoft nella categoria ASP/ASP.NET piuttosto famoso nelle Community italiane di sviluppo web in ambito ASP.NET (appunto), ed è uno dei fondatori di UgiDotNet, la più grande ed importante di queste community.
Mantiene anche un blog (e non poteva essere altrimenti), a questo link.

Lo scorso anno ha deciso di pubblicare questo relativamente piccolo libro che tratta le migliori tecniche di sviluppo in ASP.NET 3.5. Per un autore italiano scrivere un libro su ASP.NET deve essere senz’altro una bella sfida. Il rischio di è di “confondersi” con una marea di testi sul medesimo argomento. Wrox, Apress, Microsoft Press, Manning, O’Reilly e chi più ne ha più ne metta, hanno a catalogo non uno, ma una famiglia di testi su ASP.NET: per principianti, per intermedi, per avanzati, per….tutti i gusti insomma.
Ok si potrebbe controbattere, in lingua italiana non c’è poi tutta questa scelta, ma in inglese c’è sono una pletora, e per chi lavora in questo settore la lingua non è un problema (ho qualche collega che farebbe carte false pur di non dover leggere manuali in inglese, ma si tratta di casi patologici isolati).
L’autore di questo libro ha seguito allora un approccio diverso. Il canovaccio rimane il medesimo: breve storia dello sviluppo web e rapido ripasso di C#, struttura delle pagine .aspx, gestione dello stato, principali controlli server, interfacciamento coi database, ecc. ecc. Insomma la stessa scaletta già vista in decine di altri libri, alcuni recensiti sempre qua. Ma con qualcosa in più: trucchetti, consigli personalizzati su come risolvere problemi che si potrebbero presentare, idee spesso originali e inedite. Questo è il vero plus del libro.
Che il lettore si armi di matita (o evidenziatore), sorvoli sul “si usa così e cosà”, e si abbeveri all’esperienza dell’autore. Solo in questo modo si sfruttano a fondo i 30 euro del libro.

Ma veniamo al contenuto. Si parte con una doverosa, e per fortuna breve, storia sullo sviluppo web in ambito Microsoft, e nel secondo capitolo si effettua un sintetico, ma ben fatto, ripasso su C# (il linguaggio utilizzato negli esempi) e della programmazione OOP.
Essendo uscito nello scorso anno, il libro fa uso di Visual Studio 2008. Le immagini dell’ambiente di sviluppo sono numerose, e spesso il codice non è scritto nel testo ma mostrato come immagine tratta dal designer dell’ambiente di sviluppo.
Si prosegue poi con un’analisi dettagliata del web.config. tenere presente che quasi tutto il discorso dell’autore si applica solo per chi sta utilizzando Visual Studio 2008 (comunque ancora la maggior parte degli sviluppatori), dato che questo file di configurazione è cambiato parecchio in Visual Studio 2010.
Come si vedrà, spesso il codice degli esempi non viene scritto come testo, ma mostrato come immagine degli screenshot di Visual Studio. Qualche volta, purtroppo, sono troppo piccoli, e si fa fatica a leggerne il codice contenuto. Viene creata persino una configuration custom, approccio non certo da beginner, ma molto interessante per chi ha già una certa esperienza.
Stranamente non si fa cenno a che tipo di applicazione/sito web si andrà man mano a costruire. Solo verso le pagine 90-100, vedendo che si parla di carrello della spesa, si intuisce su cosa si va a parare. Sarebbe stato meglio magari, dedicare un paio di righe per spiegare l’obiettivo finale. Spendere decine di pagine con discorsi architetturali o di design, come fanno altri libri, non va bene, ma nemmeno lasciare il lettore nell’incertezza mi pare l’approccio migliore da seguire.
Abbastanza singolare, ma utilissimi per chi ha diversi anni di esperienza, sono i numerosi confronti con quanto accadeva in ASP 3.0. Certo, chi ha iniziato da poco farà notevole fatica a capire di cosa si sta parlando, ma per tutti gli altri rappresentano concetti molto utili ed interessanti.

A differenza di altri libri su ASP.NET inoltre, non si procede subito ad inondare il lettore con pagine e pagine sull’uso dei vari controlli web, ma ci si concentra prima sullo spiegare cosa è lo stato di una richiesta http e come lo si gestisce. Scommetto che Ghizzardi ha letto qualche libro di Dino Esposito, dato che l’approccio è molto simile. Solo nel capitolo 7 si inizia a mostrare il funzionamento e l’utilità di alcuni controlli, mostrando anche tecniche abbastanza inusuali scoperte dall’autore negli anni della sua attività.
Il fatto che, come dicevo, questo libro non è propriamente adatto ai principianti, lo si capisce nei capitoli successivi, in cui si iniziano a trattare dati XML con XPath e soprattutto a creare degli HTTPModule custom.

Si prosegue poi con i 3 indispensabili capitoli su ADO.NET e alcuni dei controlli databound (Repeater e GridView). L’argomento, ovviamente, è molto vasto, e sarebbe impensabile racchiudere tutti gli argomenti in una cinquantina di pagine, tra l’altro molto ricche di immagini. L’autore fornisce comunque delle buone basi su cui il lettore può partire per ampliare le proprie conoscenze. Il tutto sempre condito con alcuni preziosissimi consigli e raccomandazioni (ed intanto il piccolo sito di esempio si espande man mano).
Su argomenti variegati i restanti capitoli.
Autenticazione&Autorizzazione, Globalizzazione, Deploy e Web Service. Si parla anche di argomenti attinenti alle comunicazioni in rete, ed è piuttosto insolito trovare un tale argomento in un libro così relativamente piccolo.
Il discorso, anche in questi capitoli finali, è sempre orientato non solo nell’elargire le conoscenze necessarie, ma soprattutto nel far capire come evitare e risolvere eventuali problemi che potrebbero interessare lo sviluppatore alle prese con le varie tecnologie. 
L’ultimo capitolo, il 21esimo, è un’infarinatura su Ajax, in cui si mostra come usare lo ScriptManager, l’UpdatePanel, l’UpdateProgress e il Timer, nulla più, ma è sufficiente per iniziare.

Non ci sono domande a quiz riepilogative al termine dei capitoli, e nemmeno esercizi da completare. D’altronde per riuscire a contenere il tutto sotto le 400 pagine non deve essere stato facile, e mi immagino che l’autore abbia dovuto ricorrere ad un maggior numero di tagli rispetto alle aggiunte.

Sul sito della FAG, i dettagli del libro sono reperibili a questo link.

dove è possibile scaricare il sommario dettagliato in formato Pdf. Purtroppo è il sole materiale disponibile.
Per il codice degli esempi, nel momento in cui scrivo, si rimanda al booksite e il file è grande poco più di 1 MB.
Una volta scompresso crea la solution organizzata in maniera esemplare, secondo quanto specificato man mano nei capitoli. Compila al primo colpo (e questo non sempre succede nei codici scaricati dai vari libri). È presente anche il file .sql per popolare il piccolo database “Unboxing4Course”, che deve essere prima creato all’interno del proprio SQL Server.
Ho provato anche a fare il porting della solution in Visual Studio 2010 e non si è verificato nessun problema.

A parte qualche piccolo e banale refuso, le note meno positive sono imputabili alla non ottimale impaginazione del testo. Il font utilizzato, un simil-arial, non è molto leggibile (come potrebbe esserlo un Times Nwe Roman). Le immagini sono spesso o troppo piccole o troppo poco definite. Il codice non sempre è indentato a dovere. Non si sfrutta a dovere il grassetto, e si fa fatica a rintracciare le parole chiave annegate nel testo. Per finire un cenno alla rilegatura: è dalla notte dei tempi che sottolineo la scomodità dovuta all’eccessiva rigidezza di praticamente tutti i libri della FAG. Se questo testo avesse avuto solo un centinaio di pagine in più, sarebbe stata un’impresa ardua leggerlo alla scrivania. Purtroppo noto che nulla è cambiato, a parte qualche miglioramento nelle intestazioni di pagina (che ora riportano il capitolo di appartenenza).
Il voto finale, e mi spiace dirlo, deve tener conto di questi problemi.

Concludendo posso raccomandare certamente questo libro, non ai principianti, ma a chi ha già una buona esperienza di sviluppo con ASP.NET in C#. I vari consigli, sparsi qua e là nel libro, valgono da soli tutto il prezzo di acquisto.
Consiglierei a Ghizzardi di non abbandonare la neonata carriera di scrittore: mi pare abbia una più che buona predisposizione a trasmettere le proprie conoscenze e competenze informatiche, e sarebbe un peccato abbandonarla così. Gli argomenti certo non mancano, così come la fantasia di sceglierli.

Qua sotto i dettagli del libro.

PRO
La ricchezza di consigli e raccomandazioni, unita alla prosa gradevole e non prolissa dell’autore, rendono questo libro un valido complemento ai classici omnicomprensivi manuali su ASP.NET. Ottimo, per sintesi e chiarezza, il secondo capitolo dedicato alla programmazione ad oggetti in C#.

CONTRO
Come scritto poco prima, il layout e l’impaginazione di questo testo è da rivedere completamente. Una maggiore cura realizzativa lo avrebbe reso ancora migliore.

Voto complessivo: 7,5/10

Lettore: Principiante/Intermedio

Sommario

.

Prefazione

Perché questo libro

A chi è rivolto

Come usare questo libro

1 Introduzione 15

Come è iniziato 15

Internet 16

Il World Wide Web 16

Le alternative 19

Java 19

PHP 21

Il web secondo Microsoft 22

Active Server Pages 22

ASPNET 23

Le basi del web: HTTP 24

La storia 24

Come funziona 25

HTTP e ASPNET 26

2 Cenni di programmazione a oggetti 27

Cos’è la programmazione a oggetti 27

La gestione della memoria 28

Namespace 30

Classi 31

Proprietà e campi 32

Metodi 33

Overload 34

Utilizzo 35

Ereditarietà e polimorfismo 35

Ereditarietà 36

Polimorfismo 36

Interfacce 38

Altri tipi di dato 39

Programmare con asp.net - Guida pratica allo sviluppo

Enum 39

Struct 40

Modificatori di accesso e nomenclatura 41

Modificatori di accesso 41

Nomenclatura 42

3 Il primo progetto web 45

L’ambiente di sviluppo 45

Tempo di scelte 48

Website o web application? 48

Locale o distribuita? 50

Il primo progetto web 51

Le pagine web 52

Gli altri elementi 53

Un giro di prova 54

Architettura di una pagina 56

Il markup e il code beside 56

I controlli e gli eventi 58

4 I controlli di base di ASPNET 61

Riempire una pagina 61

Le Master Page 62

Alcune considerazioni 67

Controlli standard di navigazione 68

I controlli di base 68

Interazione lato server 71

Placeholder 73

5 Configurazione 77

Le basi della configurazione 77

Il webconfig 78

Cos’è il webconfig 78

Come funziona 79

Anatomia del webconfig 80

82

83

84

84

Configurazione standard 85

Popolare il webconfig 85

Le class library 86

Custom configuration section 88

Creare la class library 88

Creare la custom configuration section 89

6 Gestione dello stato 95

Le basi 95

La query string 96

Cookie 99

Sessioni 102

Postback, Viewstate, Controlstate 104

Application 107

7 Il cuore di un progetto web: i controlli di input 109

Input control 109

TextBox e Button 110

DropDownList e ListBox 115

CheckBoxList e RadioButtonList 118

Validation control 121

RequiredFieldValidator 122

CompareValidator 124

RangeValidator 126

RegularExpressionValidator 127

CustomValidator 129

ValidationSummary 131

I validation group 133

CheckBoxList e RadioButtonList: una via alternativa 135

8 Il cuore di un progetto web: il runtime 139

La pipeline HTTP 139

Come funziona 139

La pipeline in dettaglio 141

HttpContext 142

HttpApplication 143

Il file globalasax 145

HttpModule 147

HttpHandler 151

9 Lavorare con Xml 157

La storia 157

Cos’è Xml 157

XPath 159

Gli oggetti di SystemXml 160

XmlDocument 160

XmlElement e XmlNode 164

SelectNodes e SelectSingleNode 165

Programmare con asp net - Guida pratica allo sviluppo

XmlAttribute 167

Scrivere file Xml 170

La scrittura 170

Considerazioni 173

10 Lavorare con i file 175

Il file system 175

Gli share di rete 177

Gli oggetti di System.IO 178

Directory e Directory.Info 179

File e File.Info 179

Drive.Info 180

Stream e scrittura 180

Stream e lettura 182

Stream binari 183

Il file system come repository 184

11 Accesso ai dati 189

ADONET 189

L’ambiente di test 191

Gli ORM 192

I NET data provider 193

Il database 193

Gli oggetti SqlClient 194

SqlConnection 194

SqlCommand 196

SqlParameter 196

Un giro di prova 198

SqlDataReader 200

SqlDataAdapter 201

I contenitori 203

12 Databinding 205

Concetto di Databinding 205

Metodologie di binding 206

Binding a livello di pagina 206

Binding a livello di controllo 207

Controlli avanzati 210

Eval e DataBinderEval 210

Repeater 211

FormView e DetailView 214

GridView 215

ListView e DataPager 218

Data source control e ObjectDataSource 219

13 Gestione avanzata dei controlli 221

Usercontrol 221

Utilizzo 223

Limitazioni 226

Custom server control 227

Preparare il terreno 227

Derived control 228

State management 231

Composite control 232

Templated control 234

Databound control 238

Preparazione 238

L’implementazione 239

14 ASP.NET e la cache 245

La cache 245

Output caching 247

Fragment caching 249

Post cache substitution 249

Programmatic caching 251

Sliding expiration e absolute expiration 251

Cache dependency 254

Callback event 255

15 Autenticazione e autorizzazione 259

Autenticazione 259

Windows authentication 260

Passport authentication 262

Forms authentication 263

L’utente 263

Forms authentication 264

Preparazione 264

L’oggetto FormsAuthentication 266

I metodi di FormsAuthentication 268

I controlli 269

Login 269

Login* 270

Considerazioni 273

Autorizzazione 273

16 Membership API 277

Provider model 277

Anatomia 279

I provider forniti dal Framework 282

Membership provider 283

Configurazione 283

Implementazione 287

Profile provider 290

Role provider 293

17 Globalizzazione e localizzazione 297

Localizzazione e globalizzazione 298

Il processo di globalizzazione 298

La culture 300

File di risorsa 302

Risorse locali e risorse globali 303

Utilizzare le risorse 306

Culture.Info 307

Formattazione 308

Persistere la cultura corrente 309

Un vero menu 311

18 Deployment e configurazione 313

Sviluppo, stage e produzione 314

Ambiente di sviluppo 315

Ambiente di stage 318

Ambiente di produzione 320

Tipi di pubblicazione 322

Cenno alla continuous integration 325

19 Lavorare con la rete 329

Mail 329

SystemNetMail 330

Configurazione 332

Template 334

HTTP 336

HttpWebRequest e HttpWebResponse 336

Utilizzo 337

Autenticazione 340

Dati binari 341

FTP 342

Una precisazione 342

Implementazione 342

20 Web service 345

I web service 345

Creare un web service 347

I web method 349

Consumare un web service 352

Particolarità 355

Tipi di dato 355

Web service e stato 357

Pubblicare un web service 359

21 Ajax 361

Script callback e Ajax 361

I controlli Ajax 363

ScriptManager 364

UpdatePanel 365

UpdateProgress 369

Timer 370

Interazione client/server 372

Page method 373

Web service 376

Conclusioni 378

Indice analitico 379

Categoria: Books
giovedì, 03 giu 2010 Ore. 11.00

Messaggi collegati


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