Il Pattern MVC nei Framework di sviluppo per applicazioni...

11
Il Pattern MVC nei Framework di sviluppo per applicazioni Web. Analisi e comparazione di SPRING MVC Framework e ASP.NET MVC Framework. Facoltà di Ingegneria Corso di Studi in Ingegneria Informatica tesi di laurea relatore Ch.mo prof. Porfirio Tramontana correlatore Ing. Luca Anniciello candidato Francesco Maisto Matr. 534/1568 Il Pattern MVC nei Framework di sviluppo per applicazioni Web. Analisi e comparazione di SPRING MVC Framework e ASP.NET MVC Framework. Anno Accademico 2008/2009

Transcript of Il Pattern MVC nei Framework di sviluppo per applicazioni...

Page 1: Il Pattern MVC nei Framework di sviluppo per applicazioni ...wpage.unina.it/ptramont/Download/Tesi/Francesco Maisto - Slide.pdf · Il Pattern MVC nei Framework di sviluppo per applicazioni

Il Pattern MVC nei Framework di sviluppo per applicazioni Web. Analisi e comparazione di SPRING MVC Framework e ASP.NET MVC Framework.Facoltà di Ingegneria

Corso di Studi in Ingegneria Informatica

tesi di laurea

relatoreCh.mo prof. Porfirio Tramontana

correlatoreIng. Luca Anniciello

candidatoFrancesco MaistoMatr. 534/1568

Il Pattern MVC nei Framework di sviluppo per applicazioni Web. Analisi e comparazione di SPRING MVC Framework e ASP.NET MVC Framework.

Anno Accademico 2008/2009

Page 2: Il Pattern MVC nei Framework di sviluppo per applicazioni ...wpage.unina.it/ptramont/Download/Tesi/Francesco Maisto - Slide.pdf · Il Pattern MVC nei Framework di sviluppo per applicazioni

Il Pattern MVC nei Framework di sviluppo per applicazioni Web. Analisi e comparazione di SPRING MVC Framework e ASP.NET MVC Framework.Facoltà di Ingegneria

Corso di Studi in Ingegneria Informatica

Obiettivi del progetto:Analizzare due framework di sviluppo Open Source basati sulle piattaforme .NET e Java che implementano il pattern MVCSviluppare una applicazione Web MVC modello/demo nei due framework che interagisce con una semplice base dati relazionale scelta in base alla comodità di applicazione

Necessità dell’azienda Aera:Valutare l’adozione del paradigma MVC e delle tecnologie che lo implementano per applicazioni Web che interagisco con database relazionali

Page 3: Il Pattern MVC nei Framework di sviluppo per applicazioni ...wpage.unina.it/ptramont/Download/Tesi/Francesco Maisto - Slide.pdf · Il Pattern MVC nei Framework di sviluppo per applicazioni

Il Pattern MVC nei Framework di sviluppo per applicazioni Web. Analisi e comparazione di SPRING MVC Framework e ASP.NET MVC Framework.Facoltà di Ingegneria

Corso di Studi in Ingegneria Informatica

FrameworkMondo Web veloce e in continuo sviluppo

Sempre più applicazioni Web di medie e grandi dimensioni con accesso a basi di datiNecessità di produrre software in modo efficace ed efficiente, di qualità e con costi contenuti

Progettisti e sviluppatori si rivolgono ai Framework di sviluppo che adottano soluzioni già testate: design patternFramework: strutture di supporto su cui un software può essere progettato e sviluppato

Page 4: Il Pattern MVC nei Framework di sviluppo per applicazioni ...wpage.unina.it/ptramont/Download/Tesi/Francesco Maisto - Slide.pdf · Il Pattern MVC nei Framework di sviluppo per applicazioni

Il Pattern MVC nei Framework di sviluppo per applicazioni Web. Analisi e comparazione di SPRING MVC Framework e ASP.NET MVC Framework.Facoltà di Ingegneria

Corso di Studi in Ingegneria Informatica

Pattern Model-View-ControllerArchitectural Pattern, tilizzato per dividere l’applicazione in 3 componenti con ruoli e funzionalità ben distinte

CONTROLLER

•Implementa la Logica di Controllo•Ha la responsabilità di gestire le richieste in ingresso•Interagisce con il Model e passa i dati alla View che li visualizza•Delega una View di risposta all’input

MODEL

•Implementa la Logica di Business•Fornisce i metodi per accedere ai dati utili dell’applicazione•Ha la responsabilità di gestione del database•Incapsula la tecnologia di accesso ai dati

VIEW

•Implementa la logica di presentazione•Visualizza i dati forniti dal Model•Ha la responsabilità di interagire con gli utenti•Permette al Controller di selezionare la View

Page 5: Il Pattern MVC nei Framework di sviluppo per applicazioni ...wpage.unina.it/ptramont/Download/Tesi/Francesco Maisto - Slide.pdf · Il Pattern MVC nei Framework di sviluppo per applicazioni

Il Pattern MVC nei Framework di sviluppo per applicazioni Web. Analisi e comparazione di SPRING MVC Framework e ASP.NET MVC Framework.Facoltà di Ingegneria

Corso di Studi in Ingegneria Informatica

Framework MVC

Due tra i framework che hanno riscosso maggior successo: SPRING MVC Framework ASP.NET MVC Framework

SPRING MVC: tecnologia Web basata su piattaforma JavaASP.NET MVC: tecnologia Web basata su piattaforma .NET

Entrambi Open Source

Page 6: Il Pattern MVC nei Framework di sviluppo per applicazioni ...wpage.unina.it/ptramont/Download/Tesi/Francesco Maisto - Slide.pdf · Il Pattern MVC nei Framework di sviluppo per applicazioni

Il Pattern MVC nei Framework di sviluppo per applicazioni Web. Analisi e comparazione di SPRING MVC Framework e ASP.NET MVC Framework.Facoltà di Ingegneria

Corso di Studi in Ingegneria Informatica

DispatcherServlet

Rappresenta una delle soluzioni MVC più adottate nel mondo Java

È realizzato con il pattern FrontController, implementato dalla DispatcherServlet: tutte le richieste sono filtrate dalla Servelt che ne gestisce il flusso esecutivo delegando i componenti Controller e View .

Fa un uso estensivo della Dependency Injection (DI), tecnica di Inversion Of Controlintrodotta da Martin Fowler: implementata con metodi Setter e dipendenze delle classi definite in un file di configurazione XML.

Page 7: Il Pattern MVC nei Framework di sviluppo per applicazioni ...wpage.unina.it/ptramont/Download/Tesi/Francesco Maisto - Slide.pdf · Il Pattern MVC nei Framework di sviluppo per applicazioni

Il Pattern MVC nei Framework di sviluppo per applicazioni Web. Analisi e comparazione di SPRING MVC Framework e ASP.NET MVC Framework.Facoltà di Ingegneria

Corso di Studi in Ingegneria Informatica

Caso studio

Utente: localhost:8080/SpringApp

WelcomePage

index.jsp(web.xml)

list.htmFRONT

CONTROLLERDispatcherServlet

(web.xml)

Handler MappingDefaultAnnotationHandlerMapping

(dispatcher-servlet.xml)

ControllerInventarioController

(dispatcher-servlet.xml)

ModelAndView

ViewResolverInternalResourceViewResolver

(dispatcher-servlet.xml)Viewlist.jsp

(WEB-INF/jsp)

ServiceProdottoService

(ApplicationContex.xml)

getList()

Data/Repository(ApplicationContext.xml)

JDBCProdottoDAO

getListProdotti()DB

MySQL

1

2

3 4

5

Redirect Redirect6

78

Page 8: Il Pattern MVC nei Framework di sviluppo per applicazioni ...wpage.unina.it/ptramont/Download/Tesi/Francesco Maisto - Slide.pdf · Il Pattern MVC nei Framework di sviluppo per applicazioni

Il Pattern MVC nei Framework di sviluppo per applicazioni Web. Analisi e comparazione di SPRING MVC Framework e ASP.NET MVC Framework.Facoltà di Ingegneria

Corso di Studi in Ingegneria Informatica

ASP.NET Routing

Tecnologia di casa .NET, è una tecnologia emergente che sta andando affermandosi sempre di più nel mondo Microsoft

MVC è realizzato con il Pattern FrontController, implementato da un meccanismo di routing, chiamato ASP.NET Routing: tutte le richieste sono filtrate da un modulo HTTP. Delega per ogni richiesta l’action del Controller che ha il compito di gestirla.

Implementa il concetto di Convention Over Configuration

Utilizza la Dependency Injection (DI): è implementata con un metodo Constructor che prevede due costruttori in una classe. La dipendenza è definita nel primo costruttore.

Page 9: Il Pattern MVC nei Framework di sviluppo per applicazioni ...wpage.unina.it/ptramont/Download/Tesi/Francesco Maisto - Slide.pdf · Il Pattern MVC nei Framework di sviluppo per applicazioni

Il Pattern MVC nei Framework di sviluppo per applicazioni Web. Analisi e comparazione di SPRING MVC Framework e ASP.NET MVC Framework.Facoltà di Ingegneria

Corso di Studi in Ingegneria Informatica

Caso studio

Page 10: Il Pattern MVC nei Framework di sviluppo per applicazioni ...wpage.unina.it/ptramont/Download/Tesi/Francesco Maisto - Slide.pdf · Il Pattern MVC nei Framework di sviluppo per applicazioni

Il Pattern MVC nei Framework di sviluppo per applicazioni Web. Analisi e comparazione di SPRING MVC Framework e ASP.NET MVC Framework.Facoltà di Ingegneria

Corso di Studi in Ingegneria Informatica

Confronto

SPRING MVCUtilizza Front ControllerController: interagisce con Model e crea oggetto ModelAndView che restituisce alla DispatcherServlet. È la DS che delega la View.Utilizza la DI per rendere applicazioni Loosely CoupledModel: Composto da RepositoryLayer e Service Layer. Il Repository Layer è implementato con pattern DAO.

ASP.NET MVCUtilizza Front ControllerController: interagisce con Model e delega direttamente la View a cui passare il controllo.Utilizza la DI per rendere applicazioni Loosely CoupledModel: Composto da RepositoryLayer e Service Layer. Il Repository Layer è implementato con Repository Pattern.

Page 11: Il Pattern MVC nei Framework di sviluppo per applicazioni ...wpage.unina.it/ptramont/Download/Tesi/Francesco Maisto - Slide.pdf · Il Pattern MVC nei Framework di sviluppo per applicazioni

Il Pattern MVC nei Framework di sviluppo per applicazioni Web. Analisi e comparazione di SPRING MVC Framework e ASP.NET MVC Framework.Facoltà di Ingegneria

Corso di Studi in Ingegneria Informatica

Conclusioni

SPRING MVC e ASP.NET MVC risultano essere due valide alternative per lo sviluppo di applicazioni Web, con maggiore interesse verso quelle di medie e grandi dimensioniVantaggi:

Adatti allo sviluppo paralleloAlta manutenibilità: entramb i framework utilizzano la DI per rendereleapplicazioni Web Loosely Coupled. Il basso accoppiamento permette di modificare un componente o addirittura sostituirne la tecnologia senza dover apportare modifiche agli altri componenti.Gestione della complessità: all’aumentare della dimensione dell’applicazione la complessità di gestione resta pressoché costante dato che le modifiche sono distribuite nei tre componenti Model, View e Controller.

SvantaggiNon sono soluzioni adatte per applicazioni Web con alto grado di interazione con’utente.