SlideShare a Scribd company logo
1 of 21
Alessandro Forte & Michele Aponte presentano: MVP vs MVC: Realizzare applicazioni web testabili  Perché nonostante lo neghiamo a noi stessi testare fa parte del ciclo di sviluppo…
Agenda MVC Demo Quando usare MVC MVP Demo Quando usare MVP
MVC (Model View Controller) Realizzare applicazioni web testabili con Asp.Net MVC Michele Aponte  Mail: michele.aponte@dotnetcampania.org Blog: http://dotnetcampania.org/blogs/michele/ Twitter: apomic80 MSN: apomic80@hotmail.com Facebook: Michele Aponte
Che cos‘è MVC? E’ un pattern architetturale che risolve il problema di disaccopiare  la logica di interfaccia da quella di dominio. Nella sua formulazione originale... Controller View Model 4
Che cos‘è MVC? E’ un pattern architetturale che risolve il problema di disaccopiare  la logica di interfaccia da quella di dominio. Nella sua formulazione originale... Controller View Model 5
Che cos‘è MVC? E’ un pattern architetturale che risolve il problema di disaccopiare  la logica di interfaccia da quella di dominio. Nella sua formulazione originale... Controller View Model 6
Che cos‘è MVC? E’ un pattern architetturale che risolve il problema di disaccopiare  la logica di interfaccia da quella di dominio. Nella sua formulazione originale... Controller View Model 7
Che cos‘è MVC? E’ un pattern architetturale che risolve il problema di disaccopiare  la logica di interfaccia da quella di dominio. Nella sua formulazione originale... Controller View Model 8
Che cos‘è MVC? E’ un pattern architetturale che risolve il problema di disaccopiare  la logica di interfaccia da quella di dominio. Nella formulazione adattata al web (Model 2) Controller View Model 9
Che cos‘è MVC? E’ un pattern architetturale che risolve il problema di disaccopiare  la logica di interfaccia da quella di dominio. Nella formulazione adattata al web (Model 2) Controller View Model 10
Che cos‘è MVC? E’ un pattern architetturale che risolve il problema di disaccopiare  la logica di interfaccia da quella di dominio. Nella formulazione adattata al web (Model 2) Controller View Model 11
MVC secondo Microsoft Microsoft ha realizzato la sua implementazione di questo pattern con Asp.NET MVC. Request Action Action Result Url Routing Controller View Result http://www.miaapplicazione.it/{controller}/{action}/{param} 12
MVC secondo Microsoft Microsoft ha realizzato la sua implementazione di questo pattern con Asp.NET MVC. www.miaapplicazione.it/News/Show/10 Show(10) Action Result Url Routing NewsController Show Result http://www.miaapplicazione.it/News/Show/10 13
Demo Definire il nostro Model Realizzare le operazioni CRUD Testare il controller
Quando scegliere Asp.NET MVC Quando i requisiti lo impongono ,[object Object]
Peso della view generata
Lungo ciclo di vita dell’applicazione (testabilità)15
MVP (ModelViewPresenter) Realizzare interfacce grafiche “riusabili” e testabili con MVP Alessandro Forte Mail: forte.alessandro83@gmail.com Blog: http://dotnetcampania.org/blogs/alexforte MSN: forte_alessandro@hotmail.com Facebook: Alessandro Forte
Agenda MVP Demo Quando usare MVP
MVP UI Totallydecoupled (SoC) SeparationofRoles (SoR) UI IndipendentPlatform 1 Presenter – N Views (SaaS) TestingOriented (WebForm) Riutilizzabile al 100% Automatizzabile (con WCSF)
Demo Definire l’Interfaccia Definire la View Definire il Presenter

More Related Content

What's hot

What's new in Asp.Net 4.5 (and WebApi)
What's new in Asp.Net 4.5 (and WebApi)What's new in Asp.Net 4.5 (and WebApi)
What's new in Asp.Net 4.5 (and WebApi)
Luca Milan
 

What's hot (20)

Progettare in Team per il Responsive Web Design
Progettare in Team per il Responsive Web DesignProgettare in Team per il Responsive Web Design
Progettare in Team per il Responsive Web Design
 
Christmas greetings cards with blazor
Christmas greetings cards with blazorChristmas greetings cards with blazor
Christmas greetings cards with blazor
 
ASP.NET performance optimization
ASP.NET performance optimizationASP.NET performance optimization
ASP.NET performance optimization
 
Webcast - Introduzione a Visual Studio Online
Webcast - Introduzione a Visual Studio OnlineWebcast - Introduzione a Visual Studio Online
Webcast - Introduzione a Visual Studio Online
 
Wasm and Blazor CDays keynote
Wasm and Blazor CDays keynoteWasm and Blazor CDays keynote
Wasm and Blazor CDays keynote
 
Rich client application: MVC4 + MVVM = Knockout.js
Rich client application: MVC4 + MVVM = Knockout.jsRich client application: MVC4 + MVVM = Knockout.js
Rich client application: MVC4 + MVVM = Knockout.js
 
Training Signal Webtrends
Training Signal WebtrendsTraining Signal Webtrends
Training Signal Webtrends
 
Asp.Net MVC 5
Asp.Net MVC 5Asp.Net MVC 5
Asp.Net MVC 5
 
Spring @Aspect e @Controller
Spring @Aspect e @Controller Spring @Aspect e @Controller
Spring @Aspect e @Controller
 
Java Spring Basics - Donato Andrisani - Gabriele Manfredi
Java Spring Basics - Donato Andrisani - Gabriele ManfrediJava Spring Basics - Donato Andrisani - Gabriele Manfredi
Java Spring Basics - Donato Andrisani - Gabriele Manfredi
 
AntiPatterns: i vizi del programmatore
AntiPatterns: i vizi del programmatoreAntiPatterns: i vizi del programmatore
AntiPatterns: i vizi del programmatore
 
Introduzione a Struts
Introduzione a StrutsIntroduzione a Struts
Introduzione a Struts
 
Spring Framework
Spring FrameworkSpring Framework
Spring Framework
 
ARCHITETTURA DI UN'APPLICAZIONE SCALABILE
ARCHITETTURA DI UN'APPLICAZIONE SCALABILEARCHITETTURA DI UN'APPLICAZIONE SCALABILE
ARCHITETTURA DI UN'APPLICAZIONE SCALABILE
 
ASP.NET Core - dove siamo arrivati
ASP.NET Core - dove siamo arrivatiASP.NET Core - dove siamo arrivati
ASP.NET Core - dove siamo arrivati
 
Spa with Blazor
Spa with BlazorSpa with Blazor
Spa with Blazor
 
What's new in Asp.Net 4.5 (and WebApi)
What's new in Asp.Net 4.5 (and WebApi)What's new in Asp.Net 4.5 (and WebApi)
What's new in Asp.Net 4.5 (and WebApi)
 
UI Composition - Prism
UI Composition - PrismUI Composition - Prism
UI Composition - Prism
 
Alessandro Forte - Realizzare controlli Ajax in ASP.Net
Alessandro Forte - Realizzare controlli Ajax in ASP.NetAlessandro Forte - Realizzare controlli Ajax in ASP.Net
Alessandro Forte - Realizzare controlli Ajax in ASP.Net
 
Multi-Device Hybrid Apps con Visual Studio e Apache Cordova
Multi-Device Hybrid Apps con Visual Studio e Apache CordovaMulti-Device Hybrid Apps con Visual Studio e Apache Cordova
Multi-Device Hybrid Apps con Visual Studio e Apache Cordova
 

Similar to Alessandro Forte - MVP vs MVC

Fe02 ria con breeze e knockout
Fe02   ria con breeze e knockoutFe02   ria con breeze e knockout
Fe02 ria con breeze e knockout
DotNetCampus
 
Progetto SOD Davide Sito
Progetto SOD Davide SitoProgetto SOD Davide Sito
Progetto SOD Davide Sito
Davide Sito
 
Sviluppo Web Agile Con MonoRail
Sviluppo Web Agile Con MonoRailSviluppo Web Agile Con MonoRail
Sviluppo Web Agile Con MonoRail
Stefano Ottaviani
 
Entity Framework 7, Back To The Future!
Entity Framework 7, Back To The Future!Entity Framework 7, Back To The Future!
Entity Framework 7, Back To The Future!
Michael Denny
 

Similar to Alessandro Forte - MVP vs MVC (20)

MVVM senza fronzoli con Caliburn.Micro
MVVM senza fronzoli con Caliburn.MicroMVVM senza fronzoli con Caliburn.Micro
MVVM senza fronzoli con Caliburn.Micro
 
Hands on MVC - Mastering the Web
Hands on MVC - Mastering the WebHands on MVC - Mastering the Web
Hands on MVC - Mastering the Web
 
Asp.Net MVC 2 :: VS 2010 Community Tour
Asp.Net MVC 2 :: VS 2010 Community TourAsp.Net MVC 2 :: VS 2010 Community Tour
Asp.Net MVC 2 :: VS 2010 Community Tour
 
ASP.NET MVC Intro
ASP.NET MVC IntroASP.NET MVC Intro
ASP.NET MVC Intro
 
Migliora il tuo codice con knockout.js
Migliora il tuo codice con knockout.jsMigliora il tuo codice con knockout.js
Migliora il tuo codice con knockout.js
 
MVC and Struts 1
MVC and Struts 1MVC and Struts 1
MVC and Struts 1
 
ASP.NET
ASP.NETASP.NET
ASP.NET
 
Design pattern architetturali Model View Controller, MVP e MVVM
Design pattern architetturali   Model View Controller, MVP e MVVMDesign pattern architetturali   Model View Controller, MVP e MVVM
Design pattern architetturali Model View Controller, MVP e MVVM
 
Fe02 ria con breeze e knockout
Fe02   ria con breeze e knockoutFe02   ria con breeze e knockout
Fe02 ria con breeze e knockout
 
Model-View-ViewModel con Windows Store Apps
Model-View-ViewModel con Windows Store AppsModel-View-ViewModel con Windows Store Apps
Model-View-ViewModel con Windows Store Apps
 
MVC2: non solo tecnologia
MVC2: non solo tecnologiaMVC2: non solo tecnologia
MVC2: non solo tecnologia
 
Niccolò Becchi: Introduzione a GWT
Niccolò Becchi: Introduzione a GWTNiccolò Becchi: Introduzione a GWT
Niccolò Becchi: Introduzione a GWT
 
Progetto SOD Davide Sito
Progetto SOD Davide SitoProgetto SOD Davide Sito
Progetto SOD Davide Sito
 
Customize ASP.NET Core scaffolding
Customize ASP.NET Core scaffoldingCustomize ASP.NET Core scaffolding
Customize ASP.NET Core scaffolding
 
Angular and beyond
Angular and beyondAngular and beyond
Angular and beyond
 
Mvvm
MvvmMvvm
Mvvm
 
Integrazione continua con TFS Build
Integrazione continua con TFS BuildIntegrazione continua con TFS Build
Integrazione continua con TFS Build
 
Sviluppo Web Agile Con MonoRail
Sviluppo Web Agile Con MonoRailSviluppo Web Agile Con MonoRail
Sviluppo Web Agile Con MonoRail
 
Entity Framework 7, Back To The Future!
Entity Framework 7, Back To The Future!Entity Framework 7, Back To The Future!
Entity Framework 7, Back To The Future!
 
Progetto e implementazione di una pipeline di sviluppo software con tecnologi...
Progetto e implementazione di una pipeline di sviluppo software con tecnologi...Progetto e implementazione di una pipeline di sviluppo software con tecnologi...
Progetto e implementazione di una pipeline di sviluppo software con tecnologi...
 

More from Alessandro Forte

More from Alessandro Forte (7)

ORM - Introduzione
ORM - IntroduzioneORM - Introduzione
ORM - Introduzione
 
Alessandro Forte - ASP.Net 4.0
Alessandro Forte - ASP.Net 4.0Alessandro Forte - ASP.Net 4.0
Alessandro Forte - ASP.Net 4.0
 
Alessandro Forte - ASP.NET per il client Web
Alessandro Forte - ASP.NET per il client WebAlessandro Forte - ASP.NET per il client Web
Alessandro Forte - ASP.NET per il client Web
 
Alessandro Forte - Windows Vista 4 Dev - Parte 1
Alessandro Forte - Windows Vista 4 Dev - Parte 1Alessandro Forte - Windows Vista 4 Dev - Parte 1
Alessandro Forte - Windows Vista 4 Dev - Parte 1
 
Alessandro Forte - Windows Vista 4 Dev - Parte 2
Alessandro Forte - Windows Vista 4 Dev - Parte 2Alessandro Forte - Windows Vista 4 Dev - Parte 2
Alessandro Forte - Windows Vista 4 Dev - Parte 2
 
Alessandro Forte - Model View Presenter
Alessandro Forte - Model View PresenterAlessandro Forte - Model View Presenter
Alessandro Forte - Model View Presenter
 
Alessandro Forte - Piattaforma Android
Alessandro Forte - Piattaforma AndroidAlessandro Forte - Piattaforma Android
Alessandro Forte - Piattaforma Android
 

Alessandro Forte - MVP vs MVC

  • 1. Alessandro Forte & Michele Aponte presentano: MVP vs MVC: Realizzare applicazioni web testabili Perché nonostante lo neghiamo a noi stessi testare fa parte del ciclo di sviluppo…
  • 2. Agenda MVC Demo Quando usare MVC MVP Demo Quando usare MVP
  • 3. MVC (Model View Controller) Realizzare applicazioni web testabili con Asp.Net MVC Michele Aponte Mail: michele.aponte@dotnetcampania.org Blog: http://dotnetcampania.org/blogs/michele/ Twitter: apomic80 MSN: apomic80@hotmail.com Facebook: Michele Aponte
  • 4. Che cos‘è MVC? E’ un pattern architetturale che risolve il problema di disaccopiare la logica di interfaccia da quella di dominio. Nella sua formulazione originale... Controller View Model 4
  • 5. Che cos‘è MVC? E’ un pattern architetturale che risolve il problema di disaccopiare la logica di interfaccia da quella di dominio. Nella sua formulazione originale... Controller View Model 5
  • 6. Che cos‘è MVC? E’ un pattern architetturale che risolve il problema di disaccopiare la logica di interfaccia da quella di dominio. Nella sua formulazione originale... Controller View Model 6
  • 7. Che cos‘è MVC? E’ un pattern architetturale che risolve il problema di disaccopiare la logica di interfaccia da quella di dominio. Nella sua formulazione originale... Controller View Model 7
  • 8. Che cos‘è MVC? E’ un pattern architetturale che risolve il problema di disaccopiare la logica di interfaccia da quella di dominio. Nella sua formulazione originale... Controller View Model 8
  • 9. Che cos‘è MVC? E’ un pattern architetturale che risolve il problema di disaccopiare la logica di interfaccia da quella di dominio. Nella formulazione adattata al web (Model 2) Controller View Model 9
  • 10. Che cos‘è MVC? E’ un pattern architetturale che risolve il problema di disaccopiare la logica di interfaccia da quella di dominio. Nella formulazione adattata al web (Model 2) Controller View Model 10
  • 11. Che cos‘è MVC? E’ un pattern architetturale che risolve il problema di disaccopiare la logica di interfaccia da quella di dominio. Nella formulazione adattata al web (Model 2) Controller View Model 11
  • 12. MVC secondo Microsoft Microsoft ha realizzato la sua implementazione di questo pattern con Asp.NET MVC. Request Action Action Result Url Routing Controller View Result http://www.miaapplicazione.it/{controller}/{action}/{param} 12
  • 13. MVC secondo Microsoft Microsoft ha realizzato la sua implementazione di questo pattern con Asp.NET MVC. www.miaapplicazione.it/News/Show/10 Show(10) Action Result Url Routing NewsController Show Result http://www.miaapplicazione.it/News/Show/10 13
  • 14. Demo Definire il nostro Model Realizzare le operazioni CRUD Testare il controller
  • 15.
  • 16. Peso della view generata
  • 17. Lungo ciclo di vita dell’applicazione (testabilità)15
  • 18. MVP (ModelViewPresenter) Realizzare interfacce grafiche “riusabili” e testabili con MVP Alessandro Forte Mail: forte.alessandro83@gmail.com Blog: http://dotnetcampania.org/blogs/alexforte MSN: forte_alessandro@hotmail.com Facebook: Alessandro Forte
  • 19. Agenda MVP Demo Quando usare MVP
  • 20. MVP UI Totallydecoupled (SoC) SeparationofRoles (SoR) UI IndipendentPlatform 1 Presenter – N Views (SaaS) TestingOriented (WebForm) Riutilizzabile al 100% Automatizzabile (con WCSF)
  • 21. Demo Definire l’Interfaccia Definire la View Definire il Presenter
  • 22. Quando usare MVP {PresentationLogic}
  • 23. © 2009 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.