MVC ArchiStruttura e quadro di riferimento con esempi
โก Riepilogo intelligente
Il modello Model-View-Controller (MVC) รจ un pattern architetturale che suddivide un'applicazione in tre componenti: Model, View e Controller, isolando la logica di business dal livello di presentazione per creare applicazioni web e desktop manutenibili e testabili utilizzando framework come Spring, Django e Laravel.

Cos'รจ il framework MVC?
Migliori Controller vista modello (MVC) framework รจ un pattern architettonico che separa un'applicazione in tre componenti logiche principali Model, View e Controller. Da qui l'abbreviazione MVC. Ogni componente dell'architettura รจ costruito per gestire un aspetto di sviluppo specifico di un'applicazione. MVC separa la logica aziendale e il livello di presentazione l'uno dall'altro. Era tradizionalmente utilizzato per le interfacce utente grafiche (GUI) desktop. Oggigiorno, l'architettura MVC nella tecnologia web รจ diventata popolare per la progettazione di applicazioni web e app mobili.
Storia di MVC
- L'architettura MVC รจ stata discussa per la prima volta nel 1979 da Trygve Reenskaug
- Il modello MVC รจ stato introdotto per la prima volta nel 1987 nel linguaggio di programmazione Smalltalk.
- MVC รจ stato accettato per la prima volta come concetto generale, in un articolo del 1988
- Negli ultimi tempi, il modello MVC รจ ampiamente utilizzato nelle moderne applicazioni web.
Caratteristiche di MVC
- Testabilitร facile e senza attriti. Framework altamente testabile, estensibile e collegabile
- Per progettare un'architettura di applicazione web utilizzando il modello MVC, offre il controllo completo sul tuo HTML e sul tuo URLs
- Sfrutta le funzionalitร esistenti fornite da ASP.NET, JSP, Django, ecc.
- Chiara separazione della logica: Modello, Vista, Controller. Separazione delle attivitร dell'applicazione, vale a dire logica aziendale, logica Ul e logica di input
- URL Routing ottimizzato per i motori di ricerca URLs. Potente URL-mappaping per comprensibile e ricercabile URLs
- Supporti per lo sviluppo guidato dai test (TDD)
MVC Architectura
Ora che i vantaggi sono chiari, ecco l'architettura dettagliata del framework MVC:

Tre importanti componenti MVC sono:
- Modello: include tutti i dati e la relativa logica
- Visualizza: presenta i dati all'utente o gestisce l'interazione dell'utente
- Controller: un'interfaccia tra i componenti Modello e Vista
Analizziamo nel dettaglio ciascuno di questi componenti:
Visualizzare
Una View รจ quella parte dell'applicazione che rappresenta la presentazione dei dati.
Le viste vengono create a partire dai dati raccolti dal modello. Una vista richiede al modello di fornire informazioni per poter presentare all'utente l'output desiderato.
La vista rappresenta anche i dati di grafici, diagrammi e tabelle. Ad esempio, qualsiasi vista cliente includerร tutti i componenti UI come caselle di testo, menu a discesa, ecc.
Controller
Il Controller รจ quella parte dell'applicazione che gestisce l'interazione con l'utente. Il controller interpreta gli input del mouse e della tastiera provenienti dall'utente, informando il modello e la vista affinchรฉ si modifichino di conseguenza.
Un controller invia comandi al modello per aggiornarne lo stato (ad esempio, salvando un documento specifico). Il controller invia anche comandi alla vista associata per modificarne la presentazione (ad esempio, scorrendo un documento particolare).
Modello
Il componente del modello memorizza i dati e la relativa logica. Rappresenta i dati trasferiti tra i componenti del controller o qualsiasi altra logica aziendale correlata. Ad esempio, un oggetto Controller recupererร le informazioni sul cliente dal database. Manipola i dati e li invia al database o li utilizza per visualizzare gli stessi dati.
Risponde alle richieste delle viste e anche alle istruzioni del controller per aggiornarsi. ร inoltre il livello piรน basso del pattern, responsabile della gestione dei dati.
Esempi MVC
Vediamo un esempio di Model View Controller dalla vita quotidiana:
esempio 1
- Supponiamo che tu vada in un ristorante. Non andrai in cucina a preparare il cibo, cosa che potresti sicuramente fare a casa tua. Invece, vai lรฌ e aspetti che arrivi il cameriere.
- Ora il cameriere viene da te e tu ordini il cibo. Il cameriere non sa chi sei e cosa vuoi, ha appena scritto i dettagli del tuo ordine di cibo.
- Poi il cameriere si sposta in cucina. In cucina, il cameriere non prepara il cibo.
- Il cuoco prepara il tuo cibo. Il cameriere riceve il tuo ordine insieme al numero del tuo tavolo.
- Cucina e poi prepara il cibo per te. Usa gli ingredienti per cucinare il cibo. Supponiamo che tu ordini un panino con verdure. Poi ha bisogno di pane, pomodoro, patate, peperoni, cipolla, pezzetti, formaggio, ecc., che prende dal frigorifero
- Cucina l'ultima consegna del cibo al cameriere. Ora รจ compito del cameriere spostare questo cibo fuori dalla cucina.
- Ora il cameriere sa quale cibo hai ordinato e come viene servito.
In questo esempio di architettura MVC,
View= You Waiter= Controller Cook= Model Refrigerator= Data
Vediamo un altro esempio di modello MVC,
esempio 2
Il meccanismo di guida dell'auto รจ un altro esempio del modello MVC.
- Ogni macchina รจ composta da tre parti principali.
- Vista: Interfaccia utente: (Leva del cambio, pannelli, volante, freno, ecc.)
- Meccanismo di controllo (motore)
- Modello - Stoccaggio (serbatoio benzina o diesel)
L'auto funziona dal motore e prende il carburante dal deposito, ma funziona solo utilizzando i dispositivi di interfaccia utente menzionati.
Framework Web MVC popolari
Ecco un elenco di alcuni framework MVC popolari:
- Ruby on Rails
- Django
- CakePHP
- Yii
- Cherry Py
- Primavera MVC
- Catalizzatori
- Rails
- Zend Framework
- CodeAccenditore
- laravel
- Alimenta PHP
- Symphony
Vantaggi di MVC: vantaggi principali
Ecco i principali vantaggi dell'utilizzo dell'architettura MVC:
- Facile manutenzione del codice, facile da estendere e far crescere
- Il componente del modello MVC puรฒ essere testato separatamente dall'utente
- Supporto piรน semplice per nuove tipologie di clienti
- Lo sviluppo dei vari componenti puรฒ essere eseguito parallelamente.
- Ti aiuta a evitare la complessitร dividendo un'applicazione in tre unitร . Modello, vista e controller
- Utilizza solo un modello Front Controller che elabora le richieste dell'applicazione Web tramite un singolo controller.
- Offre il miglior supporto per sviluppo basato su test
- Funziona bene per le app Web supportate da grandi team di web designer e sviluppatori.
- Garantisce una netta separazione delle responsabilitร (SoC).
- Ottimizzazione per i motori di ricerca (SEO).
- Tutte le classi e gli oggetti sono indipendenti l'uno dall'altro in modo da poterli testare separatamente.
- Il modello di progettazione MVC consente il raggruppamento logicoping di azioni correlate su un controller insieme.
Svantaggi dell'utilizzo di MVC
- Difficile da leggere, modificare, testare l'unitร e riutilizzare questo modello
- La navigazione del framework puรฒ a volte risultare complessa in quanto introduce nuovi livelli di astrazionetraczione che richiede agli utenti di adattarsi ai criteri di decomposizione di MVC.
- Nessun supporto di convalida formale
- Aumento della complessitร e dell'inefficienza dei dati
- La difficoltร di utilizzare MVC con l'interfaccia utente moderna
- ร necessario che piรน programmatori conducano la programmazione parallela.
- ร richiesta la conoscenza di piรน tecnologie.
- Manutenzione di molti codici nel Controller
3 livelli Architecnologia contro MVC Architectura
| Parametro | 3-Tier Architectura | MVC Architectura |
|---|---|---|
| Communication | Questo tipo di modello di architettura non comunica mai direttamente con il livello dati. | Tutti i livelli comunicano direttamente utilizzando la topologia triangolare. |
| Impiego | 3 livelli: ampiamente utilizzato nelle applicazioni Web in cui client, livelli dati e middleware vengono eseguiti su piattaforme fisicamente separate. | Generalmente utilizzato su applicazioni eseguite su una singola workstation grafica. |


