Domanda

Nota che non sto chiedendo quale scegliere (MVC o MVP), ma piuttosto se uno dei due debba essere usato per un'applicazione web.

Mi rendo conto che potrebbe essere troppo lavoro per convertire un'applicazione precedente dalla sua progettazione attuale a un modello MVC o MVP. Tuttavia, che dire di una nuova app? Sembra che questi siano i modelli di architettura più popolari, quindi dovrebbe essere scelto uno di questi? In caso contrario, quali altri modelli ci sono?

Se non si ha familiarità con MVC e / o MVP, una buona domanda da verificare è " Cosa sono MVP e MVC e qual è la differenza? " . Ha molte buone risposte, compresi i collegamenti a vari siti Web che si rompono ciascuno.

È stato utile?

Soluzione

MVP / MVC funziona bene nelle applicazioni Web perché la combinazione di verbo HTTP + URL è un ottimo modo per determinare quale azione intraprendere. Ci sono ragioni per non usarlo, ad esempio se il tuo team ha molta esperienza con un altro framework, ma in generale consiglierei un framework MVP / MVC. La tua domanda verrà terminata più rapidamente con una qualità superiore.

Altri suggerimenti

Entrambe sono ottime opzioni.

Preferirei MVC perché ha una adozione più ampia ed è più facile da capire e utilizzare per gli sviluppatori frontend (HTML / CSS).

Inoltre, dato il numero di framework che adottano il modello MVC, i cambiamenti stanno parlando con i tuoi colleghi in MVC che parlerai una lingua ben nota.

Ho inviato la seguente risposta per un'altra domanda, sebbene possa essere più appropriato qui .

MVC è utile per il semplice scripting lato server. In MVC gli sviluppatori cercano sempre di mantenere il controller molto snello. Principalmente il controller è solo per selezionare il modello appropriato e riflettere sulla vista. Ma nelle applicazioni web di oggi la parte View è cambiata radicalmente ed è diventata abbastanza complessa da produrre un controller grande, grasso e disordinato. Quindi ora abbiamo bisogno di un nuovo posto per mettere la complessa logica di controllo dell'interfaccia utente. Qui arriva la P di MVP che è il presentatore. Quindi i presentatori sono responsabili del controllo della logica per un particolare componente dell'interfaccia utente. Non preoccuparti, il controller è ancora qui, denominato Controller applicazione . Che alla fine è responsabile del passaggio tra componenti dell'applicazione relativamente più grandi. Quindi MVP si può anche dire MVPC (!!) . A proposito, questo era il mio modo di comprendere MVP e ovviamente nessuna regola di base.

Quindi tendo a MVP per app Web complesse.

La tua domanda era " dovrei usare uno di questi modelli di design " ;.

Devo dire che dipende molto dall'ambito del tuo progetto. Su un progetto molto ampio che ha interdipendenze con altri sistemi in una grande organizzazione con un budget elevato, direi che vale sicuramente la pena prendere in considerazione.

Penso che questi schemi siano spesso sovrautilizzati su progetti più piccoli in cui potrebbero aggiungere complessità e costi non necessari.

Il punto principale dell'accoppiamento libero è che è possibile modificare il DB o l'interfaccia utente in un secondo momento o riutilizzare la logica aziendale. Spesso, questo non succede mai. Devi capire che uno di questi schemi richiederà più tempo per implementare e complicare un po 'il codice. Quindi, consiglio vivamente di pensarci davvero e di valutare le tue opzioni. Spesso puoi offrire una soluzione migliore più velocemente usando un'architettura molto semplice che fa il lavoro e riduce la complessità!

Dipende dal framework che stai usando. Usa solo ciò che supporta. La maggior parte dei framework Web che ho visto usano il modello del front controller e lo chiamano MVC o MVP.

Penso che dovresti. Sono più difficili da implementare, soprattutto nel mondo della SM perché hanno fatto di tutto per spingere i moduli Web e rendere più semplice la creazione di applicazioni Web.
Usandoli stai programmando in modo semplice e ti senti come se avessi fatto molto lavoro. Ma sono più lenti e più difficili da mantenere dopo che il tuo sito è diventato più grande.
L'uso di MVC e MVP consente di separare modello (classi di base che rappresentano il dominio con cui si sta lavorando), controller e viste. La cosa migliore è che puoi riutilizzare il tuo modello in altre applicazioni come applicazioni mobili o app di Windows. Hanno quindi più cose in comune di un semplice database, quindi devi scrivere meno codice. Devi solo scrivere controller e viste.
Sono nuovo a questo, ma vedo vantaggi perché quando ho dovuto cambiare qualcosa in un posto, qualcos'altro si è schiantato altrove (quindi devi anche prendere in considerazione l'accoppiamento libero e scrivere test unitari). Scrivere test è impossibile in Web Forms.

Tuttavia, se stai creando un'applicazione per rappresentare una persona o un'azienda, in cui non esiste una logica aziendale sul Web e devi farlo rapidamente, i moduli Web sono utili. E anche per la creazione di prototipi in modo da poter mostrare quale applicazione sarà in grado di eseguire al termine.

Mi piacciono entrambi i modelli. La mia migliore pratica è quella di scegliere un modello, che è sempre meglio di NESSUN modello.

Ho sviluppato molte applicazioni su entrambi i modelli, la mia sensazione personale è che quando sei uno sviluppatore RAD e non sei così bravo con CSS & amp; javascript (Principalmente sviluppatori di winform che vogliono creare una webapp, senza offesa ;-)) Dovresti usare il pattern MVP perché è molto facile da usare con i progetti di applicazioni Web.

Ma quando hai saputo assegnare CSS e amp; javascript quindi dovresti considerare il modello ASP.NET MVC.

Preferirei il modello MVC, solo perché l'accoppiamento lento. Esiste una chiara separazione tra modello, vista e controller e, attraverso l'isolamento, è più adatto per lo sviluppo guidato dai test o solo per i test unitari.

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