.NET Framework 4.0 Beta 2: ASP.NET MVC 2 Preview 2

Marco De Sanctis

di , in ASP.NET,

ASP.NET MVC 2 ha purtroppo mancato l'appuntamento con la prima beta release di Visual Studio 2010, per cui c'è veramente tanto da dire su quanto è stato incluso nella Beta 2.

ModelMetadata e Model Validation

Una prima novità è rappresentata dall'introduzione dei ModelMetadata, vale a dire un'infrastruttura per associare metadati ad un model che consente, ad esempio, di specificare la formattazione secondo cui mostrare a video una property, la sua descrizione o indicare un'insieme di validatori che ne verifichino la consistenza.
Quest'infrastruttura è completamente provider-based: ASP.NET MVC 2 fornisce già un DataAnnotationsMetadataProvider che consente di recuperare queste informazioni tramite le DataAnnotations introdotte in ASP.NET Dynamic Data, ma è possibile realizzare propri provider per recuperarle da una qualsiasi sorgente (XML, Database, ecc.).
Un ulteriore plauso va anche all'aggiunta di un supporto ufficiale alla validazione lato client, realizzata tramite jQuery e, ancora una volta, impostabile in maniera del tutto dichiarativa direttamente sul model tramite l'infrastruttura di DataAnnotiations.

HttpVerb override

Come sappiamo, già dalla prima versione di MVC è possibile specificare a quali verbi Http (GET, POST, PUT, DELETE) debba rispondere una action. Essi sono molto utili nel caso si voglia utilizzare ASP.NET MVC per esporre servizi REST, mentre il loro utilizzo rimane di fatto molto limitato nell'ambito di applicazioni con interfaccia utente, dato che i browser tipicamente utilizzano solo GET e POST.
ASP.NET MVC 2 introduce un nuovo Html Helper, chiamato HttpMethodOverride, che può essere utilizzato in una view per renderizzare un particolare campo Hidden:

<form action="/sampleDeleteAction" method="post">
    <%= Html.HttpMethodOverride(HttpVerbs.Delete) %>
    ...
</form>

L'effetto è quello di sovrascrivere l'effettivo verbo inviato dal browser (nella fattispecie, un POST) con un DELETE, scatenando quindi l'esecuzione di una action decorata con HttpDeleteAttribute:

[HttpDelete]
public ActionResult SampleDeleteAction(...)
{
  // ... more code here
}


Tutto questo per fare cosa? Semplice: se esponiamo API di tipo REST e magari gestiamo tutti i verbi Http e non solo Get e Post, possiamo comunque continuare a riutilizzare i medesimi controller anche quando invece interagiamo con un browser.

Single-Project Areas

Già in ASP.NET MVC 2 Preview 1 era stato introdotto il concetto di Project Areas, tramite le quali era possibile suddividere un'applicazione di grandi dimensioni in diversi progetti Visual Studio indipendenti. La preview 2 amplia questa funzionalità tramite le Single Project Areas, ossia suddivisioni logiche dell'applicazione (e quindi controller, model, view e regole di routing indipendenti) all'interno dello stesso progetto.
Maggiori informazioni sul concetto di Area possono essere reperite in questo post di Scott Guthrie, relativo alla vecchia Preview 1.

Html Encoding Code Block

Il metodo più sicuro per evitare attacchi di script injection nella propria web application è quello di effettuare l'HtmlEncode di qualsiasi dato potenzialmente a rischio nell'ambito del rendering di una view. Utilizzando la sintassi compatta

First Name: <%: Model.FirstName %>
Last Name: <%: Model.FirstName %>

l'engine di rendering della view si occupa di eseguire in maniera del tutto trasparente questo passaggio. Per approfondire, si veda questo post sul blog di Phil Haack.

Non finisce qui!

In aggiunta a quanto indicato sino ad ora, ASP.NET MVC 2 Preview 2 propone anche tutta una serie di migliorie, bug fix e performance improvements che sono descritte, analogamente a queste nuove funzionalità, nelle release notes ufficiali, scaricabili a questo indirizzo.

Per maggiori informazioni sulle altre tecnologie all'interno del .NET Framework 4.0 si può fare riferimento al nostro speciale.

Commenti

Visualizza/aggiungi commenti

.NET Framework 4.0 Beta 2: ASP.NET MVC 2 Preview 2 1010 1
| Condividi su: Twitter, Facebook, LinkedIn, Google+

Per inserire un commento, devi avere un account.

Fai il login e torna a questa pagina, oppure registrati alla nostra community.

Nella stessa categoria
I più letti del mese
    TAG CLOUD
    BLOG INFO
    • 34 post, 13 commenti, 3 trackback
    • Feed blog: RSS Atom
    In evidenza