Ho iniziato a lavorare in MVC circa un anno fa, sono stato ispirato ma non colpito.
Detesto lo stato di visualizzazione e lo vedo come la radice di tutti i mali in termini di ASP.NET. Questo è il motivo per cui non lo uso e ad essere perfettamente onesto perché dovresti?
Ho preso fondamentalmente il concetto di ASP.NET MVC Framework e l'ho costruito a modo mio. Ho cambiato un paio di cose però. Ho creato il codice di wrapping del controller o il codice di routing dell'URL attorno alla ricompilazione dinamica.
Ora, vorrei arrivare a dire che le applicazioni ASP.NET MVC saranno più veloci in base a come le usi. Se abbandoni completamente WebForms sarai più veloce perché il ciclo di vita di ASP.NET e il modello a oggetti sono enormi.
Quando scrivi, crei un'istanza di un esercito ... no aspetta, una legione di oggetti che parteciperanno al rendering della tua vista. Questo sarà più lento rispetto a dove esprimere la quantità minima di comportamento nella pagina ASPX stessa. (Non mi interessa l'astrazione del motore di visualizzazione perché il supporto per le pagine ASPX in Visual Studio è decente, ma ho completamente abbandonato WebForms come concetto e fondamentalmente qualsiasi framework ASP.NET a causa del codice gonfio o dell'impossibilità di modificare il cose che collegano la mia applicazione).
Ho trovato il modo di fare affidamento sulla ricompilazione dinamica (System.Reflection.Emit) per l'emissione di oggetti e codice per scopi speciali quando necessario. L'esecuzione di questo codice è più veloce della reflection ma inizialmente costruita tramite il servizio di reflection. Questo ha dato al mio framework in stile MVC ottime prestazioni ma anche tipizzato in modo molto statico. Non uso stringhe e raccolte di coppie nome / valore. Invece i miei servizi di compilazione personalizzati vanno in una riscrittura di un modulo post in un'azione del controller che viene passata un tipo di riferimento. Dietro le quinte stanno succedendo molte cose ma questo codice è veloce, molto più veloce di WebForms o MVC Framework.
Inoltre, non scrivo URL, scrivo espressioni lambda che vengono tradotte in URL che in seguito indicano quale azione del controller richiamare. Non è particolarmente veloce, ma batte avere URL non funzionanti. È come se avessi risorse digitate staticamente e oggetti digitati staticamente. Un'applicazione web di tipo statico? Questo è quello che voglio!
Incoraggerei più persone a provarlo.