ASP.NET

Post on 18-Nov-2014

815 views 0 download

Tags:

description

Introduzione allo sviluppo di applicazioni web con il pattern mvc

Transcript of ASP.NET

ASP.NET

Sviluppo applicazioni web e linguaggio HTML

LEZIONE 04

Getting Started …

ASP.NET

Nel 2002/2003

Microsoft porta sul web

l’esperienza

dell’event-driven programming

Nascono le

WebForms

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)

Spinto dalla community,

nel 2009 arriva

un aiuto dal passato …

… tutto ebbe inizio nel lontano 1970 con Smalltalk.

Model

Model

Contiene o

rappresenta i

dati applicativi

Model

Renderizza

parte del

modello

sulla UI

Model

Processa le richieste

degli utenti compilando

il modello e scegliendo

la view da renderizzare

MVC Event driven programming vs

and the winner is …

and the winner is …

MVC

Separation

of

concerns (SoC)

… ogni cosa al suo posto.

No ViewState

No Postback

No Page life-cycle

… lasciamo che get e post facciano il loro lavoro.

Maggior

controllo sul

codice generato

… il web è HTML!

Testability

… avanti con lo unit testing!

E’ Open Source!

… posso modificare e compilare il sorgente!

More than this …

… andiamo a vedere

La mia prima

applicazione MVC

Partiamo da una soluzione vuota

Aggiungiamo un progetto ASP.NET MVC 3

Struttura di una applicazione MVC

Struttura di una applicazione MVC

Model s

Struttura di una applicazione MVC

s

Struttura di una applicazione MVC

Controller s

Rispondere

a una richiesta

Convention over

configuration

… se possiamo evitiamo il codice di plumbing.

/Home/About

convention over configuration

/Home/About

convention over configuration

/Home/About

convention over configuration

Partiamo

dal model

Domain Model

Accesso

ai dati

Struttura del database relazionale

Popoliamo il database con dati di test

La rappresentazione dei dati

nelle tabelle di un database è

diversa da quella negli oggetti

di un dominio

impedance mismatch

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

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

Convention over

configuration

… se possiamo evitiamo il codice di plumbing.

Accedere ai dati del DbContext

• E questo è il codice per accedere ai

dati salvati nel database:

continua …

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

Thank You

MANUEL SCAPOLAN website: www.manuelscapolan.it twitter: manuelscapolan e-mail: info@manuelscapolan.it