Bit a bit, si cresce sempre


Blog di un ingeformatico
Statistiche
  • Views Home Page: 458.068
  • Views Posts: 1.485.580
  • Views Gallerie: 641.497
  • 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 Entity Framework Tutorial (Packt)

Spiegare un argomento nuovo e complesso, come può esserlo l’ADO.NET Entity Framework, in poco più di 200 pagine, non è un’impresa facile, e bisogna cercare di trovare il giusto compromesso tra il non essere troppo banali e il non addentrarsi nei più piccoli e minuziosi meandri e dettagli.

Se poi consideriamo che parecchie pagine di questo libro sono “occupate” da immagini enormi e lunghi listati XML, si capisce che la parte descrittiva e teorica è ben più corta.

Si può leggere quindi interamente questo libro in meno di una settimana. I concetti però necessitano di essere digeriti, e quindi si procederà a piccoli passi, magari provando subito il codice nel proprio Visual Studio 2008 (aggiornato però al Service Pack 1).

La Packt (come avevo già scritto una precedente recensione) è una casa editrice inglese con una forte composizione di personaggi indiani o asiatici in generale. L’autore di questo libretto è infatti originario dell’India, e il suo approccio a questo argomento è molto pragmatico, dando molto spazio al “fare”, piuttosto che agli aspetti teorici (trattati giusto quanto serve per giustificare gli esempi).

L’autore non si perde in lunghe introduzioni teoriche su cosa sia un ORM o cosa sia ADO.NET, e passa subito all’azione con un progetto di esempio. Il target di lettore è quindi uno sviluppatore sufficientemente esperto, sia di C# (il linguaggio utilizzato nel codice), sia di ADO.NET che del .NET Framework in generale. Se poi ha un’infarinatura anche di basi di ORM (magari ha usato NHibernate), tanto meglio.

 

Nelle prime pagine si spiega cosa è l’ADO.NET Entity Framework e cosa ha di diverso ed innovativo rispetto agli altri ORM e come sono strutturati i layer architetturali su cui esso si posiziona. Alcune pagine sono riempite con gli script per la creazione del piccolo (sole 5 tabelle) database di esempio (“Payroll”, una sorta di gestionale per le buste paga) e parecchie schermate per la corretta installazione di tutto quanto serve per approntare un pc con l’Entity Framework installato ed integrato in Visual Studio 2008. Consiglio di seguire per bene la procedura illustrata, perché personalmente, ben prima di leggere queste pagine, avevo trovato difficoltà ad installare tutto ciò che serve, e in tali frangenti ci si mette anche la Microsoft (si era creata una sorta di circolo vizioso: per installare A, serviva B, ma per installare B, serviva C, in quale per essere installato necessitava di A, e così via).

Si prosegue poi illustrando le procedure visive di Visual Studio per la “mappatura” di oggetti del database, facendo particolare attenzione alle relazioni tra tabelle. Si spiega poi l’Entity SQL, il dialetto SQL utilizzato all’interno dell’Entity Framework.

 

Un aspetto positivo degli esempi è che per tutto il libro viene utilizzato lo stesso database, quindi stessa struttura, stesse tabelle, ecc. e lo stesso progetto. Una volta presa familiarità con esso è perciò facile e rapido seguire l’evolversi del codice, senza dover ogni volta prendere confidenza con situazioni diverse (come spesso accade in altri libri). Non ci sono esercizi da portare a termine, né domande o quiz di riepilogo.

Ogni capitolo ha solo un breve riassunto conclusivo, giusto per sottolineare di cosa si è parlato.

Purtroppo sono da segnalare tutta una serie di problemi che pregiudicano la valutazione complessiva di questo libro (e pensare che l’autore è pure un MVP in ASP.NET).

Si inizia col riempire pagine e pagine di codice XML autogenerato (da Visual Studio), decisamente inutile, per proseguire poi offrendo al lettore degli script di creazione del database di esempio che non corrispondono a quanto visualizzato nel diagramma delle tabelle (manca una tabella e le colonne non corrispondono). Persino lo script stesso non compila. E per un libro così piccolo, una mancanza di cura in questi dettagli (che poi tanto dettagli non sono), non è un bel biglietto da visita.

 

Ammetto poi che dal terzo capitolo ho interrotto la lettura approfondita; troppo frustrante seguire un discorso poco chiaro, non capire il codice a causa di una pessima indentazione (e nemmeno spiegato nei dettagli), e tanti concetti lasciati a metà, senza approfondire la cosa.

Se vorrò approfondire l’argomento, credo proprio che mi rivolgerò ad altri testi.

 

L’impaginazione complessiva è quanto di più scarno si possa trovare in commercio. Oltre alle immagini e al grassetto non si trova altro, e forse una migliore attenzione a questi aspetti estetici non avrebbe guastato.

Anche l’indentazione del codice necessiterebbe di una rivisitazione, magari scegliendo per esso un tipo di carattere più piccolo.

L’inglese utilizzato invece, forse per il fatto che l’autore non è madrelingua, è davvero comprensibile, e quasi mai capita di dover ricorrere al dizionario.

 

Forse il prezzo risulta un po’ elevato, considerate le piccole dimensioni del libro e la quantità di “conoscenza” elargita.

Ovviamente, per chi volesse seriamente approfondire l’ORM di casa Microsoft, deve considerare questo libro solo come il primo passo (se proprio si vuole partire da questo), giusto per prendere confidenza, per poi passare a libri di ben altro spessore una volta acquisite le basi.

 

Questo è il link della pagina del sito della Pack dedicato al libro.

Qua è possibile scaricarsi il codice sorgente di circa 8 kB (previo inserimento della propria mail per ricevere il link da cui scaricarlo), il sommario dettagliato e soprattutto il capitolo 2 completo (26 pagine).

Per quanto riguarda il piccolo file del codice sorgente, esso è composto da pochi file in formato .txt e suddivisi per capitolo.

 

 

PRO

Per chi vuole iniziare a capire cosa è l’Entity Framework, e cosa serve e come si usa, ed ha poco tempo da dedicarci, questo libro può rappresentare un discreto punto di partenza.

Può essere letto comodamente in un solo weekend, e la ricchezza di immagini e procedure guidate aiutano nell’apprendimento con Visual Studio 2008. L’inglese utilizzato dall’autore (non di madrelingua anglosassone) è indubbiamente di facile comprensione.

 

 

CONTRO

Errori negli script di creazione del database, pagine e pagine riempite con inutile XML autogenerato, sono esempi eclatanti di scarsa cura realizzativa.  Scrittura spesso contorta e poco chiara.

Immagini enormi, che spesso occupano l’intera pagina; si sarebbero potute ridurre un attimo, senza per questo perdere in definizione dei dettagli e chiarezza. Impaginazione decisamente migliorabile.

 

Voto complessivo: 5.5/10

 

Lettore: Intermedio

 

 

Table of Contents

Preface

Chapter 1: Introducing the ADO.NET Entity Framework

What You should Know

Looking Back

What is ADO.NET Entity Framework?

Is It Just Another ORM?

The ADO.NET Entity Framework Architectural Components

The Entity Data Model (EDM)

How is the Entity Data Model Represented?

The Object Model (O-Space)

LINQ to Entities

Entity Client

Entity SQL

Avoiding Complex Joins

The Object Services Layer

ADO.NET Entity Framework—Features and Benefits at a Glance

Installing the Prerequisites

Installing the ADO.NET Entity Framework and Its Tools

Downloading the Software

Installing the Software

Designing the Payroll Database

Summary

Glossary

Chapter 2: Getting Started

Creating an Entity Data Model

Creating the Payroll Entity Data Model Using the ADO.NET Entity Data Model Designer

Creating the Payroll Data Model Using the EdmGen Tool

The ADO.NET Entity Data Source Control

Implementing Our First Application Using the Entity Framework

Summary

Chapter 3: Entities, Relationships, and the Entity Data Model

Entities, Entity Types, and Relationships in the ADO.NET Entity Data Model (EDM)

What is an Entity?

Defining Entity Sets in the Entity Data Model

Extending the Existing Entity Types to Create Derived Entity Types

Association Sets, Associations, Containment, and Multiplicity

What are Entity Containers?

Exploring the Payroll Entity Data Model

The Mapping Details Window

The Entity Model Browser

The Entity Data Model Layers

The CSDL Schema

The SSDL Schema

The MSL Schema

Summary

Chapter 4: Working with Stored Procedures in the Entity Data Model

Mapping Stored Procedures to Functions in the EDM

Mapping Create, Update, and Delete Functions to Entities in the EDM

Mapping the Association Sets Consistently

Mapping Stored Procedures with No Entity Set

Using Stored Procedures

Mapping Stored Procedures that Return Custom Entity Types

Summary

Chapter 5: Working with Entity Client and Entity SQL

An Overview of the Entity SQL Language

From Transact SQL (T-SQL) to Entity SQL (E-SQL)

Why Entity SQL When I Already have LINQ to Entities?

Features of Entity SQL

Operators in Entity SQL

Arithmetic Operators

Comparison Operators

Logical Operators

Reference Operators

Type Operators

Set Operators

Operator Precedence

Expressions in Entity SQL

Query Expressions in Entity SQL

Identifiers, Variables, Parameters, and Types in Entity SQL

Row

Collection

Reference

Canonical Functions in Entity SQL

Mathematical Functions

Aggregate Functions

String Functions

Bitwise Functions

Date and Time Functions

Data Paging Using Entity SQL

Working with the ADO.NET Entity Client

Let's Get into Action

Building the Connection String

Creating an Entity Connection

Opening the Connection

Executing Queries Using the Entity Command

Closing the Connection

Other Operations with Entity SQL

Inserting a Record Using Entity SQL

Inserting a Record with a Foreign Key Constraint

Retrieving Native SQL from EntityCommand

Transaction Management in Entity SQL

Summary

Chapter 6: Working with LINQ to Entities

Introducing LINQ

Why LINQ?

Understanding the LINQ Architecture

LINQ to XML

LINQ to SQL

LINQ to Objects

LINQ to Entities

Querying Data Using LINQ to Entities

LINQ to Entities and Entity Framework

Differences between LINQ to Entities and LINQ to SQL

Operators in LINQ

Aggregation

Projections

Ordering

Quantifiers

Restriction

Conversion

Element

Set

Querying Data Using LINQ

Expressions in LINQ to Entities

Constant Expressions

Comparison Expressions

Initializing Expressions

Null Comparisons

Navigation Properties

Immediate and Deferred Query Execution

Improving Performance with Compiled Queries

Summary

Chapter 7: Working with the Object Services Layer

What are Object Services?

Features at a Glance

A Quick Look at the ObjectContext Class in our Payroll EDM

Querying Data as in-Memory Objects

Adding, Modifying, and Deleting Objects

Attaching and Detaching Objects to and from the Object Context

Serializing and De-Serializing Entity Instances

Change Tracking and Identity Resolution Using ObjectContext

Implementing a Sample Application

Creating the Form

Implementing a Custom DataContext

How is This Accomplished?

Inheritance in the Entity Framework

Table per Hierarchy

Table per Type

Implementing Complex Types in the EDM

Summary

Chapter 8: Introducing ADO.NET Data Services

Introducing ADO.NET Data Services

How Do ADO.NET Data Services and Web Services Differ?

What is Representational State Transfer (REST)?

Why Use ADO.NET Data Services?

Features at a Glance

Prerequisites

Exposing Data as a Service Using ADO.NET Data Services

Creating an ADO.NET Data Service

Using a Relational Database as the Data Source

Using Data Sources Other Than a Relational Database

Understanding the System.Services.Data Namespace

Restricting Access to Resources

Working with the ADO.NET Data Service Client Library

Generating the Client-Side Entity Classes

Inserting a Record

Updating a Record

Deleting a Record

Consuming an ADO.NET Data Service Using LINQ

Exposing a Stored Procedure as a URI

Handling Exceptions in ADO.NET Data Services

Batching ADO.NET Data Services Requests to Improve Performance

Debugging Your Data Service

References

Summary

Index

 

Titolo:   Entity Framework Tutorial
Autore:  Joydip Kanjilal
Editore:  Packt Publishing
ISBN: 978-1-847195-22-7
Pagine: 210
Prezzo: 39.99 $ (prezzo di copertina)
Data di uscita: Ott. 2008

Categoria: Books
lunedì, 16 feb 2009 Ore. 08.53

Messaggi collegati


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