Se hai bisogno di lavorare davvero vicino al cavo allora MVC è un'ottima scelta. Con questo voglio dire, se hai bisogno di avere controlli molto stretti sul markup allora; mentre acheivable con WebForms; è molto più facile con MVC. Ciò sarebbe comune per le applicazioni destinate a un pubblico pubblico (ad esempio Internet) che potrebbe avere un'esperienza grafica più ricca. Al contrario, se si sta sviluppando un'applicazione aziendale interna (ad esempio intranet) in cui la presentazione grafica non è così importante, WebForms dispone di molte funzionalità di abilitazione davvero interessanti che consentono di spostarsi più rapidamente. Non fraintendetemi, è possibile rendere le applicazioni WebForm davvero interessanti, ma si rinuncia al controllo sul markup.
Molto spesso ViewState entra in questo tipo di discussione. MVC non avrà alcun ViewState, quindi il footprint on-the-wire sarà molto più piccolo e si tradurrà in un risparmio di velocità e larghezza di banda a un certo punto. Al rovescio della medaglia, rendere le applicazioni stateful con MVC può essere più doloroso. Al contrario, WebForms trasporterà ViewState di default e sono intrinsecamente più stateful. Questo è generalmente valido per le applicazioni interne. Tieni presente che ViewState non deve essere inviato sul filo ... ci sono estensioni che ti permettono di scaricarlo in una cache locale. Non sto favorendo l'uno sull'altro, ma dovresti essere consapevole di ciò che ognuno può fare in questo senso.
Se il test delle unità è importante per voi, MVC è anche una scelta molto migliore, poiché anche questo è più semplice. Questo è totalmente accettabile in WebForms ma richiede che il tuo codice sia corretto.
La sicurezza non è un fattore importante dal momento che gran parte dell'impostazione di IPrinciple e IIdentity si verifica nella pipeline HTTP tramite HttpModules, quindi lo faremo a tale riguardo.
Un altro fattore importante nel fare la tua scelta si riferisce alle tue abilità relative al tempo che devi consegnare ... , ecc ...) MVC ti impiegherà più tempo a fare cose basilari. Detto ciò, una volta sul posto sarà probabilmente più pulito, più piccolo, più testabile e più veloce. Se devi muoverti molto velocemente, c'è molto che puoi fare più velocemente in WebForms. WebForms fa anche molto lavoro di sollevamento rispetto al markup, quindi ci sono molti dettagli che puoi lasciare ad ASP.NET.
In realtà uso entrambi per una serie di motivi e la SM ha dichiarato che prevede di continuare a supportare e sviluppare entrambi.
Proveniente da Ruby on Rails, Web Form ASP.NET è "fancy" non la variante ASP.NET MVC – SztupY
questo è quello che stavo indovinando SztupY - cosa ne pensi? – Greg