Successfully reported this slideshow.
Model View Controller
Semplificare il codice e minimizzare i tempi!

       Manuel Scapolan info@manuelscapolan.it
       ...
Semplificare il codice e minimizzare i tempi!
                                                                            ...
Model View Controller
Semplificare il codice e minimizzare i tempi!

                  Web Forms
Model View Controller
Semplificare il codice e minimizzare i tempi!

                      DEMO


           Una pagina AS...
Semplificare il codice e minimizzare i tempi!
                                                                          Va...
Semplificare il codice e minimizzare i tempi!
                                                                          Sv...
Model View Controller
Semplificare il codice e minimizzare i tempi!

               Introduzione al MVC
Semplificare il codice e minimizzare i tempi!
                                                                            ...
Semplificare il codice e minimizzare i tempi!
                                                                            ...
Semplificare il codice e minimizzare i tempi!
                                                                            ...
Semplificare il codice e minimizzare i tempi!
                                                                        Sepa...
Semplificare il codice e minimizzare i tempi!
                                                                            ...
Semplificare il codice e minimizzare i tempi!
                                                            Per chi sono i f...
Semplificare il codice e minimizzare i tempi!
                                                                           R...
Semplificare il codice e minimizzare i tempi!
                                                                            ...
Semplificare il codice e minimizzare i tempi!
                                                                            ...
Semplificare il codice e minimizzare i tempi!
                                                                   HTML puli...
Semplificare il codice e minimizzare i tempi!
                                                            Convention over ...
Semplificare il codice e minimizzare i tempi!
                                                                          St...
Semplificare il codice e minimizzare i tempi!
                                                                            ...
Semplificare il codice e minimizzare i tempi!       Per chi preferisce lavorare con gli elementi base del Web


          ...
Semplificare il codice e minimizzare i tempi!
                                                                     Per chi...
Model View Controller
Semplificare il codice e minimizzare i tempi!

                 Alcuni concetti
Semplificare il codice e minimizzare i tempi!
                                                                            ...
Semplificare il codice e minimizzare i tempi!
                                                        Consigli per una Con...
Semplificare il codice e minimizzare i tempi!
                                                                       “No m...
Semplificare il codice e minimizzare i tempi!
                                                                          Co...
Semplificare il codice e minimizzare i tempi!
                                                                            ...
Model View Controller
Semplificare il codice e minimizzare i tempi!

                   MonoRail
Semplificare il codice e minimizzare i tempi!
                                                                            ...
Model View Controller
Semplificare il codice e minimizzare i tempi!
                                            Come funzi...
Model View Controller
Semplificare il codice e minimizzare i tempi!


                                      URL <-> Action...
Semplificare il codice e minimizzare i tempi!
                                                                Convention o...
Semplificare il codice e minimizzare i tempi!
                                                                         Mon...
Semplificare il codice e minimizzare i tempi!
                                                                      MonoRa...
Semplificare il codice e minimizzare i tempi!
                                                                            ...
Model View Controller
Semplificare il codice e minimizzare i tempi!

                    DEMO


                   MonoRail
Model View Controller
Semplificare il codice e minimizzare i tempi!

                 ASP.NET MVC
Semplificare il codice e minimizzare i tempi!
                                                                            ...
Model View Controller
Semplificare il codice e minimizzare i tempi!
                                            Come funzi...
Model View Controller
Semplificare il codice e minimizzare i tempi!


                                      URL <-> Action...
Model View Controller
Semplificare il codice e minimizzare i tempi!


                                      URL <-> Action...
Semplificare il codice e minimizzare i tempi!
                                                                Convention o...
Semplificare il codice e minimizzare i tempi!
                                                                    ASP.NET ...
Semplificare il codice e minimizzare i tempi!
                                                               ASP.NET MVC i...
Semplificare il codice e minimizzare i tempi!
                                                                  ASP.NET MV...
Lo stack ASP.NET aggiornato
                               ASP.NET MVC   •Routes
ASP.NET       •Lifecycle
                ...
Model View Controller
Semplificare il codice e minimizzare i tempi!

                    DEMO


                 ASP.NET M...
Alcune imprecisioni su ASP.NET MVC
                                                                                   (non...
Model View Controller
Semplificare il codice e minimizzare i tempi!

                  Conclusioni
Semplificare il codice e minimizzare i tempi!
                                                                            ...
Semplificare il codice e minimizzare i tempi!
                                                                            ...
Semplificare il codice e minimizzare i tempi!
                                                                            ...
Semplificare il codice e minimizzare i tempi!
                                                             WebForm 4.0 (in...
Model View Controller
Semplificare il codice e minimizzare i tempi!


                                      • Unit testing...
Semplificare il codice e minimizzare i tempi!
                                                                            ...
Semplificare il codice e minimizzare i tempi!
                                                                          Li...
Semplificare il codice e minimizzare i tempi!
                                                                          Li...
Semplificare il codice e minimizzare i tempi!
                                                                            ...
Semplificare il codice e minimizzare i tempi!
                                                                            ...
Model View Controller
Semplificare il codice e minimizzare i tempi!

                    Grazie
                    Q&A
Upcoming SlideShare
Loading in …5
×

Model View Controller - Semplificare Il Codice E Minimizzare I Tempi

5,606 views

Published on

L’aumento della complessità delle applicazioni e la velocità di realizzazione richiesta al giorno d’oggi, hanno obbligato gli sviluppatori ad utilizzare metodologie formali per la scrittura di codice e il successivo testing dello stesso al fine di minimizzare i tempi di rilascio.

L’utilizzo dei pattern, ossia di convenzioni condivise dalla community dei programmatori, è una pratica sempre più diffusa e adottata anche per applicazioni Web.

L’ormai trentennale pattern Model-View-Controller (MVC) sta attualmente conoscendo una nuova giovinezza grazie al successo di framework nelle applicazioni Web che lo usano come riferimento.
Rails è il framework MVC più famoso e diffuso, implementato per la piattaforma Ruby, mentre ASP.NET MVC e MonoRail sono i due framework web MVC che stanno riscuotendo il maggiore successo per lo sviluppo su .NET e su Windows.

Conosceremo quindi la filosofia di riferimento e le specificità dei due framework tramite due implementazioni reali di una stessa applicazione e ne discuteremo vantaggi e svantaggi.

Published in: Technology, Business
  • Be the first to comment

Model View Controller - Semplificare Il Codice E Minimizzare I Tempi

  1. 1. Model View Controller Semplificare il codice e minimizzare i tempi! Manuel Scapolan info@manuelscapolan.it Marco Parenzan marco.parenzan@libero.it 10 dicembre 2009
  2. 2. Semplificare il codice e minimizzare i tempi! Agenda • Il “passato”: Web Forms • Il “presente”(?): Model • il “futuro”: MVC Model View Controller – Alcuni accenni tecnologici • Demo: MonoRail • Demo: ASP.NET MVC • Conclusioni – Q&A 2
  3. 3. Model View Controller Semplificare il codice e minimizzare i tempi! Web Forms
  4. 4. Model View Controller Semplificare il codice e minimizzare i tempi! DEMO Una pagina ASP.NET Web Forms
  5. 5. Semplificare il codice e minimizzare i tempi! Vantaggi di WebForm • Web Form ASP.NET è stabile e maturo ed è supportato da molti strumenti e controlli di terze parti Model View Controller • Metafora di click tipica dello sviluppo desktop di Windows • Astrazione dalle conoscenze di HTML e JavaScript recuperando invece le conoscenze dei programmatori Windows – Necessario introdurre PostBack e ViewState – Necessario solo .NET • Forte componentizzazione • Autocaricamento dei controlli
  6. 6. Semplificare il codice e minimizzare i tempi! Svantaggi di WebForm • Mancanza della Separation of Concerns • Non è possibile testare una pagina aspx • Statefulness difficile da controllare (a scapito Model View Controller delle prestazioni) • Difficoltà di accesso ai recenti framework JavaScript (come jQuery, Dojo e PrototypeJS) • Il postback rende poco SEO – Alcuni motori di ricerca addirittura declassano la pagina
  7. 7. Model View Controller Semplificare il codice e minimizzare i tempi! Introduzione al MVC
  8. 8. Semplificare il codice e minimizzare i tempi! Ritorno alle origini Il web è semplicemente: • GET Riceve dati dal server. I parametri sono passati Model View Controller attraverso l'indirizzo. • POST Invia i dati al server per salvarli o perchè siano elaborati. I parametri vengono passati nel corpo della richiesta con la forma: nome1=valore1&nome2=valore2
  9. 9. Semplificare il codice e minimizzare i tempi! Cos‟è MVC? • MODEL – La rappresentazione (specifica per il dominio) dei dati su cui l‟applicazione opera Model View Controller • VIEW – Renderizza il modello in una forma utile all‟interazione, tipicamente un elemento di interfaccia utente – Ci possono essere più viste (rappresentazioni) per un singolo modello e per finalità diverse • CONTROLLER – Riceve l‟input, coordina l‟elaborazione sul model e dispaccia tutto alla view
  10. 10. Semplificare il codice e minimizzare i tempi! Cos‟è MVC? • Model–View–Controller (MVC) è un pattern architetturale usato in ingegneria del software • Il pattern isola la business logic dalla Model View Controller presentation, permettendo: – Testing – Indipendenza nello sviluppo • Non è un concetto nuovo • Separation of Concerns – “Separate content from presentation and data- processing (model) from content.” --Wikipedia – Originario di SmallTalk nel 1979
  11. 11. Semplificare il codice e minimizzare i tempi! Separation of Concerns • Questa strutturazione, basata sulla separazione dei concetti, ha una validità comprovata da tantissime applicazioni web già realizzate (non Model View Controller solo MVC) – Separare la vista dalla logica applicativa permette di ridisegnare l‟estetica del sito senza toccare la logica. Questo permette di far interagire in maniera più produttiva un web designer con il web programmer – È possibile cambiare la tecnologia di implementazione delle viste – Spesso è necessario modificare la logica dell‟applicazione senza che per questo debba essere modificata l‟estetica
  12. 12. Semplificare il codice e minimizzare i tempi! MVC vs WebForms MVC WebForms Filter Page Model View Controller Logica comune (log, Code-behind security, ...) Controller Page Controls Codice di markup code-behind Prende le decisioni ed usufruisce dei servizi Controls Filter Codice di markup Logica comune (trace, log, error handling, ...) View Fonte: Monorail presentation at WebDevelopersCommunity, Presenta i dati Febbraio 2009 (Ken Egozi)
  13. 13. Semplificare il codice e minimizzare i tempi! Per chi sono i framework MVC? • A chi interessa REST – Gli Url sono puliti • A chi interessa SEO Model View Controller – L‟HTML “pulito” è importante • Chi preferisce “convention over configuration” – Oltre all‟MVC, CoC è l‟approccio tipico di Ruby on Rails • Per chi il testing è importante • Per chi preferisce lavorare con gli elementi base del Web – HTML, Javascript, CSS • Per chi preferisce i patterns, le astrazioni
  14. 14. Semplificare il codice e minimizzare i tempi! REST è importante • Representational state transfer (REST) è un tipo di architettura software per i sistemi di ipertesto distribuiti come il World Wide Web Model View Controller • REST prevede che la scalabilità del Web e la crescita siano diretti risultati di pochi principi chiave di progettazione • Lo stato dell'applicazione e le funzionalità sono divisi in Risorse WEB • Ogni risorsa è unica e indirizzabile usando sintassi universale per uso nei link ipertestuali • Tutte le risorse sono condivise come interfaccia uniforme per il trasferimento di stato tra client e risorse
  15. 15. Semplificare il codice e minimizzare i tempi! Url • Gli Url non puntano più ad una pagina fisica • Un Url è mappato su un controller – C‟è maggiore flessibilità Model View Controller – C‟è un routing engine basato sugli Url, con una route table
  16. 16. Semplificare il codice e minimizzare i tempi! SEO è importante • Url più comprensibili e “significativi” – http://www.host.com/Products/CatalogItem.aspx?id=6 – http://www.host.com/Products/Televisions/Catalog/6 Model View Controller • I motodi di ricerca penalizzano url non statici che non possono riprodurre
  17. 17. Semplificare il codice e minimizzare i tempi! HTML pulito è importante • Non c‟è più necessità di un ViewState o di un ControlState • Risposta HTTP più compatta Model View Controller – Migliore scalabilità – Migliori performances
  18. 18. Semplificare il codice e minimizzare i tempi! Convention over Configuration • Configuration – Informazioni memorizzate in web.config • Convention Model View Controller – Seguire le “regole” • Nomi delle classi • Nomi delle cartelle – Alcune possono essere sovrascritte, altre no
  19. 19. Semplificare il codice e minimizzare i tempi! Struttura delle cartelle • I framework MVC enfatizzano il principio “convenzione su configurazione” – Ci sono delle locazioni standard per ogni tipo di file Model View Controller • Content – Contiene tutti i contenuti statici (immagini, file css) • Controllers – Classi controller • Models – Classi del modello • Scripts – Contiene i files Javascript, compresi Ajaxe jQuery • Views – Contiene le viste
  20. 20. Semplificare il codice e minimizzare i tempi! Test-Driven Development • Il TDD è una metodologia che mette lo sviluppo dei test prima di tutto – Spesso si scrive il codice di test prima del codice stesso! • Ci sono tre momenti (Red/Green/Refactor) nello sviluppo TDD: – Scrivere uno unit test che fallisce (Red) Model View Controller – Scrivere un test che passa (Green) – Rifattorizzare il codice (Refactor) • Vantaggi – Si scrive prima di tutto il codice strettamente necessario a passare il test – Ci si concentra su “come” il codice verrà usato (il codice è spesso migliore, più chiaro) – I test diventano “parte integrante” dello sviluppo stesso. Servono soprattutto nel momento in cui si arriva vicino alla deadline!
  21. 21. Semplificare il codice e minimizzare i tempi! Per chi preferisce lavorare con gli elementi base del Web • ID dei tag “deterministici” – <div id=“ctl_000_ctl001_textbox”>…</div> • Javascript is a first-class citizen Model View Controller – built-in support for „unobtrusive javascript‟ – built-in support per JSON – built-in support per partial page rendering
  22. 22. Semplificare il codice e minimizzare i tempi! Per chi importa i pattern • Basta con “double-click here” e codice organizzato in Event Hadlers • Approccio invece più object oriented Model View Controller – Si deriva da classi base – Override di metodi astratti o virtuali – Implementare le interfacce
  23. 23. Model View Controller Semplificare il codice e minimizzare i tempi! Alcuni concetti
  24. 24. Semplificare il codice e minimizzare i tempi! Controller • È il centro del modello MVC • Ogni richiesta (HTTP) è gestita da un controller e renderizzata da una View Model View Controller • Senza un controller presentazione e business logic sarebbero contenute direttamente nella view – No testability – No Separation of Conterns – No Single Responsability • Il controller è una classe • La action di un controller è una “Single Responsibility” • L‟algoritmo di default implementato in MVC per invocare una action è una “Convention over Configuration” – Es. In /Product/Details viene invocato il metodo Details() della classe ProductController
  25. 25. Semplificare il codice e minimizzare i tempi! Consigli per una ControllerAction • Sono funzioni di coordinamento per la presentazione – Tutte le logiche dovrebbero stare in un‟altra classe Model View Controller • Sono una interfaccia – Vale anche per i servizi Web • Non dovrebbero contenere funzioni di accesso ai dati – Es. Usare il Repository Pattern – “Se una ControllerAction non sta in uno schermo, forse porta dietro più di una responsabilità”
  26. 26. Semplificare il codice e minimizzare i tempi! “No more file mapping” • In precedenza non aveva il controllo degli Url – Filosofia della pubblicazione dei files (aspx, ashx, php, jsp …) Model View Controller – <path fisico>=Server.MapPath(<path logico>) – = Path.Combine(<physical root>, <virtual path>) • Non molto RESTful • Per avere il controllo degli UrlUrl Rewriting – Mappatura di un Url web “qualsiasi” su un path (cioè su file)
  27. 27. Semplificare il codice e minimizzare i tempi! Controller Actions vs. Urls • Quale è la relazione tra Controller Actions e Url – /Product/Index • Invoca l‟azione Index sul controller ProductController – /Product Model View Controller • Invoca l‟azione Index sul controller ProductController – /Product/Help • Invoca l‟azione Help sul controller ProductController – /Product/Details/34 • Invoca l‟azione Details sul controller ProductController, passando come argomento 34 come Id • Da dove salta fuori l‟Id? • Il template di riferimento per gli Url è – {controller}[/{action}[/{id}]] – Si può customizzare intervenendo nel file Global.asax (si vedrà dopo) • Da notare come il Controller si chiami “ProductController”, cioè con “Controller” finale – Si usa chiamare un controller con il nome+”Controller” finale, per essere “rimosso” in fase di Url
  28. 28. Semplificare il codice e minimizzare i tempi! Usare uno o più ViewEngine(s) • ASP.NET Web Forms— ASP.NET MVC viene fornito con il motore di visualizzazione di ASP.NET. Ma molti altri sono disponibili – NHaml (pronounced enamel)— NHaml is an implementation of the popular RAILS Haml view engine for the ASP.NET MVC framework. Distributed under the open source MIT license. Model View Controller • http://code.google.com/p/nhaml – Spark— The idea behind the Spark view engine is to allow "the HTML to dominate the flow and the code to fit seamlessly." • http://dev.dejardin.org – Brail— A port of the Brail view engine from MonoRail to the ASP.NET MVC framework. The Brail view engine is part of the MVCContrib project. • www.codeplex.com/MVCContrib – nVelocity— The nVelocity view engine is a port of the Java Apache Software Foundation Velocity project to the .NET framework. The nVelocity view engine is part of the MVCContrib project. • http://www.codeplex.com/MVCContrib
  29. 29. Model View Controller Semplificare il codice e minimizzare i tempi! MonoRail
  30. 30. Semplificare il codice e minimizzare i tempi! MonoRail • MVC Framework: – Open source, Apache licence – Costruito sulla pipeline di ASP.NET: Model View Controller • Session • Http Modules • Authentication/Authorization • Caching • etc.
  31. 31. Model View Controller Semplificare il codice e minimizzare i tempi! Come funziona
  32. 32. Model View Controller Semplificare il codice e minimizzare i tempi! URL <-> Action Model View Controller Convention over Configuration
  33. 33. Semplificare il codice e minimizzare i tempi! Convention over Configuration Model View Controller ./Views/product/view.vm Model View Controller Controller View Engine View Per default viene caricata la vista che ha lo stesso nome della action, ma posso specificare da codice quale vista caricare:
  34. 34. Semplificare il codice e minimizzare i tempi! MonoRail in action (1) • Mappare l'estensione .rails sul filtro aspnet_isapi Model View Controller 34
  35. 35. Semplificare il codice e minimizzare i tempi! MonoRail in action (2) • Aggiungere sezione di configurazione nel Web.config Model View Controller
  36. 36. Semplificare il codice e minimizzare i tempi! MonoRail in action (3) • Aggiungere i riferimenti alle librerie: • Castle.Core Model View Controller • Castle.MonoRail.Framework • Castle.MonoRail.Framework.Views.NVelocity • NVelocity Dipendono dal view engine utilizzato
  37. 37. Model View Controller Semplificare il codice e minimizzare i tempi! DEMO MonoRail
  38. 38. Model View Controller Semplificare il codice e minimizzare i tempi! ASP.NET MVC
  39. 39. Semplificare il codice e minimizzare i tempi! ASP.NET MVC • È l‟implementazione di Microsoft del pattern Model-View-Controller in un framework per il Web in .NET Model View Controller – Shared source – Costruito sulla pipeline di ASP.NET: • Session • Http Modules • Authentication/Authorization • Caching • etc. • È una alternativa alle WebForm applications • È un framework altamente modulare ed estensibile • È un framework REST-friendly
  40. 40. Model View Controller Semplificare il codice e minimizzare i tempi! Come funziona
  41. 41. Model View Controller Semplificare il codice e minimizzare i tempi! URL <-> Action Model View Controller Convention over Configuration
  42. 42. Model View Controller Semplificare il codice e minimizzare i tempi! URL <-> Action Model View Controller Routing Engine
  43. 43. Semplificare il codice e minimizzare i tempi! Convention over Configuration Model View Controller ./Views/products/view.aspx Model View Controller Controller View Engine View Per default viene caricata la vista che ha lo stesso nome della action, ma posso specificare da codice quale vista caricare:
  44. 44. Semplificare il codice e minimizzare i tempi! ASP.NET MVC in action (1) • Mappare l'estensione .mvc sul filtro aspnet_isapi – Solo se siamo in IIS 5.x/6.x Model View Controller 44
  45. 45. Semplificare il codice e minimizzare i tempi! ASP.NET MVC in action (2) • Web.config IIS 5.x/6.x Model View Controller • Web.config IIS 7.x
  46. 46. Semplificare il codice e minimizzare i tempi! ASP.NET MVC in action (3) • Aggiungere i riferimenti alle librerie: • System.Web.Mvc Model View Controller • System.Web.Routing • …eventuali ViewEngine • Non fa parte del .NET Framework 3.5sp1 – Farà parte del .NET Framework 4.0 (ASP.NET MVC 2.0)
  47. 47. Lo stack ASP.NET aggiornato ASP.NET MVC •Routes ASP.NET •Lifecycle •Controllers WebForms •Postback •ViewData •ViewState •ActionFilters •ControlState ASPX Pages •MasterPages •Themes, Skins •General Templating ASP.NET •HttpApplicatio •HttpRuntime •Authentication Runtime n •HttpUtility •Membership •HttpContext •IHttpHandler •Caching •HttpRequest •IHttpModule •HttpResponse •Authorization .NET Framework 3.5sp1 •Common-Language Runtime 2.0 •Base Class Library 3.5
  48. 48. Model View Controller Semplificare il codice e minimizzare i tempi! DEMO ASP.NET MVC
  49. 49. Alcune imprecisioni su ASP.NET MVC (non del sottoscritto) Semplificare il codice e minimizzare i tempi! • È per tutti – No, al momento può essere presto ed è meno “intuitivo” (rispetto alle WebForm) Model View Controller • È un sostituto per le WebForms • È il miglior modo per sviluppare applicazioni Web su .NET • Bisogna riscrivere tutte le applicazioni WebForm in MVC
  50. 50. Model View Controller Semplificare il codice e minimizzare i tempi! Conclusioni
  51. 51. Semplificare il codice e minimizzare i tempi! Conclusioni • Non c‟è un vincitore – Né lo cercavamo • C‟è sicuramente qualcosa di nuovo Model View Controller 51
  52. 52. Semplificare il codice e minimizzare i tempi! MVC vs WebForms • Pro WebForms: • Contro WebForms: – Adatte allo sviluppo – Logica di RAD presentazione Model View Controller – Designer integrato in mescolata alla logica Visual Studio di business – Molte librerie di – Difficile da testare controlli di terze parti – Pagine pesanti per la – Ottime per prototipi o gestione del Viewstate applicazioni dimostrative
  53. 53. Semplificare il codice e minimizzare i tempi! MVC vs WebForms • Pro MVC: • Contro MVC: – Separation of Concerns – No designer (è uno (SoC) svantaggio?) Model View Controller – Controllo completo del – No controlli di terze codice HTML generato parti o visuali (ancora) – Facile da testare – Iniziale curva di – No Viewstate (alle apprendimento per chi volte può essere uno è abituato alle svantaggio) applicazioni event- – Favorisce driven l'estendibilità e la – Scarsa mantenibilità delle documentazione applicazioni (MonoRail) – Scarsa integrazione con Visual Studio (MonoRail)
  54. 54. Semplificare il codice e minimizzare i tempi! WebForm 4.0 (in ASP.NET 4.0) • È possibile disattivare o controllare la dimensione del viewstate • È possibile utilizzare un modulo HTTP ad hoc per Model View Controller eseguire la riscrittura URL – è possibile utilizzare il Web più recente routing API ASP.NET 3.5 SP1. • È possibile controllare dettaglio l'ID di elementi, inclusi gli elementi con ambiti • L'integrazione di Framework di JavaScript esterno è più semplice ed efficiente. • API di gestione della cronologia in ASP.NET 3.5 SP1 più semplice
  55. 55. Model View Controller Semplificare il codice e minimizzare i tempi! • Unit testing di un controller: Testability
  56. 56. Semplificare il codice e minimizzare i tempi! Link utili (MonoRail) • Castle Project: Model View Controller – http://www.castleproject.org • Blog: – http://hammett.castleproject.org – http://ayende.com/Blog – http://www.kenegozi.com/blog
  57. 57. Semplificare il codice e minimizzare i tempi! Link utili (ASP.NET MVC) • ASP.NET MVC: Model View Controller – http://www.asp.net/mvc • Blog: – Phil Haack (http://haacked.com/) – Scott Hanselman (http://www.hanselman.com/) – Scott Guthrie (http://weblogs.asp.net/scottgu/) – Simone Chiaretta (http://codeclimber.net.nz/) – Keyvan Nayyeri (http://nayyeri.net/) – Ugo Lattanzi (http://www.imperugo.tostring.it/) – Jeffrey Palermo (http://jeffreypalermo.com/) – …e tanti altri…
  58. 58. Semplificare il codice e minimizzare i tempi! Libri (ASP.NET MVC) • MVC in Action – http://www.manning.com/palermo/ • Beginning ASP.NET MVC Model View Controller – http://www.google.it/search?hl=it&source=hp&q=Begi nning+ASP.NET+MVC&meta=&aq=f&oq= • Professional ASP.NET MVC – http://www.wrox.com/WileyCDA/WroxTitle/Professio nal-ASP-NET-MVC-1-0.productCd-0470384611.html
  59. 59. Semplificare il codice e minimizzare i tempi! Manuel Scapolan blog: http://www.manuelscapolan.it/ email: info@manuelscapolan.it web: http://www.manuelscapolan.it/ Model View Controller Skype: manuel.scapolan Messenger manuel@live.it Twitter: - community: www.1nn0va.net
  60. 60. Semplificare il codice e minimizzare i tempi! Marco Parenzan blog: http://blog.codeisvalue.com/ email: marco.parenzan@libero.it web: http://www.codeisvalue.com/ Model View Controller Skype: marco.parenzan Messenger marco.parenzan@live.it Twitter: marco_parenzan community: www.1nn0va.net 60
  61. 61. Model View Controller Semplificare il codice e minimizzare i tempi! Grazie Q&A

×