Sortie d'ASP.NET MVC Preview 3

Le mardi 27 Mai est sorti la Preview 3 du framework MVC d'ASP.NET. Scott Guthrie avait parlé, le mois dernier, d'une version interne chez Microsoft qui incluait pas mal de fonctionnalités de cette preview. Cette version contient néanmoins des fonctionnalités que celle du mois dernier n'avait pas dont quelques améliorations et perfectionnement en plus des outils pour Visual Studio 2008.

Vous pouvez télécharger un installeur pour la Preview 3 du framework MVCd'ASP.NET ici. Vous pouvez également télécharger les codes sources ainsi que le framework de test unitaires ici.

Contrôleur de méthode d'action

La Preview 3 du framework MVC ASP.NET comprend les modifications du contrôleurs qui avaient été discutées et vues dans les sources de la version d'Avril. Il y a tout de même eu quelques ajustement.

Vous pouvez continuer à écrire des méthodes du contrôleur qui retournent "void" et qui encapsule toute la logique de l'action. Par exemple :

image

Qui rendra le HTML suivant quand on l'exécute :

image

La Preview 3 supporte maintenant une approche où vous retournerez un objet "ActionResult" qui permet d'indiquer le résultat de l'action et d'effectuer un traitement en rapport. Cela va permettre de rendre les tests beaucoup plus facile à réaliser. Cela va aussi permettre d'avoir une composition plus propre et d'avoir un contrôle sur l'exécution.

Par exemple, nous pourrions utiliser LINQ to SQL avec notre méthode "Browse" pour récupérer une liste d'objet "Product" de notre base de données et indiquer que nous voulons une vue pour les afficher. Le code suivant passera trois "ViewData" à la vue :

  • Title (string)
  • CategoryName (string)
  • Une liste de "Product" (liste typée)

image

Un des avantages d'utiliser l'ActionResult ci-dessus est que cela rend la création d'un test du contrôleur vraiment simple. Ci-dessous un test qui vérifie la comportement de notre méthode "Browse" :

image 

Nous pouvons donc créer une vue dans le répertoire \Views\Products pour afficher la réponse en utilisant le "ViewData" qui a été initialisé au-dessus :

image

Lorsqu'on se rend sur /Products/Browse/Beverages, on obtient maintenant le résultat suivant (les utilisations de ViewData sont entourées en rouge) :

image

Notez qu'en plus de "ViewResult" (pour indiquer qu'une vue doit être affichée), la Preview 3 du framework MVC d'ASP.NET permet de retourner un "JsonResult" (pour des scénarios de sérialisation JSON AJAX),  un "ContentResult" (pour le contenu sans vue) ou encore HttpRedirect et RedirectToAction/Route.

L'approche ActionResult est extensible (permet de créer votre propre type de retour) et vous verrez apparaître d'autres types de retour dans les prochaines versions.

Amélioration des méthodes d'aide HTML

Les méthodes d'aides à la manipulation du HTML ont été mise à jour dans la Preview 3 du Framework ASP.NET MVC. En plus de quelques bugs qui ont été corrigés, il y a de nouvelles fonctionnalités assez utiles.

Lookup automatique

Dans les précédentes version de la preview, vous deviez toujours explicitement passer une valeur pour l'afficher à l'aide des Helper HTML. Par exemple, vous procédiez comme ceci :

image

Vous pouvez toujours procéder de cette manière mais vous avez maintenant la possibilité de simplifier l'écriture :

image

Les HTML Helper vont maintenant directement rechercher dans le ViewData ou dans le Model avec la clef "ProductName" pour trouver la valeur.

SelectList et MultiSelectList ViewModels

Les nouvelles classe SelectList et MultiSelectList ont été inclues pour faciliter la création de dropdownlist ou multi-listbox HTML (avec la gestion de l'élement courant etc.). Une approche qui peut être utilisée pour générer des formulaires de façon plus propre. Vous devez, pour cela, déclarer le nouvel objet et le passer dans le ViewData pour l'afficher dans la vue.

Par exemple, ci-dessous, nous allons créer un objet SelectList avec une liste d'identifiants de catégories provenant d'une base de données. Nous indiquons que nous utiliserons "CategoryID" pour la valeur et "CategoryName" pour le texte qui sera affiché. On défini également l'ID par défaut :

image

Dans notre vue, nous n'avons besoin que d'utiliser le code suivant pour afficher notre "drop-downlist" avec le SelectList que nous avons déclarer dans notre ViewData :

image

A l'exécution, cela rendra :

image

image

Les scénarios de validation ne sont pas encore inclut avec nos HTML Helpers (vous devez écrire votre propre code pour la validation) mais cela sera inclut prochainement pour rendre la créations de pages d'éditions plus facile.

Vous devriez voir également apparaître des méthodes d'aides pour ASP.NET Ajax pour faciliter l'intégration d'Ajax dans ASP.NET MVC.

Amélioration de l'URL Rooting

La Preview 3 d'ASP.NET MVC inclue un grand nombre d'améliorations concernant le système de routage. C'est l'une des fonctionnalités les plus essensielles lorsqu'on parle de modèle MVC, c'est pour cette raison que nous mettons un focus dessus depuis les premières versions. Notre nouveau moteur de routage sera délivré avec la SP1 du .NET 3.5 cet été et supportera le Web Forms et les requêtes MVC. ASP.NET MVC contiendra également sa propre version de la librairie. Vous pourrez donc l'utiliser sur des systèmes qui n'ont pas le SP1.

Voici une série d'amélioration de la Preview 3 :

Les méthodes Helpers MapRoute() et IgnoreRoute()

On retrouve dans ASP.NET MVC les nouvelles méthodes d'aide "MapRoute" et "IgnoreRoute" qui peuvent être utiliser pour facilité l'enregistrement de règle de routage. MapRoute() permet d'ajouter des règles de routage à la collection de Routes très facilement. IgnoreRoute() permet d'indiquer au système de routage d'arrêter de traiter certain pattern d'URL (par exemple les handler axd, les ressources ASP.NET qui sont utilisées pour fournir du JavaScript, des images etc.).

Ci-dessous un exemple de démonstration dans la méthode RegisterRoutes du Global.asax :

image

La méthode MapRoutes() est surchargée  et prend deux, trois ou quatre paramètres (le nom de la règle, la syntaxe de l'URL, le paramètre de l'URL par défaut, et les paramètre d'URL optionnels).

Vous pouvez appeler MapRoute() autant de fois que vous le voulez pour enregistrer plusieurs règles de routages dans le système. Par exemple, en plus des conventions par défaut, vous pouvez ajouter des règles nommée comme ci-dessous :

image

On peut explicitement indiquer que vous voulez générer un lien qui utilise cette règles dans votre vue. Par exemple, nous pourrions utiliser Html.RouteLink de la manière suivante en passant la catégorie "food" comme paramètre à notre contrôleur :

image

  Ce vue affichera donc un lien qui respecte la règles de routage que nous lui avons passée avec la catégorie et affichera le code HTML suivant :

image

Nous pouvons également utiliser Url.RouteUrl(routeName, values) si vous voulons juste récupérer une URL correspondant à une règle nommée (sans avoir les balises <a> etc.)

De plus, nous pourrions appeler la méthode RedirectToRoute(routeName, values) dans notre contrôleur si nous voulions rediriger l'utilisateur en utilisant une règle d'URL désignée par "routeName".

Plus de fonctionnalité pour le routage

La Preview 3 d'ASP.NET MVC supporte également toute une série de nouvelles fonctionnalités. Vous pouvez maintenant inclure les caractère "-", ".", "," ,";" comme part de votre URL.

Par exemple, utiliser "-" dans l'URL pour facilité le parsing de la langue et de la localisation :

image

Cela passera les paramètres appropriés correspondant à la langue, à la localisation et à la catégorie au contrôleur.

Règle Exemple Paramètres reçus
{language}-{locale}/products/browse/{category} /en-us/products/browse/food language=en, locale=us, category=food
  /en-uk/products/browse/food language=en, locale=uk, category=food

Vous pouvez également utiliser le "." pour les extensions de fichiers pour savoir quel rendu vous devez afficher (hml, xml, etc.) :

image

La catégorie et le format seront passé au contrôleur (ProductController.Browse).

Règle Exemple Paramètres reçus
products/browse/{category}.{format} /products/browse/food.xml category=food, format=xml
  /products/browse/food.html category=food, format=html

La Preview 3 d'ASP.NET MVC supporte également les URL avec du contenu :

image

Cela passera un  paramètre "contentURL" dans notre  méthode de contrôleur WikiController.DisplayPage.

Règle Exemple Paramètres reçus
Wiki/Pages/{*contentUrl} /Wiki/Pages/People/Scott contentUrl="People/Scott"
  /Wiki/Pages/Countries/UK contentUrl="Countries/UK"

Ceci est assez utile lorsque vous créez des blogs, cms ou encore des Wiki.

Résumé

La Preview 3 inclue une lot de nouvelles fonctionnalités et de remaniement. Nous commençons à voir juste à propos du routage des URL et du modèle de programmation des contrôleurs. Nous sentons que ces choses commencent à être bien. Dans la prochaine version vous verrez apparaître plus d'amélioration dans ce qui concerne les vues (html helpers, règles de validation, etc.), Ajax, sous contrôleurs, système de login, authentification, autorisations d'accès, le cache et le scaffolding des données.

J'espère que cela aide,

Loïc Bar - Article basé sur celui de Scott Guthrie.

Published Wednesday, June 11, 2008 10:45 AM by loicbar
Filed under: , , ,

Comments

# The ASP.NET MVC Information Portal

Saturday, June 14, 2008 2:25 PM by The ASP.NET MVC Information Portal

Pingback from  The ASP.NET MVC Information Portal

# ASP.NET MVC Archived Buzz, Page 1

Wednesday, January 07, 2009 4:11 AM by ASP.NET MVC Archived Buzz, Page 1

Pingback from  ASP.NET MVC Archived Buzz, Page 1

# re: Sortie d'ASP.NET MVC Preview 3

Monday, March 05, 2012 5:43 AM by KpcIRzBsBvSUfhu

phKF4n The author deserves for the monument:D

# re: Sortie d'ASP.NET MVC Preview 3

Tuesday, March 06, 2012 9:04 AM by BlovxsTJdUmPAEkp

Extremely easy by words but in reality�, a lot of things don`t correspond. Not everything is so rosy..!

# re: Sortie d'ASP.NET MVC Preview 3

Tuesday, March 06, 2012 9:12 AM by fQgyyncTSzN

Are you interested in webmaster`s income?!...

# re: Sortie d'ASP.NET MVC Preview 3

Tuesday, March 06, 2012 9:17 AM by LYBEElbkFYHcybEb

Well, actually, a lot of what you write is not quite true !... well, okay, it does not matter:D

# re: Sortie d'ASP.NET MVC Preview 3

Tuesday, March 06, 2012 10:06 AM by MwUdsjPYoCo

The topic is pretty complicated for a beginner!...

# re: Sortie d'ASP.NET MVC Preview 3

Tuesday, March 06, 2012 10:12 AM by EksGIRTjECOYGrexvo

Post brought me to think, went to mull over!!...

# re: Sortie d'ASP.NET MVC Preview 3

Tuesday, March 06, 2012 11:07 AM by kYuWpqJFqpIZYL

Yeah, it is clear now !... Just can not figure out how often do you update your blog?!...

# re: Sortie d'ASP.NET MVC Preview 3

Tuesday, March 06, 2012 11:17 AM by uYPURUvinigzGsRyJTj

Internet is written with the capital letter in a sentence, by the way. And hundredths are written not with a point but with a comma. This is according to the standard. And actually everything is very good..!

# re: Sortie d'ASP.NET MVC Preview 3

Tuesday, March 06, 2012 11:33 AM by SOmhViJNsApFpje

Yeah, in my opinion, it is written on every fence!!...

# re: Sortie d'ASP.NET MVC Preview 3

Tuesday, March 06, 2012 11:44 AM by rCbexhNkHEqiVPhTMH

Somewhere in the Internet I have already read almost the same selection of information, but anyway thanks!!...

# re: Sortie d'ASP.NET MVC Preview 3

Tuesday, March 06, 2012 12:13 PM by dJPZkkeFGuRfbB

I`m so grateful that you enlightened me and the most important thing that it happened in time. Just think, I have been using the internet for six years already but it`s the first time I`ve ever heard about it!...

# re: Sortie d'ASP.NET MVC Preview 3

Tuesday, March 06, 2012 12:39 PM by sbzWqeiRVCxO

Hello! Read the pages not for the first day. Yes, the connection speed is not good. How can I subscribe? I would like to read you in the future!...

# re: Sortie d'ASP.NET MVC Preview 3

Tuesday, March 06, 2012 2:00 PM by zCLOpAAyWF

It's pleasant sitting at work to distract from it�to relax and read the information written here:D

# re: Sortie d'ASP.NET MVC Preview 3

Tuesday, March 06, 2012 2:56 PM by KebGHRWaJjRlJJtRKb

I am amazed  with the abundance of interesting articles on your site! The author - good luck and wish you the new interesting posts..!

# re: Sortie d'ASP.NET MVC Preview 3

Tuesday, March 06, 2012 3:10 PM by QpUomwmJgoyiYClPU

It's straight to the point! You could not tell in other words! :D

# re: Sortie d'ASP.NET MVC Preview 3

Wednesday, March 07, 2012 5:22 AM by avmRTcUuvYb

Yeah� I read and I understand that I do not understand anything what it is about:D

# re: Sortie d'ASP.NET MVC Preview 3

Wednesday, March 07, 2012 1:04 PM by JVlchPJZiCltFdG

Left on my site a link to this post. I think many people will be interested in it..!

# re: Sortie d'ASP.NET MVC Preview 3

Friday, April 12, 2013 3:44 PM by jfkd

<a href=pascherlouboutinchaussuress.webs.com/>louboutin paris</a>

# re: Sortie d'ASP.NET MVC Preview 3

Tuesday, April 16, 2013 3:44 PM by jfkd

Thanks for the ideas shared in your blog. One more thing I would like to say is that losing weight is not information on going on a dietary fads and trying to reduce as much weight as possible in a set period of time. The most effective way to lose weight is by having it slowly but surely and following some basic ideas which can allow you to make the most from your attempt to lose fat. You may be aware and already be following some of these tips, however reinforcing awareness never damages.

# re: Sortie d'ASP.NET MVC Preview 3

Sunday, May 12, 2013 11:06 AM by christian louboutin paris

These all YouTube gaming video clips are really in nice quality, I watched out all these along by means of my friends.

# re: Sortie d'ASP.NET MVC Preview 3

Wednesday, May 15, 2013 8:24 PM by christian louboutin paris

What a video it is! Genuinely remarkable and pleasant quality, please upload more video clips having such pleasant quality. Thanks.

Leave a Comment

(required) 
(required) 
(optional)
(required)