Sviluppo applicazioni web e linguaggio HTML

                             LEZIONE 04




ASP.NET
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
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




   Model
Event driven
programming     vs   MVC
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
Model s



Struttura di una applicazione MVC
s



Struttura di una applicazione MVC
Controller s




Struttura di una applicazione MVC
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 )

                   Definisce una mappatura tra
                   database e dominio in modo
                    da rendere “trasparente” la
                        persistenza degli oggetti




                  ad esempio Entity Framework
Building an MVC 3 App
with Code First and
Entity Framework 4.1
by Julie Lerman
• 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



    Come configurare l’Entity Framework
Convention
over
configuration


       … se possiamo evitiamo il codice di plumbing.
• E questo è il codice per accedere ai
  dati salvati nel database:




         Accedere ai dati del DbContext
continua …
Credits
Le immagini contenute in questa presentazione
hanno licenza Creative Commons


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/
Thank You   MANUEL SCAPOLAN
            website: www.manuelscapolan.it
            twitter: manuelscapolan
            e-mail: info@manuelscapolan.it

ASP.NET