Tags:

Lo scorso Dicembre abbiamo rilasciato, come parte integrante di ASP.NET 3.5 Extensions CTP Release, un nuovo Framework ASP.NET MVC. Ho inoltre prodotto una serie di post che potete trovare utili per iniziare ad utilizzare questo Framework:
(N.d.r. In un secondo momento i link saranno tradotti in Italiano)

Devo dire che abbiamo ricevuto un sacco di Segnalazioni e il numero di Downloads è enorme. Una delle domande piu' frequenti che ho ricevuto è stata: "Quando verrà rilasciata una nuova Versione e cosa conterrà come novità rispetto a questa?"

In questo post trovate un elenco delle novità alle quali il nostro Team sta lavorando e, alcune caratteristiche che saranno presto disponibili. In futuro ho intenzione di pubblicare dei posts separati per ASP.NET Dynamic Data e ASP.NET AJAX Future che stanno procedendo altrettanto bene.

Tutte queste novità (ASP.NET MVC, Dynamic Data, AJAX Future) saranno disponibili presto e funzioneranno con Visual Studio 2008 e il NET Framework 3.5.

Imminente l' ASP.NET MVC versione MIX 2008.

Stiamo pensando di rilasciare una versione di ASP.NET MVC preparata appositamente per la conferenza MIX 2008 che si terrà tra qualche settimana. La verisone sarà disponibile a tutti (non si necessita di partecipare al MIX 08). In questa versione sono stati ritoccati molto gli adapter. Di seguito alcuni dei miglioramenti apportati in questa release:

1) L' ASP.NET MVC Framework puo' essere incluso e referenziato dalla cartella bin dell' applicazione web:

La prima versione di ASP.NET MVC richiedeva l' ausilio di un setup per installare nella GAC della macchina host la .dll System.Web.Mvc.dll per poter poi essere utilizzata come motore MVC dalle applicazioni. Già a partire da questa release, sarà possibile instanziare la dll System.web.Mvc.dll direttamente posizionandola nella cartella bin dell' applicazione. Questo significa che non bisognerà piu' eseguire il setup nelle macchine server, ma basta copiare il contenuto della nostra applicazione ASP.NET MVC nella macchina remota senza nessuna configurazione o impostazione successiva.

Stiamo anche cercando di produrre una versione in grado di operare anche in Partial/Medium trust. In questo modo potrete usare anche un hosting condiviso senza che l' amministratore debba eseguire lavoro ulteriore. (basterà copiare l' applicazione via FTP senza impostazioni accessorie.)

2) Modifiche sostanzioali al meccanismo di Routing (Reindirizzamento):

Una delle caratteristiche piu' innovative di ASP.NET MVC è il meccanismo di routing. (trovate un dettaglio Qui). In questa nuova versione del Framework sono presenti novità e innovazioni nel motore. Adesso si possono utilizzare Named Route (ovvero abbiamo una referenza esplicita con i ruoli delle route) e le WildCards route (ad esempio per i CMS che hanno regole proprie) e implementare regole personalizzate (come ad esempio un esplora risorseI).

Abbiamo inoltre riconcepito il motore di routing di ASP.NET MVC per essere esterno e poter essere applicato ad altre applicazione non MVC (vedi le WebForm).

3) Supporto per Visual Studio 2008:

Nella prima versione di ASP.NET MVC il supporto con Visual Studio era minimo. Questa nuova versione verrà rilasciata con significanti miglioramenti rispetto a questo argomento. Verrà incluso, miglioramento nei modelli di progetto, impostazioni di default per i progetti, etc.

Stiamo inoltre introducendo un Framework per i test, autogenerante, che verrà avviato in automatico durante la creazione di un nuovo progetto ASP.NET MVC. In questo modo sarà veloce e semplice costruire un progetto di test per la nostra applicazione.

L' ASP.NET MVC test project sarà personalizzabile e opzionale:

In questo modo lo sviluppare sarà libero di scegliere quale Framework di test implementare.

4) L' attributo [ControllerAction] diventa obsoleto:

Nella prima versione di ASP.NET MVC i metodi dei controller dovevano essere decorati con questo attributo [ControllerAction] per essere visibili:

In base alle segnalazioni che abbiamo ricevuto questo attributo è stato rimosso. Adesso per impostazione predefinita, tutti i metodi pubblici saranno considerati come ControllerAction.

Nota: potete comunque marcare i metodi pubblici di un controller per far si che non vengano riconosciuti come ControllerAction.

5) Introduzione di nuovi filtri per i ControllerAction:

Una delle novità introdotte, di tipo estensibile, in questa versione di ASP.NET MVC, è chiamata "Attributi Filtrati". Questo significa che possiamo iniettare del codice prima o dopo l' esecuzione della nostra action. In questo modo possiamo riciclare ulteriormente il nostro codice, utilizzando una sintassi dichiarativa.

Per esempio, potrei usare un attributo OutputCache per usare una cache di 30 secondi per la mia lista prodotti:

Oppure utilizzare un attributo Authorization per consentire di eseguire il metodo solo da parte di utenti autorizzati:

Questo meccanismo è estensibile e potete quindi creare il vostro filtro personalizzato. Filtri e controller filtrati possono essere sottoposti a unit-test.

6) HTML Helper inclusi:

Nella prima versione di ASP.NET MVC le funzionalità presenti predefinite erano poche per gli HTML helper. In seguito venne reso disponibile un download separato (MVC Toolkit) che aggiungeva nuove funzionalità.

In questa nuova versione viene incluso tutto come predefinito. Il prossimo mese andremo a discutere le nuove caratteristiche che verranno introdotte nel framework Javascript di ASP.NET Ajax che stiamo rielaborando, includendo alcune funzionalità in grado di aiutare la comunicazine tra ASP.NET AJAX e ASP.NET MVC.

7) Molti miglioramenti nel Refactoring e nel Design:

Questa versione include molti miglioramenti riguardo il refactoring e l' aspetto di design, per rendere le applicazioni ancora piu' testabili. In generale il team ha incluso questa filosofia per ogni caratteristica, dove si hanno 3 opzioni:

  1. Usare le funzioni cosi' come sono
  2. Personalizzare le funzionalità senza dover scrivere troppo codice
  3. Stravolgere completamente le impostazioni predefinite, per adottarne di proprie

Per esempio, possiamo sovrascrivere la logica di chiamata del ViewEngine ma non quella di esecuzione e viceversa, oppure ancora slegarsi completamente dal ViewEngine. Il supporto alla controller factory è stato implementato ulteriormente per poter consentire l' ausilio di Framework secondari per l' iniezioni in fase di test. I controller sono piu' testabili.

8)Anche i sorgenti di ASP.NET MVC sono disponibili per il download:

Il mese scorso avevo annunciato che i sorgenti del .NET Framework erano scaricabili e debuggabili. La stessa cosa sta avvenendo anche per ASP.NET MVC.

Già da questa versione vorremmo rendere dispobili i sorgenti per il downlaod cosi' da poter essere eseguiti in Visual Studio. In questo modo sarà facile leggere e debuggare il codice del Framework MVC. Stiamo inoltre inserendo una licenza apposita per consentirvi di rilasciare patch per il Framework nel caso in cui incontriate un baco durante lo sviluppo di una vostra applicazione.

La licenza non vi consentirà di distribuire le vostre patch per il Framework ASP.NET MVC. (Non vogliamo che in rete girino diverse versioni instabili del nostro Framework). Ma in questo modo gli sviluppatori che vorranno implementare e proseguire con questo Framework, non saranno legati dalla presenza di un baco o di una mancanza.

Sommario

Ci sono una marea di altre novità introdotte con questa versione del Framework (compresi metodi e oggetti di help). C'è da dire che questa lista sopra esposta comprende la maggior parte di essi, che saranno presto rilasciati. Inviero' un post sul blog non appena questa versione per il MIX 08 sarà disponibile per il Download.

Spero sia  di aiuto

Scott.