ASP.NET

45
ASP.NET Sviluppo applicazioni web e linguaggio HTML LEZIONE 04 Getting Started

description

Introduzione allo sviluppo di applicazioni web con il pattern mvc

Transcript of ASP.NET

Page 1: ASP.NET

ASP.NET

Sviluppo applicazioni web e linguaggio HTML

LEZIONE 04

Getting Started …

Page 2: ASP.NET

ASP.NET

Page 3: ASP.NET

Nel 2002/2003

Microsoft porta sul web

l’esperienza

dell’event-driven programming

Nascono le

WebForms

Page 4: ASP.NET

ma è un castello di carte

costruito per rendere

l’http “stateful”

e mascherare il

web da applicazione

desktop

Embrace HTTP and HTML—don't hide it

(Chris Tavares)

Page 5: ASP.NET

Spinto dalla community,

nel 2009 arriva

un aiuto dal passato …

… tutto ebbe inizio nel lontano 1970 con Smalltalk.

Page 6: ASP.NET

Model

Page 7: ASP.NET

Model

Contiene o

rappresenta i

dati applicativi

Page 8: ASP.NET

Model

Renderizza

parte del

modello

sulla UI

Page 9: ASP.NET

Model

Processa le richieste

degli utenti compilando

il modello e scegliendo

la view da renderizzare

Page 10: ASP.NET

MVC Event driven programming vs

Page 11: ASP.NET

and the winner is …

Page 12: ASP.NET

and the winner is …

MVC

Page 13: ASP.NET

Separation

of

concerns (SoC)

… ogni cosa al suo posto.

Page 14: ASP.NET

No ViewState

No Postback

No Page life-cycle

… lasciamo che get e post facciano il loro lavoro.

Page 15: ASP.NET

Maggior

controllo sul

codice generato

… il web è HTML!

Page 16: ASP.NET

Testability

… avanti con lo unit testing!

Page 17: ASP.NET

E’ Open Source!

… posso modificare e compilare il sorgente!

Page 18: ASP.NET

More than this …

… andiamo a vedere

Page 19: ASP.NET

La mia prima

applicazione MVC

Page 20: ASP.NET

Partiamo da una soluzione vuota

Page 21: ASP.NET

Aggiungiamo un progetto ASP.NET MVC 3

Page 22: ASP.NET

Struttura di una applicazione MVC

Page 23: ASP.NET

Struttura di una applicazione MVC

Model s

Page 24: ASP.NET

Struttura di una applicazione MVC

s

Page 25: ASP.NET

Struttura di una applicazione MVC

Controller s

Page 26: ASP.NET

Rispondere

a una richiesta

Page 27: ASP.NET

Convention over

configuration

… se possiamo evitiamo il codice di plumbing.

Page 28: ASP.NET

/Home/About

convention over configuration

Page 29: ASP.NET

/Home/About

convention over configuration

Page 30: ASP.NET

/Home/About

convention over configuration

Page 31: ASP.NET

Partiamo

dal model

Page 32: ASP.NET

Domain Model

Page 33: ASP.NET

Accesso

ai dati

Page 34: ASP.NET

Struttura del database relazionale

Page 35: ASP.NET

Popoliamo il database con dati di test

Page 36: ASP.NET
Page 37: ASP.NET

La rappresentazione dei dati

nelle tabelle di un database è

diversa da quella negli oggetti

di un dominio

impedance mismatch

Page 38: ASP.NET

Allora utilizziamo un ORM

( Object - Relation Mapper )

ad esempio Entity Framework

Definisce una mappatura tra

database e dominio in modo

da rendere “trasparente” la

persistenza degli oggetti

Page 40: ASP.NET

Come configurare l’Entity Framework

• Installare l’Entity Framework da NuGet

• Creare una classe che erediti dal tipo

DbContext

• Impostare una proprietà DbSet<T> per

ogni classe T della quale vogliamo la

persistenza

• Aggiungere nel web.config la stringa

di connessione al database

Page 41: ASP.NET

Convention over

configuration

… se possiamo evitiamo il codice di plumbing.

Page 42: ASP.NET

Accedere ai dati del DbContext

• E questo è il codice per accedere ai

dati salvati nel database:

Page 43: ASP.NET

continua …

Page 44: ASP.NET

Slide 3: http://www.flickr.com/photos/gato-gato-gato/4166319893/in/photostream/

Slide 4: http://www.flickr.com/photos/gibbons/2294375187/in/photostream/

Slide 10: http://www.flickr.com/photos/49379577@N00/2420070827/in/photostream/

Slide 35: http://www.flickr.com/photos/ididj0emama/2276657116/in/photostream/

Credits Le immagini contenute in questa presentazione

hanno licenza Creative Commons

Page 45: ASP.NET

Thank You

MANUEL SCAPOLAN website: www.manuelscapolan.it twitter: manuelscapolan e-mail: [email protected]