Comme certains d’entre vous ont certainement remarqué, aujourd’hui, il y a eu la sortie de la version finale de ASP.NET MVC 3. Pour le télécharger, vous avez 2 possibilités (la troisième est le code source) :

Il y a eu beaucoup d’améliorations et d’ajout de nouvelles fonctionnalité dont les principales sont les suivantes :

1. Nouveau moteur de vues “Razor”.

Le but principale est de rendre les vues plus claires.

Les ressources intéressantes à lire :

2. Le support pour les moteurs de vues multiples au sein du même projet.

Dorénavant vous pouvez utiliser plusieurs moteurs de vue au sein du même projet. Web Form View Engine (ASPX), Razor, Spark, NHaml, NDjango.

3. Les filtres d’action globaux (Global Action Filters)

Permettent de définir pré et post actions a exécuter qui s’appliquent à toutes les actions. Il suffit d’ajouter vos filtres dans la collection GlobalFilters.

4. Améliorations liés au JavaScript

MVC 3 permet une meilleure intégration avec JavaScript et prend avantage de fonctionnalités de HTML5.

Les helpers de Validation Ajax dans MVC 3 utilisent une approche “Unobtrusive JavaScript”. Cela évite d’injecter inline le JavaScript ce qui permet une séparation de responsabilités plus claire.

La validation client side est définie par défaut. L’appel à Html.EnableClientValidation n’est plus nécessaire comme dans les version précédentes de ASP.NET MVC.

5. Output caching

ASP.NET MVC 3 permet de mettre en cache les pages partielles ce qui permet de mettre en cache les fragment d’une réponse contrairement au mode MVC 2 ou le cache se passait au niveau de l’URL entière ou de l’action.

6. Modifications lié à l’injection de dépendance.

Le support d’injection de dépendance qui vous permet d’enregistrer votre Framework d’injection de dépendance pour qu’il soit directement utilisable par les Controllers, Views, Action Filters, Value Providers, Model Metadata Providers, Model Binders. Plus besoin d’implémenter votre propre ControllerFactory.

7. Amélioration du support de validation.

RemoteValidation – si vous décorez votre modèle avec cet attribut RemoteAttribute cela permet de le valider en effectuant un appel au serveur à partir du client (avec le plugin de validation JQuery).

IValidatableObject interface permet d’effectuer une validation au niveau du modèle.

IClientValidatable permet à MVC 3 de découvrir au run-time si le validator a un support pour la validation du côté du client.

L’attribut de validation [Compare] qui permet de comparer et valider 2 propriétés.

8. Divers améliorations (liste non-exhaustive)

ViewBag remplace ViewData ce qui permet le support dynamique pour le bind tardive des datas des Controllers aux Views.

Attribut AllowHtml qui permet une validation plus précise de la requête lors du bind de données aux modèles.

Le contrôleur Sessionless qui permet de contrôler si le SessionState est disponible sur le Contrôleur.

Nouveaux ActionResults : HttpNotFoundResult, RedirectPermanent, RedirectResult, RedirectToRoutePermanent, HttpStatusCodeResult.

Support de binding JSON. Les actionsresult peuvent maintenant recevoir les données encodées JSON et de le binder aux paramètres d’actions.

 

Il y a encore beaucoup d’autres fonctionnalités mais j’ai rappelé les plus importantes. Dans les prochaine série des blogs je vais me consacrer à décrire chaque fonctionnalité d’AS.NET MVC 3 dans les détails et en appliquant à un scénario bien réel.

A+

Thomas