2008-11-21 10 views
7

Ultimamente ho notato parecchie chiacchiere su asp.net MVC, ma non ho trovato una descrizione chiara o convincente di quando, dove o perché volessi usarlo su WebForms.Quando e perché dovrei prendere in considerazione asp.net MVC?

Diciamo che volevo creare una piccola applicazione web che consenta a una persona di pubblicizzare alcuni articoli online. Il sito avrà 4 casi d'uso:

  • Cerca annunci
  • Visualizza annunci
  • Visualizza Articolo
  • Inserire un annuncio

Supponiamo:

  • Sono non particolarmente interessato a unità di test del mio controller. La pagina renderà correttamente l'elenco degli elementi, o non lo farà.
  • Sono interessato a più controllo sul codice HTML.
  • Non sono interessato all'utilizzo dell'ultima tecnologia buzz solo per il gusto di farlo.
  • Sono interessato a utilizzare lo strumento più adatto per il lavoro in termini di produttività, prestazioni, manutenibilità & semplicità della soluzione finale.
  • Non voglio dover lavorare su un po 'di sfumature per ottenere qualcosa di semplice da lavorare.

Quindi, le mie domande sono quindi:

  • Quali sono le differenze fondamentali tra i due modelli?
  • In quale scenario è migliore l'uno dell'altro?
  • Quali sono i trucchi con asp.net MVC (sono a conoscenza dei trucchi con WebForms)
  • Per la nostra app di esempio, cosa otterrei utilizzando asp.net MVC anziché WebForms?
  • Per la nostra app di esempio, cosa dovrei perdere usando asp.net MVC anziché WebForms?
  • È possibile combinare e abbinare i modelli all'interno della stessa piccola applicazione?

Grazie a chiunque spende il tempo per fornire una risposta.

risposta

10
  • Quali sono le differenze fondamentali tra i due modelli?

WebForms cercano di imitare lo sviluppo WinForms, consentendo di riutilizzare un sacco di controlli pre-fatti, e fingendo stato dell'applicazione web attraverso il meccanismo _VIEWSTATE nascosta.

MVC è un modello progettato per aiutare a separare i dati (modello), business logic (controller) e presentazione (vista). Aderisce maggiormente alla vera natura del web: URL RESTful, apolidi.

  • In quale scenario è l'uno migliore dell'altro?

A mio parere, per un'applicazione intranet fare un utilizzo intenso di controlli, WebForms possono essere utili a ridurre i tempi di sviluppo, perché grazie al progettista è possibile creare l'interfaccia utente molto rapidamente e lasciare che il quadro di gestire le app di stato automaticamente.

Per qualsiasi altro progetto, in particolare un sito Web pubblico, anche di piccole dimensioni, penso che MVC sia la strada da percorrere.

  • Quali sono i trucchi con asp.net MVC (io sono a conoscenza dei trucchi con WebForms)

direi che v'è una certa curva di apprendimento per comprendere appieno il pattern MVC e il suo potere. Inoltre, poiché il framework è ancora in BETA, ci si può aspettare che l'API subisca alcune modifiche minori prima del rilascio.

Poiché JavaScript non è nascosto da voi in MVC, sarebbe anche necessario del tempo per imparare se non si ha familiarità con esso. jQuery semplifica enormemente questo però.

  • Per la nostra applicazione di esempio, che cosa dovrei guadagnare utilizzando asp.net MVC invece di WebForms?

Faresti ottenere un migliore controllo markup HTML e Javascript comportamento, una separazione più pulita delle preoccupazioni e qualche base di codice facilmente testabili (anche se non sembrano interessati a unità di test esso).

  • Per la nostra applicazione di esempio, cosa avrei perso utilizzando asp.net MVC invece di WebForms?

che ci si perde il 'drag and drop' modo rapido per costruire le pagine e la gestione dello stato dell'applicazione.

  • è fattibile per mescolare e modelli partita all'interno della stessa piccola applicazione?

In un certo senso, sì, sembra.

Mi consiglia di guardare this talk di Phil Haack, che offre una buona panoramica del framework e invita Jeff Atwood a parlare di come ha creato StackOverflow con esso.

Spiega come SO sta usando alcuni controlli WebForm per CAPTCHA che si rendono visibili nella vista.

+0

Ottima risposta !! –

2
  1. La più grande differenza tra ASPNET MVC ed è WebForms è il ciclo di vita di una pagina, senza postback non necessari (inutili), codifica pulita, enz.
  2. Non ci sono regole per quello
  3. ???
  4. REST-piena sito web, separazione della logica
  5. supporto della fase di progettazione, non è possibile utilizzare WebControls di terze parti
  6. Si prega di non mescolare insieme.Se davvero si vuole utilizzare il modello WebForms è possibile utilizzare il modello MVP, ha scritto articoli Billy McCafferty exellent su quel modello di progettazione

sto ridisegnando alcune delle mie applicazioni da MVP-pattern per MVC-modello, non perché MVC è migliore, ma mi piacerebbe utilizzare le più recenti tecniche offerte dalla MS (il pattern stesso è piuttosto vecchio).

3

La differenza principale è che MVC è più simile allo sviluppo web "regolare" utilizzato dal resto del mondo di programmazione, mentre lo standard ASP.NET è stato progettato per rendere gli sviluppatori di Windows semplici sviluppatori in grado di diventare degli sviluppatori web. Ho imparato la programmazione Web apprendendo Ruby on Rails e MVC sembra che stia diventando la versione .NET di Rails.

MVC è molto più orientato alla conformità agli standard, discreto javascript e separazione delle preoccupazioni rispetto al normale ASP.NET. Avrai bisogno di capire come funzionano HTML e CSS. Imparerai un sacco di più javascript come master MVC. Uno dei maggiori vantaggi di MVC per me è che puoi usare jQuery per fare cose incredibili AJAX più semplici e BETTER di quanto puoi in ASP.NET.

Se stai imparando lo sviluppo del Web, ti consiglio vivamente di imparare MVC. Sarai in grado di trasferire almeno alcune delle tue nuove competenze ad altri framework in futuro.

Se stai cercando di imparare a ottenere rapidamente un lavoro di sviluppo web, allora dovrò suggerire fortemente ASP.NET.

Una volta MVC è RTM, penso che vedremo una curva di adozione lenta e costante e mentre matura MVC può diventare la struttura principale per la creazione di siti Web con ASP.NET. Lo spero almeno!

Problemi correlati