Cosa NON è MVC? (in un'app Web)

5

È facile trovare molte descrizioni di ciò che MVC è - per esempio qui , qui o in questo video .

Sono curioso, cosa NON è MVC?

o più precisamente - In un'app che utilizza MVC, qual è il resto diverso da MVC?

.

Vedo la tendenza a iniziare a spiegare MVC sotto forma di

Separa l'applicazione in tre parti [...]

Il che sembra suggerire che dovresti cercare di adattarti il più possibile (o tutto) alla progettazione in Modelli, Visualizza o Controller.

.

Eppure, è facile vedere che nella maggior parte delle esplosioni MVC è principalmente descritto come un progetto interfaccia utente . Come in questa situazione tratterò gli elementi non dell'interfaccia utente?

  • Devo piegare le definizioni di elementi non dell'interfaccia utente e cercare di capire se possono adattarsi al modello o al controller?
  • Esiste una descrizione separata nella progettazione MVC che riguarda elementi non dell'interfaccia utente?
  • Esiste una descrizione di come MVC interagisce con tali elementi? È tutto attraverso il modello? Tutto tramite Controller?

.

Ad esempio:

Mi chiedo come considero la parte della mia applicazione che viene utilizzata solo per monitorare la mia rete locale e archiviare le informazioni in un database. Non ha funzionalità relative all'interfaccia utente e il suo unico scopo è quello di riempire il database con informazioni relative ai file, che a loro volta vengono presentate all'utente attraverso l'interfaccia web.

    
posta Voy 05.11.2015 - 12:16
fonte

2 risposte

7

I'm wondering how do I treat the part of my application which is used only for monitoring my local network and storing the information in a database.

Diverse architetture implementano tale codice in modo diverso, ma in un'architettura a livelli, è necessario creare livelli, ad es. Livello DataAccess, Livello logica aziendale. etc ..

Il tuo modello ( ci sono diversi tipi di modelli ) interagirà con questi livelli come richiesto, tutto dipende dal tuo l'architettura di applicazioni o software davvero.

Do I bend definitions of non-UI elements and try to figure out whether they could fit to either Model or Controller ?

Direi che i tuoi "elementi non dell'interfaccia utente" sono in realtà la tua logica aziendale che deve essere inserita in Model, che quindi può interagire con diversi livelli, ad es. DB layer ecc.

Devo aggiungere la logica al mio controller

Ulterioriconsigli

EccoalcuniesempidiprogettisviluppatibasatisuDDDutilizzandoMVCealtretecnologiechepotrebberoaiutartiacapiremeglioquestoargomento,

EFMVC - ASP.NET MVC 4, Entity Framework 5 Code First e Windows Azure

App web di esempio per ASP.NET MVC 5, EF 6 Code First, AutoMapper, Autofac e TDD

    
risposta data 05.11.2015 - 12:28
fonte
1

Un'applicazione MVC è quella in cui esiste una decisione architettonica consapevole per separare i componenti della presentazione (solitamente attraverso l'interfaccia utente) che trattano tre problemi specifici:

  • Il modello, che rappresenta l'informazione che deve essere visualizzata, ma che è completamente indipendente dal modo in cui l'informazione è presentata.
  • La vista, che mostra le informazioni nel modello, ma che non ha idea di come è stato costruito il modello.
  • Il controller, che identifica il modello e la vista corretti per l'occasione e riunisce i due

In teoria, e spesso nella pratica, lo stesso modello può essere collegato a più viste: la vista appropriata a seconda dello scenario (ad esempio browser per cellulare o desktop o html vs json). E la stessa vista può essere utilizzata per visualizzare molti modelli diversi, a condizione che i modelli abbiano abbastanza in comune tra loro per essere utili.

Nelle applicazioni NOT MVC, questi tre sistemi non sono tenuti separati l'uno dall'altro (comuni nelle vecchie applicazioni) o sono suddivisi in diversi modi.

L'applicazione MVC può avere anche molti altri componenti. Questi componenti possono essere utilizzati nella costruzione dei modelli, nell'aggiornamento del livello dati, nel rafforzamento della sicurezza, nella registrazione e in qualsiasi altra applicazione.

    
risposta data 05.11.2015 - 12:35
fonte