Come distinguere correttamente tra MVC e tre livelli?

2

Molti framework webapp, ad es. Spring, si definiscono framework MVC, ma come è fatta la distinzione tra MVC e three-tier ? Sembra che alcuni framework si chiamino framework MVC ma sono davvero framework a tre livelli, o come etichettiamo correttamente quale è quale?

    
posta Niklas Rosencrantz 14.02.2014 - 14:36
fonte

4 risposte

0

Le applicazioni a 3 livelli sono applicazioni scritte in 3 livelli separati: il livello di presentazione, il livello della logica aziendale e il livello di accesso ai dati.

MVC è un pattern a livello di presentazione che separa Model (dati), View (schermo) e Controller (input).

    
risposta data 25.04.2017 - 12:06
fonte
0

L'architettura a più livelli di solito ha ogni livello separato dalla rete. OSSIA il livello di presentazione si trova su alcuni server Web, quindi si parla di back-end dei server di app sulla rete per la business logic, quindi si parla di un server di database, di nuovo sulla rete, e forse l'app server chiama anche alcuni servizi remoti (per esempio Authorize.net per l'elaborazione dei pagamenti).

MVC è un modello di programmazione in cui diverse parti del codice sono responsabili della rappresentazione del modello, della vista e del controller in alcune applicazioni. Queste due cose sono correlate perché, ad esempio, il livello Model può avere un'implementazione interna che chiama un database per l'archiviazione e il recupero dei dati. Il controller può risiedere sul server web e chiamare in remoto i server delle applicazioni per recuperare i dati. MVC riassume i dettagli di come viene implementata l'architettura di un'app.

N-tier si riferisce semplicemente alla struttura fisica di un'implementazione. Questi due sono a volte confusi perché un design MVC viene spesso implementato utilizzando un'architettura N-tier.

    
risposta data 14.02.2014 - 14:57
fonte
0

MVC è un approccio a tre livelli (in quanto opaco a tre livelli), in cui logica di presentazione, logica aziendale e logica di persistenza sono logicamente separate per ottenere semplicità e basso accoppiamento.

Il three-tier fa un passo avanti perché ogni livello viene messo anche in server specializzati (livello fisico).

MVC e l'architettura a tre livelli non si escludono a vicenda.

    
risposta data 14.02.2014 - 18:46
fonte
0

Entrambi i framework separano la logica di presentazione da Business Logic, tuttavia la differenza sta nel modo in cui viene raggiunta tale separazione. Con 3 livelli, tendo a pensare agli strati seduti uno sopra l'altro. Con MVC, i componenti siedono fianco a fianco.

Con MVC, il controller è la chiave di volta dell'architettura, mentre con il livello n è la vista / l'interfaccia utente. Con un'app MVC chiami un'azione nel controller, che può o meno eseguire una visualizzazione. Con un'app a 3 livelli devi passare attraverso l'interfaccia utente.

Uno degli svantaggi del sistema n-tier è che la logica aziendale può sanguinare nel livello dati o nel livello di presentazione, con MVC, penso, è molto più facile mantenere un'adeguata separazione delle preoccupazioni. Questa però è la mia esperienza e preferenza.

Come altri hanno affermato che MVC e n-tier non si escludono a vicenda. Il back-end della maggior parte dei siti MVC su cui ho lavorato sono di livello superiore. I controllori chiamano un servizio, che a sua volta chiama un repository.

    
risposta data 14.02.2014 - 15:52
fonte

Leggi altre domande sui tag