do more with less
news, esperienze, esempi da condividere e qualcosa su di me

venerdì 9 novembre 2007

Tech.Ed 2007 - Matt Gibbs presents ASP.NET MVC Framework

Ho seguito la sessione interattiva di Matt Gibbs sull'ASP.NET MVC Framework. Matt ha subito precisato che MVC non è un'invenzione Microsoft ma bensì l'implementazione che Microsoft ha pensato basandosi su questo pattern architetturale. Incuriosito da questa sua iniziale precisazione sono andato a vedere la descrizione che viene fornita su wikipedia.org. Ecco l'abstract che ho trovato:

"Model-view-controller (MVC) is an architectural pattern used in software engineering. In complex computer applications that present a large amount of data to the user, a developer often wishes to separate data (model) and user interface (view) concerns, so that changes to the user interface will not affect data handling, and that the data can be reorganized without changing the user interface. The model-view-controller solves this problem by decoupling data access and business logic from data presentation and user interaction, by introducing an intermediate component: the controller."

Sebbene con tecniche diverse, i concetti riassunti dalla descrizione di wikipedia.org, sono spesso utilizzati nelle attuali applicazioni web anche se non con un utilizzo rigoroso di questo pattern. E qui entra in gioco quanto ha presentato Matt Gibbs, ossia l'ASP.NET MVC Framework. Prima di questa sessione ammetto di aver avuto non pochi dubbi su questo framework; dubbi chiariti durante la sessione di Q&A che ha seguito la presentazione. Riassumendo ecco alcune delle informazioni fornite:

  • ASP.NET MVC framework dovrebbe essere rilasciato in CTP tra qualche settimana (si attende a breve un post di Scott Ghuttrie con maggiori informazioni);
  • Al momento richiede il compilatore per C# 3.0 e di conseguenza il .NET framework 3.5 ma dovrebbe essere rilasciata anche una versione per il .NET Framework 2.0;
  • La prima release non supporterà ASP.NET AJAX ma ovviamente non impedisce l'utilizzo di implementazioni AJAX non Microsoft;
  • Lo si deve vedere come un sistema alternativo alle ASP.NET WebForm e non come un modello sostitutivo. L'attuale pianificazione prevede il supporto per entrambi i modelli di pagina;
  • Faciliterà il Test Driven Development (TDD) per le applicazioni ASP.NET;
  • Introduce una nuova costruzione degli URL per la navigazione dell'applicazione basati sul concetto si Controller/Action/Parameters

Molto altro ci sarebbe da dire ma spero in futuro di avere il tempo di approfondire questo framework per postare esperienze dirette più che riportare concetti sentiti durante una sessione. E' certo per il momento che in assenza di un set di controlli per questo modello di pagine ASP.NET (controlli che arriveranno in seguito), dovremmo lavorare molto nel creare i nostri controlli bindabili e nella renderizzazione delle view il che mi ricorda la programmazione in ASP Classic. Qualcuno ritiene questo un plus del modello in quanto fornisce un controllo granulare sulla renderizzazione finale ma io mi chiedo, dopo essere stato così ben abituato dai controlli server side di ASP.NET: "Si può far provare una Ferrari a qualcuno e poi mandarlo via in bicicletta?". Stiamo a vedere come evolveranno le cose. Le impressioni che ho avuto sono positive proprio per l'elevato livello di separazione che questo pattern fornisce ma ritengo che al momento sia lontano dall'essere un reale modello alternativo allo sviluppo di applicazioni ASP.NET; in quanto aumenta notevolmente i tempi di sviluppo dell'interfaccia grafica.