Sto lavorando ormai da un paio di mesi su ASP.NET MVC. Premetto che sulla parte architetturale del pattern non ne sapevo niente quindi il mio primo approccio è stato puramente pratico. Dopo la prima fase di totale nausea e scomodità ho cominciato comunque ad apprezzare questo modo di sviluppare applicazioni web. I punti che mi interessa sottolineare sono:
Produttività
Sviluppare applicazioni sfruttando le webform è molto più semplice e veloce. Il fatto di avere a disposizione gli eventi è molto comodo così come un ciclo di vita molto più articolato che ci permette di infilarci ovunque. Tuttavia, non è vero come ho sentito dire che una pagina sviluppata con MVC richiede oltre il doppio del tempo. Certo quando l'interazione è particolarmente complessa probabilmente si deve lavorare parecchio, ma grazie ad ajax e jQuery il tutto diventa molto più semplice e a volte anche più pulito rispetto alle webform (vedi updatepanel). Ora che ho una certa dimestichezza posso dire che una funzionalità con un'interazione mediamente complessa sviluppata con MVC richiede circa il 15% in più del tempo. Certo è sempre più tempo, ma se ci si mettono i benefici che si traggono dall'utilizzo di MVC, è un tempo accettabile.
Performance
Non ho in mano numeri reali, ma la differenza si vede ad occhio nudo. Eliminando viewstate, ciclo di vita e altre menate varie delle webforms, ASP.NET MVC vince 6-0 6-3 6-2 in 60 minuti e senza possibilità di replica.
Curva di apprendimento
Questo è il grosso neo. Non dico che ASP.NET MVC sia così complesso, ma in generale il cambio di paradigma di sviluppo rende il passaggio più complesso poichè per certi versi è completamente agli antipodi rispetto alle webforms. Questo in un team composto prettamente da figure junior richiede almeno 3/4 di settimane di studio e test. Rispetto a quanto ci vuole per passare da classic ASP ad ASP.NET webforms la curva è molto più complessa.
Eleganza
A chi dice che il codice con ASP.NET MVC sia più elegante io rispondo dicendo che non è assolutamente vero. Le porcate si possono fare tanto in MVC quando con le webforms e con la stessa facilità. La realtà è che MVC offre una grande opportunità per separare bene il codice dall'interfaccia e renderlo testabile, ma laddove la testabilità non interessa (e parliamoci chiaro LA VERA TESTABILITA' INTERESSA SOLO UNA PICCOLA PARTE DEI SITI CHE SI SVILUPPANO NEL MONDO) con webforms possiamo ugualmente scrivere dei siti eleganti facilmente manutenibili e con un'ottimo grado di separazione del codice. Sfruttando a dovere usercontrol e custom control, le pagine risultano anche più leggibili delle view di mvc ed il codice è ugualmente ben organizzato. Certo non è testabile via tool, ma nella maggior parte dei casi.. chissene.
Finale
Dovete fare un sito e siete indecisi se utilizzare ASP.NET MVC o le webforms? La prima discriminante è la testabilità. Se questa è obbligatoria, allora MVC è la sola scelta, se la risposta è no, webforms parte favorito. La seconda discriminante è la quantità di interazione tra la pagina e l'utente. Se questa è molto complessa (diversi roundtrip al server, modifiche pesanti dell'html, etc etc) webforms è la via più semplice. Se invece si fa prettamente visualizzazione di dati e navigazione, ASP.NET MVC costituisce una valida alternativa.
My 2 cents ... Stay tuned ...
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
- Il futuro di una parte del Web: le SPA, il 22 aprile 2013 alle 09:00
- Creare una ActionResult custom per renderizzare un PDF in MVC sfruttando una view, il 30 ottobre 2012 alle 11:31
- Gestire più bottoni in una form HTML con ASP.NET MVC, il 7 maggio 2012 alle 21:00
- Quando il DOM è molto meglio di jQuery, il 3 ottobre 2009 alle 08:50
- Virtual Earth è finalmente dotato di una ricerca decente, l'11 aprile 2009 alle 02:54