Nel suo post Andrea solleva alcuni dubbi sulla necessità del nuovo framework MVC di ASP.NET.
Personalmente il mio giudizio (basato sui post letti in questi giorni, sulla sessione vista al TechEd e sulle domande fatte a Matt Gibbs) è molto positivo.
Io nasco come programmatore web ai tempi di ASP 3.0.
L'uscita del Framework .NET ha suscitato un grande entusiasmo e da subito mi sono buttato nello sviluppo di una grossa applicazione web in C# + ASP.NET. Rispetto ad ASP mi sembrava il paradiso.
Con gli anni però le competenze cambiano, i browser da supportare diventano tanti, i web designer ci dicono che le Table non vanno usate, imparo a sviluppare usando TDD, arriva AJAX e il Web 2.0 e quindi nascono i primi dubbi sulla validità del modello di sviluppo imposto da ASP.NET tant'è che ultimamente usavo sempre meno i controlli nativi a favore di un rendering più preciso.
Per questo l'uscita di un framework MVC per ASP.NET ha subito attirato la mia attenzione per gli svariati vantaggi che porta con se:
1) Separazione delle competenze
2) Possibilità di aumentare la percentuale di codice testato e scritto usando TDD
3) Controllo fine sull'html generato
4) Possibilità VERA di far disegnare la view ad un web designer
Il problema che Andrea solleva è legato al codice che viene scritto nella view (lui cita il foreach di questo esempio).
Io non ci vedo nulla di male fintanto che il codice che sta sulla view è li per gestire il layout della view e non contiene logica applicativa.
Ad alcuni può sembrare un ritorno ad ASP quando si mescolava il codice di scripting con l'html, per un certo verso è vero ma oggi abbiamo un linguaggio ad oggetti e un framework altrettanto ben scritto che ci permette di risolvere i vecchi problemi di ASP e il modello MVC ci aiuta a non ricadere negli errori di design che si commettevano con ASP.
Se ci pensate è la stessa cosa che si fa con windows forms: nella classe che deriva da Form e implementa la view ci mettiamo solo quello che serve per leggere e scrivere dati nei controlli.