Dovendo creare un nuovo progetto, e dovendolo realizzare nel migliore dei modi ( x cui codice manutenibile, applicazione veloce e sicura) è meglio impostare l'applicazione sul modello 3-layer ( u.i./ business logic/ data access) o MVC (model/viewer/controller)?
A me verrebbe + naturale utilizzare la 3-layer, ma forse è perchè ho sempre utilizzato questa come riferimento. Quali sono i vantaggi di una rispetto all'altra? o è solo una scelta sitlistica? Leggendo qau e là non ho trovato una motivazione "valida" che mi facesse scegliere un modello piuttosto che l'altro...
Cosa dovrebeb influenzare la scelta, (oltre ovviamente ai consigli di quelli che qui nel forum ne sanno di più?)

Grazie
22 messaggi dal 01 giugno 2005
In realtà, l'utilizzo di un'architettura non esclude l'altra. Infatti puoi tranquillamente implementarle entrambe perchè sono complementari, dato che MVC si colloca nello strato u.i..
Per farti un esempio di un tipico progetto MVC, i layers di BL e DA possono essere inclusi nella cartella Model, mentre invece ciò che avrai nelle cartelle Views e Controllers saranno equivalenti al layer u.i.
A presto
cardy_web wrote:
Dovendo creare un nuovo progetto, e dovendolo realizzare nel migliore dei modi ( x cui codice manutenibile, applicazione veloce e sicura) è meglio impostare l'applicazione sul modello 3-layer ( u.i./ business logic/ data access) o MVC (model/viewer/controller)?

MVC e 3-tier non si escluno e non sono la stessa cosa (cioè, non soddisfano lo stesso problema). 3-tier è una scelta architetturale, MVC di design. MVC impatta solo sulla GUI, non su tutto quello che c'è sotto. e c'è una bella differenza tra layer e tier, a voler essere pignoli.
.

Daniele Bochicchio | ASPItalia.com | Libri
Chief Operating Officer@iCubed
Microsoft Regional Director & MVP
dgmassimiliano ha scritto:
Spero possa aiutarti anche questo:
http://blogs.aspitalia.com/matteo/post2318/3Tier-3Layer-MVC-Cosa.aspx

Ciao, avevo già letto questo come altri post, ma non sono riuscito a capire a fondo le differenze, o i vantaggi di una rispetto all'altra...

@Daniele Bochicchio
Quando dici che impatta solo sulla GUI cosa intendi precisamente?

Faccio il seguente esempio, implementato secondo la logica 3-layer:

UI (rappresentazione grafica della classe)
BL (classi che mi rappresentano gli oggetti)
DAL (metodi che m restituiscono i risultati delle query al DB)

Ho il mio controllo personalizzato (UI). Questo quando effettua il rendering il controllo prende delle informazioni dall'oggetto della business logic che lo rappresenta, il quale a sua volta è stato creato utilizzando i metodi esposti dal D.A.L.(scusate il gioco di parole). Il B.L. poi controlla anche se è necessario aggiornare i dati che lo costituiscono oppure restituire i dati alla UI.

UI---->BL--->DAL
|<- _ _ _|
(se i dati nn sono cambiati)

UI---->BL--->DAL
|<-----BL<----|
(se i dati sono cambiati)

Fino a qui mi sembra di aver fatto bene.
Come cambierebbe quindi la situazione con MVC? (Ti chiedo cortesemente di utilizzare lo stesso esempio di sopra se possibile).

Modificato da cardy_web il 27 gennaio 2010 13.31 -
cardy_web ha scritto:
Come cambierebbe quindi la situazione con MVC?


In nulla, perchè la tua domanda è mal posta

MVC è un'architettura per il layer di presentazione, quindi sta *dentro* al tuo UI e non copre BL e DAL.

Per capirci meglio... quello che hai descritto va bene tanto in webforms che in MVC:

In webforms la pagina recupera il dato dal BL, lo associa ad un controllo magari come datasource (o valorizzandone qualche proprietà) e poi al post lo rimanda al BL che deciderà cosa fare e blablabl.

In MVC il controller recupera quel dato dal BL, popola il Model, seleziona la view e lo visualizza, poi al post recupera il dato dalla view e lo rimanda al BL e blablabla.

Più chiaro ora?

Ciao!
m.
cardy_web wrote:
Quando dici che impatta solo sulla GUI cosa intendi precisamente?


quello che c'è scritto e che ha spiegato bene marco. cioè che MVC ti cambia solo il modo in cui organizzi la User Interface. nè più, nè meno.

Daniele Bochicchio | ASPItalia.com | Libri
Chief Operating Officer@iCubed
Microsoft Regional Director & MVP
già adesso ho capito qualcosa di più... ma sostanzialmente il vantaggio qual'è nell'implementare anche MVC? di solito se si va a creare qualcosa "in più" è perchè porta a un qualche vantaggio.... visto che in pratica cambia solo il modo di organizzare la UI, in che situazione mi conviene utilizzarlo? ( chiedo il solito esempio pratico, cosi forse capirò una volta per tutte  )

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.