Domanda

Ho trovato Quali sono mvp e mvc e qual è la differenza ma in realtà non rispondere a questa domanda.

Recentemente ho iniziato con MVC, perché è parte del quadro che a me e al mio lavoro-partner intenzione di utilizzare.L'abbiamo scelto perché sembrava facile e separato processo di visualizzazione, ci sono vantaggi oltre a questo che noi non conosciamo e che potrebbero essere mancanti su?

Pro

  1. La visualizzazione e l'Elaborazione sono separati


Contro

  1. Nessuno finora
È stato utile?

Soluzione

MVC è la separazione di model, vottica e controller — niente di più, niente di meno.Si tratta semplicemente di un paradigma;un ideale che si dovrebbe avere in mente durante la progettazione di classi.Evitare di mischiare codice da tre categorie in un'unica classe.

Per esempio, mentre una griglia vista ovviamente, dovrebbe presentare i dati in una volta, non dovrebbe avere il codice su cui si desidera recuperare i dati da, o che cosa la sua struttura nativa (il modello è come.Allo stesso modo, mentre può avere una funzione per sommare una colonna, l'effettiva somma dovrebbe succedere in controller.

Un "salva file" finestra di dialogovista in definitiva passa il sentiero, una volta raccolte dall'utente per le controller, che poi chiede l' modello per i dati, e non l'effettivo risparmio.

Questa separazione di responsabilità consente la flessibilità verso il basso la strada.Per esempio, perché la vista non interessa il modello sottostante, il supporto di più formati di file che è più facile:basta aggiungere un modello per ogni sottoclasse.

Altri suggerimenti

La separazione delle preoccupazioni è biggy.

Essere in grado di prendere in giro questi componenti, salvo rende il codice più facile di ri-uso e indipendentemente test.Se in realtà non si sa che cosa MVC è, essere attenti a cercare di capire le opinioni della gente, come c'è ancora qualche contesa su ciò che il "Modello" (se si tratta di business objects/Dataset/Datatable o se rappresenta il sottostante livello di servizio).

Ho visto tutti i tipi di implementazioni che si chiamano MVC, ma non sono esattamente e come i commenti Jeff articolo mostra MVC è un contenzioso punto che non credo che gli sviluppatori saranno mai pienamente d'accordo su.

Una buona partita di tutti i diversi MVC tipi è disponibile qui.

Jeff ha un post su di esso, altrimenti ho trovato alcuni documenti utili sul sito web di Apple, nel Cacao tutorial (questo per fare un esempio).

Penso che un altro vantaggio di utilizzare il pattern MVC è che apre le porte ad altri approcci il design, come MVP/Relatore primo e tante altre MV* modelli.

Senza questa fondamentale segregazione del design "componenti" l'adozione di queste tecniche sarebbe molto più difficile.

Penso che aiuta a rendere il vostro codice ancora più basata su interfaccia..Non solo all'interno del singolo progetto, ma si può quasi iniziare a sviluppare comune "vista", il che significa che è possibile modello molto di più del "noioso" codice utilizzato nelle applicazioni.Per esempio, un abstract "visualizzazione dati" che prende semplicemente un po ' di dati, e si getta in una comune griglia di layout.

Edit:

Se non ricordo male, questo è un buon podcast su MV* modelli di (ascoltato un po ' di tempo fa!)

Uno con cui posso pensare è che se hai bisogno di un accesso rapido ai dati in vostro punto di vista (per esempio, i giochi di animazione di dati come le ossa posizioni). È molto inefficiente per mantenere uno strato di separazione in questo caso.

In caso contrario, per la maggior parte delle altre applicazioni, che sono sempre basati su dati di grafica guidato, sembra di essere in un modo logico per unità di interfaccia utente.

Se si seguono le stackoverflow podcast potete ascoltare Jeff (e Geoff?) discutere la sua grandezza. http://blog.stackoverflow.com/2008/08/podcast-17/.Ma ricordate che l'uso di questi strati separati significa che le cose sono più facili in futuro-e più difficile ora.E livelli può rendere le cose più lente.E non si può bisogno di loro.Ma non lasciare che ti impedisca di apprendimento che cosa è--quando un edificio grande, robusto, longevo, sistemi, è inestimabile.

Si separa il Modello e la Vista controllato da un Controller, Per quanto il Modello è interessato, i Modelli a seguire OO architettura, i futuri miglioramenti e di manutenzione della base di codice dovrebbe essere molto facile e il codice di base dovrebbe essere riutilizzabile.

Stesso modello può avere qualsiasi no.di vista e.g) le stesse informazioni possono essere visualizzate in diverse visualizzazioni grafiche.Stessa vista possono essere diversi no.di modelli e.g) diversi dettagliate possono essere visualizzati come un unico grafico dire come un grafico a barre.Questo è ciò che è ri-usabilità di Visualizzare e Modello.

Miglioramenti in vista e non, a supporto di nuove tecnologie per la costruzione, la vista può essere implementato facilmente.

Ragazzo che sta lavorando in vista della dose non è necessario conoscere il Modello sottostante il codice di base e per la sua architettura, viceversa per il modello.

MVC è solo un generale modello di progettazione che, nel contesto di magra di sviluppo di applicazioni web, rende facile per gli sviluppatori di mantenere il markup HTML in un'app strato di presentazione (view) separati da metodi di ricevere e gestire le richieste dei client (il controller) e le rappresentazioni dei dati che vengono restituiti all'interno della vista (i modelli).È interamente circa la separazione delle preoccupazioni, che è talmente semplice mantenere aggiornati i codice che serve uno scopo funzionale (ad es.gestire le richieste client) sequestrato dal codice che serve tutto un altro scopo funzionale (ad es.rappresentazione dei dati).

È lo stesso principio per cui chi ha speso più di 5 min cercando di costruire un sito web in grado di apprezzare il necessario per mantenere il vostro markup HTML, JavaScript e CSS in un file separato:Se è solo il dump tutto il codice in un unico file, si finisce con gli spaghetti, praticamente, non modificabile in seguito.

Dal momento che hai chiesto "per eventuali "contro": Io non sono autorità di software di progettazione dell'architettura, ma in base alla mia esperienza nello sviluppo in MVC, penso che sia anche importante sottolineare che, a seguito di una rigorosa, senza fronzoli, MVC design pattern è più utile per la 1) leggero applicazioni web, o 2) il livello di interfaccia utente di una grande impresa app.Sono sorpreso di questa specifica non è parlato di più, perché MVC non contiene definizioni esplicite per la tua logica di business, i modelli di dominio, o davvero nulla a livello di accesso ai dati della tua app.Quando ho iniziato a sviluppare in ASP.NET MVC (es.prima ho conosciuto altre architetture software, anche l'esistenza), finirei con molto gonfio controller o anche visualizzare i modelli in pieno zeppo di logica di business che, se avessi lavorato su applicazioni enterprise, avrebbero reso difficile per gli altri sviluppatori che non avevano familiarità con il mio codice per modificare (es.più di spaghetti).

Uno dei principali vantaggi di MVC che non è detto che il MVC offre un rilassante url che consente di SEO.Quando il nome di Controller e di Azioni con saggezza, essa rende più facile per i motori di ricerca per trovare il vostro sito solo in caso di dare un'occhiata al tuo sito Url.Per esempio, si dispone di un auto vendita sito web e una pagina che visualizza disponibile Lamborghini Veneno auto, invece di avere www.MyCarSale.com/product/6548 consultando la pagina si può scegliere www.MyCarSale.com/SportCar/Lamborghini-Veneno url SEO scopo.

Qui è una buona risposta a MVC Vantaggi e qui è un articolo Come creare un SEO friendly Url.

Vantaggio principale di architettura MVC è differenziare i livelli di un progetto di Modello,View e Controller per il Riutilizzo di codice, di facile manutenzione codice e manutenzione.La cosa migliore è che lo sviluppatore si sente bene aggiungere un po ' di codice tra il progetto di manutenzione.

Qui potete vedere un po ' più di punti I principali Vantaggi di Architettura MVC.

![architettura mvc][1]

Model–view–controller (MVC) è un software di architettura modello per l'implementazione di interfacce utente.Divide un dato applicazione software in tre parti interconnesse, in modo da separare le rappresentazioni interne di informazioni dai modi in cui i dati vengono presentati o accettati dall'utente.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top