Prima di tutto, penso che il software ed i modelli hanno la tendenza a complicare le cose. Come suggerisce il nome ASP, l'idea principale del framework è Model-View-Controller (MVC). Potresti essere in grado di mettere molte cose tra questi componenti, inclusi DB, servizi, API, ecc. Tuttavia, il concetto principale del modello Model-View-Controller è piuttosto semplice: separare queste funzionalità in moduli in modo che il progetto possa essere più facile da mantenere.
MVC può essere applicato a QUALSIASI programmazione o script che si faccia. Anche per uno script di shell MVC potrebbe essere utile. Ecco alcuni esempi di ciascuno:
- Visualizza - Ecco come l'utente interagisce. Potrebbe essere una pagina Web, Windows Form o un'interfaccia della riga di comando.
- Controller - Il cervello del programma, dovrebbe essere a conoscenza di tutto, ma dovrebbe essere piuttosto semplice. Prende fondamentalmente messaggi o eventi dalla vista e/o modello e decide su cosa fare. I buoni controller sono fondamentalmente un dispatcher di eventi. A seconda degli eventi, chiama i metodi view o model.In ASP MVC, il controller è quello che fornisce ActionResults per la vista e interagisce con il modello.
- Modello: questo è il punto in cui si trovano i dati. Questo potrebbe essere un DB, un file system, una sessione Web o una memoria.
Ora la parte buona. Al Controller non importa come la Vista gestisca l'interazione con l'utente. Potrebbe essere un'interfaccia a riga di comando o un modulo web. Il controller non sa come vengono memorizzati i dati, non importa se si tratta di un DB o di un file. Richiede solo dati e lo passa alla vista. Non è del suo business sapere come la vista sta ricevendo gli input, o il modello i dati.
Quindi la domanda, perché diavolo vogliamo complicare le cose con questo schema? Bene, immagina di avere un'applicazione MVC usando un DB MySQL e sappia che vuoi usare SQL Server. Quale modulo dovresti cambiare? Ovviamente il modello è quello colpito. Il controller e la vista non dovrebbero avere alcun impatto importante. Ora, immagina di avere un'altra applicazione MVC usando Windows Forms e ora vuoi cambiarla in Web Forms? Beh, in pratica, la Vista è quella che sarà interessata (e alcune parti del controller), ma il tuo Modello dovrebbe essere lo stesso.
In conclusione, MVC è un ottimo modello e dovrebbe essere utilizzato di più. Tuttavia, penso che ci siano alcuni progetti che non sono adatti per MVC a causa della sua semplicità. Sarà come costruire un laser per uccidere le mosche. Naturalmente li ucciderai, ma lo sforzo non è degno di tutti i casi.
il tipo di domanda che merita una risposta decente, approfondita .. sarà interessante vedere cosa ottieni :) – flesh
Penso che potresti sostituire "qualsiasi ORM" per EF/L2S. –
La risposta di J.W. non è male. Sarebbe bello avere qualche altra risposta solo per vedere le esperienze/le prospettive di persone diverse su di esso. Vorrebbe anche un po 'di più su come interagiscono tra loro. Si prega di postare se avete ulteriori informazioni su questo! – Matt