<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://weblogs.asp.net/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Scott Guthrie's Blog in French</title><link>http://weblogs.asp.net/scottgufrench/default.aspx</link><description /><dc:language>en</dc:language><generator>CommunityServer 2007 SP1 (Build: 20510.895)</generator><item><title>Sortie d’ASP.NET MVC Preview 4 (Partie 1) </title><link>http://weblogs.asp.net/scottgufrench/archive/2008/08/01/sortie-d-asp-net-mvc-preview-4-partie-1.aspx</link><pubDate>Fri, 01 Aug 2008 15:27:00 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:6466664</guid><dc:creator>amensi</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/scottgufrench/rsscomments.aspx?PostID=6466664</wfw:commentRss><comments>http://weblogs.asp.net/scottgufrench/archive/2008/08/01/sortie-d-asp-net-mvc-preview-4-partie-1.aspx#comments</comments><description>&lt;P mce_keep="true"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;L’équipe d’ASP.NET MVC est actuellement à finaliser la sortie d’une nouvelle "Preview 4" qu’ils espèrent livrée un peu plus tard cette semaine.&amp;nbsp; La sortie de la &lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;&lt;A href="http://weblogs.asp.net/scottgu/archive/2008/05/27/asp-net-mvc-preview-3-release.aspx" target=_blank&gt;&lt;SPAN lang=FR-CA style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;Preview&lt;/SPAN&gt;&lt;/A&gt;&lt;/SPAN&gt;&lt;U&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: Arial"&gt; 3&lt;/SPAN&gt;&lt;/U&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt; avait comme objectif de finaliser plusieurs en grande partie les API core et plusieurs points d’extensibilité dans ASP.NET MVC.&amp;nbsp;Avec la Preview 4 cette semaine vous commencerez à voir de plus en plus de fonctionnalité de haut niveau faire leur apparition qui vienne s’appuyer sur les fondations core et ajoute de la productivité.&lt;/SPAN&gt;&lt;/P&gt;
&lt;DIV class=Section1&gt;
&lt;P class=MsoNormal style="LINE-HEIGHT: normal"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;Il y à beaucoup de nouvelles fonctionnalités et possibilité dans ce nouveau build, tellement que j’ai décidé que j’allais avoir besoin de 2 post pour toutes les couvrir. La première partie couvrira les nouvelles fonctions de Caching, Gestion d’erreurs et de sécurité dans la Preview 4 ainsi les améliorations au niveau du testage qu’elle apporte. Mon prochain post couvrira les nouvelles fonctionnalités AJAX qui sont aussi ajoutées à cette sortie.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="LINE-HEIGHT: normal"&gt;&lt;B&gt;&lt;U&gt;&lt;SPAN style="FONT-SIZE: 13.5pt; FONT-FAMILY: Arial"&gt;&lt;/SPAN&gt;&lt;/U&gt;&lt;/B&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class=MsoNormal style="LINE-HEIGHT: normal"&gt;&lt;B&gt;&lt;U&gt;&lt;SPAN style="FONT-SIZE: 13.5pt; FONT-FAMILY: Arial"&gt;Comprendre les intercepteurs de filtres&lt;/SPAN&gt;&lt;/U&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="LINE-HEIGHT: normal"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;Les attributs Action Filter sont une capacité d’extensibilité pratique d’ASP.NET MVC qui fût introduite lors de la sortie de la "Preview 2".&amp;nbsp;Ceux-ci vous permettent d’injecter des intercepteurs de code dans la requête d’un contrôleur MVC qui peut être exécuté avant et après qu’un contrôleur ou c’est méthodes Action s’exécutent.&amp;nbsp; Ceci permet de développer d’excellents scénarios d’encapsulation où vous pouvez facilement emballer et réutiliser des fonctionnalités d’une manière propre et déclarative.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="LINE-HEIGHT: normal"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;Ci-dessous, un exemple d’un filtre hypersimple «&amp;nbsp;ScottGuLog&amp;nbsp;» que je pourrais utiliser pour logger les détails concernant une exception survenue durant l’exécution d’une requête. Implémenter une classe filtre personnaliser est très facile, il suffi d’hériter de la classe "ActionFilterAttribute" et de faire un override &amp;nbsp;des méthodes appropriées et exécuter le code avant et après qu’une méthode action soit invoqué sur le contrôleur et/ou avant ou après qu’un ActionResult soit converti en response.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="LINE-HEIGHT: normal"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;&lt;IMG id="Picture 1" title=http://www.scottgu.com/blogposts/mvcpreview4/step1.png style="WIDTH: 672px; HEIGHT: 218px" height=218 alt=http://www.scottgu.com/blogposts/mvcpreview4/step1.png src="http://www.scottgu.com/blogposts/mvcpreview4/step1.png" width=672 border=0 mce_src="http://www.scottgu.com/blogposts/mvcpreview4/step1.png"&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="LINE-HEIGHT: normal"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;Utiliser un filtre dans un contrôleur ASP.NET MVC est facile, il suffit de le déclarer comme attribut d’une méthode action ou encore sur la classe contrôleur elle même (dans un tel cas ce sera appliqué sur toutes les méthodes action incluse dans le contrôleur):&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="LINE-HEIGHT: normal"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;&lt;IMG id="Picture 2" title=http://www.scottgu.com/blogposts/mvcpreview4/step2.png style="WIDTH: 493px; HEIGHT: 383px" height=383 alt=http://www.scottgu.com/blogposts/mvcpreview4/step2.png src="http://www.scottgu.com/blogposts/mvcpreview4/step2.png" width=493 border=0 mce_src="http://www.scottgu.com/blogposts/mvcpreview4/step2.png"&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="LINE-HEIGHT: normal"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;Ci-haut vous pouvez voir un exemple de deux filtres qui sont appliqués.&amp;nbsp;J’ai mentionné que je voulais que mon "ScottGuLog" soit appliqué sur la méthode action "About", et que je voulais que le filtre “HandleError" &amp;nbsp;soit appliqué sur toutes les méthodes action de HomeController.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="LINE-HEIGHT: normal"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;Les versions précédentes des preview d’ASP.NET MVC permettent cette extensibilité des filtres, mais ne fussent pas livrées avec des filtres préconçus.&amp;nbsp;La Preview 4 d’ASP.NET MVC comprend maintenant plusieurs filtres pratiques pour gérer l’output caching, la gestion d’erreur et les différents scénarios de sécurité.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="LINE-HEIGHT: normal"&gt;&lt;B&gt;&lt;U&gt;&lt;SPAN style="FONT-SIZE: 13.5pt; FONT-FAMILY: Arial"&gt;&lt;/SPAN&gt;&lt;/U&gt;&lt;/B&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class=MsoNormal style="LINE-HEIGHT: normal"&gt;&lt;B&gt;&lt;U&gt;&lt;SPAN style="FONT-SIZE: 13.5pt; FONT-FAMILY: Arial"&gt;Filtre OutputCache&lt;/SPAN&gt;&lt;/U&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="LINE-HEIGHT: normal"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;Le filtre [OutputCache] offre une façon facile d’intégrer ASP.NET MVC avec les fonctions d’output caching d’ASP.NET (avec ASP.NET MVC Preview 3 vous deviez écrire du code arrivé à cela).&amp;nbsp; &lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="LINE-HEIGHT: normal"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;Pour tester ceci, modifiez la valeur «&amp;nbsp;Message&amp;nbsp;» au sein de la méthode action « index&amp;nbsp;» du HomeController (conçut avec le template de projet VS ASP.NET MVC) pour afficher l’heure actuelle&amp;nbsp;:&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="LINE-HEIGHT: normal"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;&lt;IMG id="Picture 3" title=http://www.scottgu.com/blogposts/mvcpreview4/step3.png style="WIDTH: 709px; HEIGHT: 214px" height=214 alt=http://www.scottgu.com/blogposts/mvcpreview4/step3.png src="http://www.scottgu.com/blogposts/mvcpreview4/step3.png" width=709 border=0 mce_src="http://www.scottgu.com/blogposts/mvcpreview4/step3.png"&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="LINE-HEIGHT: normal"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;Lorsque vous exécutez votre application, vous allez voir l’empreinte de temps se mettre à jour à chaque rafraichissement de la page&amp;nbsp;:&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="LINE-HEIGHT: normal"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;&lt;IMG id="Picture 4" title=http://www.scottgu.com/blogposts/mvcpreview4/step4.png style="WIDTH: 780px; HEIGHT: 435px" height=435 alt=http://www.scottgu.com/blogposts/mvcpreview4/step4.png src="http://www.scottgu.com/blogposts/mvcpreview4/step4.png" width=780 border=0 mce_src="http://www.scottgu.com/blogposts/mvcpreview4/step4.png"&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="LINE-HEIGHT: normal"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;Nous pouvons activer l’output caching pour cette URL en y ajoutant l’attribut [OutputCache] à notre méthode action.&amp;nbsp;Nous le configurerons pour qu’il conserve en cache les réponses pour une durée de 10 secondes avec la déclaration ci-bas&amp;nbsp;:&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="LINE-HEIGHT: normal"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;&lt;IMG id="Picture 5" title=http://www.scottgu.com/blogposts/mvcpreview4/step5.png style="WIDTH: 684px; HEIGHT: 175px" height=175 alt=http://www.scottgu.com/blogposts/mvcpreview4/step5.png src="http://www.scottgu.com/blogposts/mvcpreview4/step5.png" width=684 border=0 mce_src="http://www.scottgu.com/blogposts/mvcpreview4/step5.png"&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="LINE-HEIGHT: normal"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;Maintenant, lorsque vous appuyé sur rafraîchir, vous aller voir que l’empreinte de temps ce mets à jour seulement au 10 secondes.&amp;nbsp;Ceci est dû au fait que la méthode action est appelé seulement à chaque 10 secondes, toutes les autres requêtes entre cet intervalle sont servies à partir de l’output cache d’ASP.NET(ce qui veut dire qu’aucun code n’est exécuté donc c’est très rapide).&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="LINE-HEIGHT: normal"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;En plus de supporter les durées en temps, l’attribut OutputCache supporte les mêmes options que l’output cache d’ASP.NET (vary by params, headers, content encoding, et custom logic).&amp;nbsp;Par exemple, l’exemple ci-dessous sauvegarderait des versions différentes en cache de la page selon la valeur optionnelle du paramètre de QueryString "PageIndex", et automatiquement effectuer le rendu de la bonne version selon la valeur de la querystring de l’URL d’arrivé:&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="LINE-HEIGHT: normal"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;&lt;IMG id="Picture 6" title=http://www.scottgu.com/blogposts/mvcpreview4/step6.png style="WIDTH: 693px; HEIGHT: 180px" height=180 alt=http://www.scottgu.com/blogposts/mvcpreview4/step6.png src="http://www.scottgu.com/blogposts/mvcpreview4/step6.png" width=693 border=0 mce_src="http://www.scottgu.com/blogposts/mvcpreview4/step6.png"&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="LINE-HEIGHT: normal"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;Vous pouvez aussi intégrer avec la fonction d’invalidation de la cache de base de données d’ASP.NET qui vous permet d’automatiquement invalider la cache lorsqu’une base de données don’t dépend l’URL est modifié (truc: la meilleure façon d’implanter cela c’est de configurer la section CacheProfile de votre web.config et de le faire pointer vers l’attribut OutputCache). &lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="LINE-HEIGHT: normal"&gt;&lt;B&gt;&lt;U&gt;&lt;SPAN style="FONT-SIZE: 13.5pt; FONT-FAMILY: Arial"&gt;&lt;/SPAN&gt;&lt;/U&gt;&lt;/B&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class=MsoNormal style="LINE-HEIGHT: normal"&gt;&lt;B&gt;&lt;U&gt;&lt;SPAN style="FONT-SIZE: 13.5pt; FONT-FAMILY: Arial"&gt;Filtre HandleError&lt;/SPAN&gt;&lt;/U&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="LINE-HEIGHT: normal"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;Le filtre [HandleError] offre un moyen d’indiquer de façon déclarative à un contrôleur ou à une méthode action qu’un message d’erreur amical devrait être affiché si une erreur survient lors de l’exécution d’une requête ASP.NET MVC.&amp;nbsp; &lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="LINE-HEIGHT: normal"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;Pour faire l’essai de ceci, ajoutez un nouveau "TestController" à un projet et implémenté une méthode action qui cause une exception comme ci-bas:&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="LINE-HEIGHT: normal"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;&lt;IMG id="Picture 7" title=http://www.scottgu.com/blogposts/mvcpreview4/step7.png style="WIDTH: 398px; HEIGHT: 163px" height=163 alt=http://www.scottgu.com/blogposts/mvcpreview4/step7.png src="http://www.scottgu.com/blogposts/mvcpreview4/step7.png" width=398 border=0 mce_src="http://www.scottgu.com/blogposts/mvcpreview4/step7.png"&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="LINE-HEIGHT: normal"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;Par défaut, lorsque vous pointez votre navigateur à cette URL, la page d’erreur ASP.NET par défaut pour les usagers distants sera affichée (à moins d’avoir configuré au préalable la section &amp;lt;customErrors&amp;gt; dans le web.config):&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="LINE-HEIGHT: normal"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;&lt;IMG id="Picture 8" title=http://www.scottgu.com/blogposts/mvcpreview4/step26.png style="WIDTH: 682px; HEIGHT: 510px" height=510 alt=http://www.scottgu.com/blogposts/mvcpreview4/step26.png src="http://www.scottgu.com/blogposts/mvcpreview4/step26.png" width=682 border=0 mce_src="http://www.scottgu.com/blogposts/mvcpreview4/step26.png"&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="LINE-HEIGHT: normal"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;Nous pouvons changer le HTML qui affiche l’erreur de façon à ce qu’il soit plus amical en ajoutant l’attribut [HandleError] à notre contrôleur ou à une méthode action de notre contrôleur&amp;nbsp;:&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="LINE-HEIGHT: normal"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;&lt;IMG id="Picture 9" title=http://www.scottgu.com/blogposts/mvcpreview4/step9.png style="WIDTH: 409px; HEIGHT: 185px" height=185 alt=http://www.scottgu.com/blogposts/mvcpreview4/step9.png src="http://www.scottgu.com/blogposts/mvcpreview4/step9.png" width=409 border=0 mce_src="http://www.scottgu.com/blogposts/mvcpreview4/step9.png"&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="LINE-HEIGHT: normal"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;Le filtre HandleError va trapper toutes les exceptions (incluant les erreurs lance lorsque les vues template sont procédées), et affiche une réponse vue custom Error lorsqu’elles ce produise. Par défaut, il tente de résoudre un View template dans notre projet appelé "Error" pour générer la réponse.&amp;nbsp;Vous pouvez placer la vue “Error” soit dans le même répertoire que vos autres vues spécifiques aux contrôleurs (par exemple: \Views\Test pour le contrôleur Test ci-haut), ou à l’intérieur du répertoire\Views\Shared (il va chercher tout d’abord pour une vue d’erreur spécifique au contrôleur et par la suite s’il ne trouve rien, il cherchera dans le répertoire partagé qui contient les vues partagées au sein de tous les contrôleurs).&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="LINE-HEIGHT: normal"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;Visual Studio ajoute maintenant automatiquement un View Template “Error” pour vous dans le répertoire \Views\Shared lorsque vous créer un nouveau projet ASP.NET MVC et ce, à compté de la Preview 4:&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="LINE-HEIGHT: normal"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;&lt;IMG id="Picture 10" title=http://www.scottgu.com/blogposts/mvcpreview4/step11.png style="WIDTH: 243px; HEIGHT: 468px" height=468 alt=http://www.scottgu.com/blogposts/mvcpreview4/step11.png src="http://www.scottgu.com/blogposts/mvcpreview4/step11.png" width=243 border=0 mce_src="http://www.scottgu.com/blogposts/mvcpreview4/step11.png"&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="LINE-HEIGHT: normal"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;Lorsque nous ajoutons un attribut [HandleError] à notre TestController, ceci à pour effet d’afficher par défaut une page d’erreur HTML aux usagers distants (remarquez que la page fait l’utilisation du template master page du projet afin que le message d’erreur soit intégré au site).&amp;nbsp; Vous pouvez évidemment personnaliser le View Template « Error&amp;nbsp;»&amp;nbsp; pour afficher n’importe quel code HTML que vous voulez ou un message plus amical – ci-bas, un exemple de qui est fourni à la base&amp;nbsp;:&lt;BR&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;&lt;BR&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;&amp;nbsp;&lt;IMG id="Picture 11" title=http://www.scottgu.com/blogposts/mvcpreview4/step12.png style="WIDTH: 726px; HEIGHT: 400px" height=400 alt=http://www.scottgu.com/blogposts/mvcpreview4/step12.png src="http://www.scottgu.com/blogposts/mvcpreview4/step12.png" width=726 border=0 mce_src="http://www.scottgu.com/blogposts/mvcpreview4/step12.png"&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="LINE-HEIGHT: normal"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;Dans le but d’aider les développeurs, le View Template « Error&amp;nbsp;»&amp;nbsp; fourni avec le nouveau template de projet dans Visual Studio est programme de sorte à afficher des traces additionnelles du stack lorsque vous exécutez l’application localement:&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="LINE-HEIGHT: normal"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;&lt;IMG id="Picture 12" title=http://www.scottgu.com/blogposts/mvcpreview4/step13.png style="WIDTH: 754px; HEIGHT: 684px" height=684 alt=http://www.scottgu.com/blogposts/mvcpreview4/step13.png src="http://www.scottgu.com/blogposts/mvcpreview4/step13.png" width=754 border=0 mce_src="http://www.scottgu.com/blogposts/mvcpreview4/step13.png"&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="LINE-HEIGHT: normal"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;Vous pouvez désactiver cette fonction soit en supprimant le code directement dans le template ou en activant &amp;lt;customErrors&amp;gt; à "off" dans le fichier web.config.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="LINE-HEIGHT: normal"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;Par défaut, le filtre [HandleError] vas trapper et gérer toutes les exceptions qui peuvent être lancé durant la requête.&amp;nbsp; Vous pouvez alternativement spécifier des types d’Exceptions spécifiques que vous voulez trapper et par la suite les associer à des vues personaliser et spécifiant les propriétés "ExceptionType" et "View" de l’attribut [HandleError]:&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="LINE-HEIGHT: normal"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;&lt;IMG id="Picture 13" title=http://www.scottgu.com/blogposts/mvcpreview4/step15.png style="WIDTH: 754px; HEIGHT: 314px" height=314 alt=http://www.scottgu.com/blogposts/mvcpreview4/step15.png src="http://www.scottgu.com/blogposts/mvcpreview4/step15.png" width=754 border=0 mce_src="http://www.scottgu.com/blogposts/mvcpreview4/step15.png"&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="LINE-HEIGHT: normal"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;Dans le code ci-haut, j’ai décide d’afficher une vue personnaliser pour les erreurs de type SqlExceptions et NullReferenceExceptions.&amp;nbsp; Toutes les autres erreurs utiliseront alors le View Template par défaut.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="LINE-HEIGHT: normal"&gt;&lt;B&gt;&lt;U&gt;&lt;SPAN style="FONT-SIZE: 13.5pt; FONT-FAMILY: Arial"&gt;&lt;/SPAN&gt;&lt;/U&gt;&lt;/B&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class=MsoNormal style="LINE-HEIGHT: normal"&gt;&lt;B&gt;&lt;U&gt;&lt;SPAN style="FONT-SIZE: 13.5pt; FONT-FAMILY: Arial"&gt;Filtre Authorize&lt;/SPAN&gt;&lt;/U&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="LINE-HEIGHT: normal"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;Le filtre [Authorize] offre une façon de déclarer de façon déclarative un contrôle de sécurité d’accès sur un contrôleur ou une méthode action.&amp;nbsp;Il vous permet d’indiquer qu’un usager doit être connecté ou de façon optionnelle qu’il s’agit d’un usager spécifique ou faisant parti d’un rôle de sécurité spécifique afin d’avoir accès.&amp;nbsp;Le filtre fonctionne avec tous les types d’authentification (incluant Windows ainsi que l’authentification Forms), et support le renvoi automatique des usagers anonyme vers un formulaire de login au besoin.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="LINE-HEIGHT: normal"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;Pour en faire l’essai, ajoutez un filtre [Authorize] à la section "About" action dans le HomeController créer par défaut avec :&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="LINE-HEIGHT: normal"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;&lt;IMG id="Picture 14" title=http://www.scottgu.com/blogposts/mvcpreview4/step16.png style="WIDTH: 513px; HEIGHT: 392px" height=392 alt=http://www.scottgu.com/blogposts/mvcpreview4/step16.png src="http://www.scottgu.com/blogposts/mvcpreview4/step16.png" width=513 border=0 mce_src="http://www.scottgu.com/blogposts/mvcpreview4/step16.png"&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="LINE-HEIGHT: normal"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;Déclarer un attribut [Authorize] comme ci-haut signifie qu’un usager doit être connecté au site afin qu’il puisse faire une requête de la section “About” action. Losrqu’un usager non connecté tente d’atteindre l’URL /Home/About, il se verra bloqué l’accès. Si le site web est configuré pour utiliser l’authentification de type Windows, ASP.NET vas automatiquement authentifier l’usager avec ces paramètres d’identité Windows et s’il n’y à pas d’erreur, ils seront autorisés à poursuivre. Si l’application web est configurée pour utiliser l’authentification de type Forms, l’attribut [Authorize] va automatiquement rediriger l’usager à la page de login afin de les authentifier (par la suite il aura accès):&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="LINE-HEIGHT: normal"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;&lt;IMG id="Picture 15" title=http://www.scottgu.com/blogposts/mvcpreview4/step17.png style="WIDTH: 717px; HEIGHT: 603px" height=603 alt=http://www.scottgu.com/blogposts/mvcpreview4/step17.png src="http://www.scottgu.com/blogposts/mvcpreview4/step17.png" width=717 border=0 mce_src="http://www.scottgu.com/blogposts/mvcpreview4/step17.png"&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="LINE-HEIGHT: normal"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;L’attribut [Authorize] vous permet de façon optionnelle de donner accès à seulement certains usagers et / ou certains rôles. Par exemple, je si je voulais limiter l’accès à la section “About” action à Bill Gates et moi je pourrais écrire:&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="LINE-HEIGHT: normal"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;&lt;IMG id="Picture 16" title=http://www.scottgu.com/blogposts/mvcpreview4/step18.png style="WIDTH: 457px; HEIGHT: 160px" height=160 alt=http://www.scottgu.com/blogposts/mvcpreview4/step18.png src="http://www.scottgu.com/blogposts/mvcpreview4/step18.png" width=457 border=0 mce_src="http://www.scottgu.com/blogposts/mvcpreview4/step18.png"&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="LINE-HEIGHT: normal"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;Typiquement pour toutes les applications importantes, vous ne voulez pas avoir à inclure des noms d’usagers dans le code source. Faire l’emploi de concept de plus haut niveau comme les “rôles” pour définir des permissions, et par la suite associer les usagers aux “rôles” séparément (par exemple: en utilisant, active directory ou une base de données pour stocker les associations).&amp;nbsp; L’attribut [Authorize] simplifie l’utilisation de rôles pour le contrôle d’accès sur les contrôleurs et les actions en utilisant la propriété "Roles":&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="LINE-HEIGHT: normal"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;&lt;IMG id="Picture 17" title=http://www.scottgu.com/blogposts/mvcpreview4/step19.png style="WIDTH: 369px; HEIGHT: 160px" height=160 alt=http://www.scottgu.com/blogposts/mvcpreview4/step19.png src="http://www.scottgu.com/blogposts/mvcpreview4/step19.png" width=369 border=0 mce_src="http://www.scottgu.com/blogposts/mvcpreview4/step19.png"&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="LINE-HEIGHT: normal"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;L’attribut [Authorize] &lt;B&gt;&lt;U&gt;n’a pas&lt;/U&gt;&lt;/B&gt; de dépendance à un mécanisme de gestion d’identité des usagers ou de gestion de rôles. Au lieu de cela, il fonctionne avec l’objet ASP.NET “User” qui est extensible et qui permet de travailler avec n’importe quel système de gestion d’identité.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="LINE-HEIGHT: normal"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class=MsoNormal style="LINE-HEIGHT: normal"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;&lt;/SPAN&gt;&lt;B&gt;&lt;U&gt;&lt;SPAN style="FONT-SIZE: 13.5pt; FONT-FAMILY: Arial"&gt;La classe AccountController&lt;/SPAN&gt;&lt;/U&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="LINE-HEIGHT: normal"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;J’ai mentionné un peu plus haut que l’attribut [Authorize] peut être utilisé avec n’importe quel mécanisme d’authentification ou de gestion d’identité. Vous pouvez écrire ou utiliser n’importe quel contrôle UI de connexion ou / et de gestion de noms d’usager / mot de passe pour interagir avec ce dernier.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="LINE-HEIGHT: normal"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;Afin de vous aider à démarrer, le template de projet ASP.NET MVC dans Visual Studio comprend maintenant un "AccountController" préconçu ainsi que les vues associées qui implémente le système forms-authentication membership et comporte les fonctions de connexion, déconnexion, création de nouveaux usagers, et changements de mots de passe.&amp;nbsp; Tous les View Template peuvent être facilement personnalisés indépendamment de la classe AccountController ou de son implémentation:&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="LINE-HEIGHT: normal"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;&lt;IMG id="Picture 18" title=http://www.scottgu.com/blogposts/mvcpreview4/step20.png style="WIDTH: 248px; HEIGHT: 552px" height=552 alt=http://www.scottgu.com/blogposts/mvcpreview4/step20.png src="http://www.scottgu.com/blogposts/mvcpreview4/step20.png" width=248 border=0 mce_src="http://www.scottgu.com/blogposts/mvcpreview4/step20.png"&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="LINE-HEIGHT: normal"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;Le template Site.master comprend maintenant un UI dans le coin supérieur droit qui permet les connexions et déconnexions.&amp;nbsp; Lorsque vous utilisez les authentifications forms-based, il vous demandera de vous connecter si vous n’êtes pas déjà authentifié:&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="LINE-HEIGHT: normal"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;&lt;IMG id="Picture 19" title=http://www.scottgu.com/blogposts/mvcpreview4/step21.png style="WIDTH: 735px; HEIGHT: 456px" height=456 alt=http://www.scottgu.com/blogposts/mvcpreview4/step21.png src="http://www.scottgu.com/blogposts/mvcpreview4/step21.png" width=735 border=0 mce_src="http://www.scottgu.com/blogposts/mvcpreview4/step21.png"&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="LINE-HEIGHT: normal"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;Et il affiche un message de bienvenue ainsi qu’un lien pour la déconnexion si vous êtes authentifié sur le site:&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="LINE-HEIGHT: normal"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;&lt;IMG id="Picture 20" title=http://www.scottgu.com/blogposts/mvcpreview4/step22.png style="WIDTH: 771px; HEIGHT: 461px" height=461 alt=http://www.scottgu.com/blogposts/mvcpreview4/step22.png src="http://www.scottgu.com/blogposts/mvcpreview4/step22.png" width=771 border=0 mce_src="http://www.scottgu.com/blogposts/mvcpreview4/step22.png"&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="LINE-HEIGHT: normal"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;Cliquer le lien de connexion redirige l’usager sur la page de connexion comme ci-bas qu’il peut utiliser pour s’authentifier&amp;nbsp;:&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="LINE-HEIGHT: normal"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;&lt;IMG id="Picture 21" title=http://www.scottgu.com/blogposts/mvcpreview4/step23.png style="WIDTH: 732px; HEIGHT: 597px" height=597 alt=http://www.scottgu.com/blogposts/mvcpreview4/step23.png src="http://www.scottgu.com/blogposts/mvcpreview4/step23.png" width=732 border=0 mce_src="http://www.scottgu.com/blogposts/mvcpreview4/step23.png"&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="LINE-HEIGHT: normal"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;Les nouveaux usagers peuvent cliquer le lien “register” afin de créer un nouveau compte:&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="LINE-HEIGHT: normal"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;&lt;IMG id="Picture 22" title=http://www.scottgu.com/blogposts/mvcpreview4/step24.png style="WIDTH: 739px; HEIGHT: 635px" height=635 alt=http://www.scottgu.com/blogposts/mvcpreview4/step24.png src="http://www.scottgu.com/blogposts/mvcpreview4/step24.png" width=739 border=0 mce_src="http://www.scottgu.com/blogposts/mvcpreview4/step24.png"&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="LINE-HEIGHT: normal"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;L’affichage et la gestion d’erreur sont aussi inclus&amp;nbsp;:&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="LINE-HEIGHT: normal"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;&lt;IMG id="Picture 23" title=http://www.scottgu.com/blogposts/mvcpreview4/step25.png style="WIDTH: 734px; HEIGHT: 663px" height=663 alt=http://www.scottgu.com/blogposts/mvcpreview4/step25.png src="http://www.scottgu.com/blogposts/mvcpreview4/step25.png" width=734 border=0 mce_src="http://www.scottgu.com/blogposts/mvcpreview4/step25.png"&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="LINE-HEIGHT: normal"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;La classe AccountController qui est ajoutée aux nouveaux projets utilise les fonctions natives de l’API ASP.NET Membership pour faire la sauvegarde et la gestion des paramètres de connexion des usagers (le système de Membership utilise un API provider qui permet tout à type de stockage back-end de s’intégrer et ASP.NET inclut un provider préconcut pour ActiveDirectory et SQL serveur).&amp;nbsp;Si vous ne voulez pas utiliser le système natif de Membership, vous pouvez conserver les mêmes signatures pour l’action AccountController, View templates, la logique de ticket Forms Authentication, et juste remplacer la logique du compte usager au sein de la classe AccountController. Pour la prochaine Preview d’ ASP.NET MVC nous planifions de faire l’encapsulation la logique d’interaction entre l’AccountController et le système d’identification des usagers derrière une interface qui rendras plus facile l’intégration de votre propre système de stockage (sans avoir à implémenter un Membership provider complet) et aussi faciliter l’exécution de test unitaire.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="LINE-HEIGHT: normal"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;Notre objectif est d’offrir aux gens une belle façon de débuter rapidement et par le fait même de leur permettre d’avoir un système de sécurité fonctionnel d’un bout à l’autre dès qu’ils créer un nouveau projet.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="LINE-HEIGHT: normal"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class=MsoNormal style="LINE-HEIGHT: normal"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;&lt;/SPAN&gt;&lt;B&gt;&lt;U&gt;&lt;SPAN lang=EN-US style="FONT-SIZE: 13.5pt; FONT-FAMILY: Arial"&gt;Tester les TempData&lt;/SPAN&gt;&lt;/U&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="LINE-HEIGHT: normal"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;Un dernier détail concernant ce premier post portant sur la Preview 4 est que des améliorations sont faites à la classe Controller afin de faciliter les tests unitaires de la collection TempData. La propriété TempData vous permet de stocker les données afin de rendre persistantes les requêtes futures des usagers. Elle à la sémantique de duré seulement le temps d’une requête future (après quoi elle est supprimée). Ceci est typiquement utilisé dans les scénarios MVC où vous voulez performer une redirection côté-client afin de changer l’URL dans le navigateur, et que vous voulez une façon simple de stockée les données scratch.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="LINE-HEIGHT: normal"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;Avec les Preview précédentes d’ASP.NET MVC, vous deviez faire le mocking d’objets afin de tester la collection.&amp;nbsp; Avec la Preview 4 vous n’avez plus rien à faire de cela. Vous pouvez maintenant ajouter et vérifier les objets au sein du Controller de la collection TempData directement dans vos tests unitaires (par exemple: populer la propriété TempData d’un contrôleur avant d’appeler sa méthode action, ou de vérifier que l’action a mis à jour les TempData après le retour de l’action). La sémantique actuelle de stockage de la collection TempData est maintenant encapsulée dans une propriété TempDataProvider.&amp;nbsp; &lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="LINE-HEIGHT: normal"&gt;&lt;B&gt;&lt;U&gt;&lt;SPAN lang=EN-US style="FONT-SIZE: 13.5pt; FONT-FAMILY: Arial"&gt;&lt;/SPAN&gt;&lt;/U&gt;&lt;/B&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class=MsoNormal style="LINE-HEIGHT: normal"&gt;&lt;B&gt;&lt;U&gt;&lt;SPAN lang=EN-US style="FONT-SIZE: 13.5pt; FONT-FAMILY: Arial"&gt;Conclusion&lt;/SPAN&gt;&lt;/U&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="LINE-HEIGHT: normal"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;J’espère que le post ci-haut offre une vue d’ensemble sur le nombre de nouvelles fonctionnalités et changements qui arrive avec la Preview 4 d’ASP.NET MVC. Mon prochain post sur ASP.NET MVC couvrira les nouvelles fonctionnalités AJAX qui ont été ajoutés ainsi que les avantages qu’elles comportent.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="LINE-HEIGHT: normal"&gt;&lt;SPAN lang=EN-US style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;J'espère que cela aide,&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="LINE-HEIGHT: normal"&gt;&lt;SPAN lang=EN-US style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;Scott&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN lang=EN-US&gt;&amp;nbsp;&lt;SPAN lang=FR-CA style="FONT-SIZE: 10pt; LINE-HEIGHT: 115%; FONT-FAMILY: 'Arial','sans-serif'"&gt;&lt;SPAN lang=FR-CA style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'"&gt;&lt;A href="http://codebehind.ca/blogs/alexmensi/default.aspx"&gt;&lt;FONT color=#3399ff&gt;Alexandre Mensi&lt;/FONT&gt;&lt;/A&gt; - &lt;A class="" href="http://weblogs.asp.net/scottgu/archive/2008/07/14/asp-net-mvc-preview-4-release-part-1.aspx" target=_blank mce_href="http://weblogs.asp.net/scottgu/archive/2008/07/14/asp-net-mvc-preview-4-release-part-1.aspx"&gt;&lt;SPAN class=""&gt;&lt;FONT color=#3399ff&gt;Article original par Scott Guthrie&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/A&gt;&lt;/SPAN&gt;&lt;/SPAN&gt; &lt;/SPAN&gt;&lt;/P&gt;&lt;/DIV&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=6466664" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/scottgufrench/archive/tags/ASP.NET/default.aspx">ASP.NET</category><category domain="http://weblogs.asp.net/scottgufrench/archive/tags/.NET/default.aspx">.NET</category><category domain="http://weblogs.asp.net/scottgufrench/archive/tags/MVC/default.aspx">MVC</category><category domain="http://weblogs.asp.net/scottgufrench/archive/tags/Visual+Studio/default.aspx">Visual Studio</category></item><item><title>Visual Web Developer 2008 Express supporte ASP.NET MVC</title><link>http://weblogs.asp.net/scottgufrench/archive/2008/06/11/visual-web-developer-2008-express-supporte-asp-net-mvc.aspx</link><pubDate>Wed, 11 Jun 2008 09:32:00 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:6267878</guid><dc:creator>loicbar</dc:creator><slash:comments>2</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/scottgufrench/rsscomments.aspx?PostID=6267878</wfw:commentRss><comments>http://weblogs.asp.net/scottgufrench/archive/2008/06/11/visual-web-developer-2008-express-supporte-asp-net-mvc.aspx#comments</comments><description>&lt;p&gt;Je viens juste de publier un billet sur la Preview 3 du framework ASP.NET MVC et j'ai oubli&amp;#233; de signaler quelque chose de tout m&amp;#234;me important &amp;#224; propos de cette version : elle est compatible aussi bien avec Visual Studio 2008 qu'avec Visual Web Developer 2008 Express (version gratuite).&lt;/p&gt;  &lt;p&gt;La version SP1 de Visual Web Developer Express supporte maintenant aussi bien les projets de cr&amp;#233;ation de librairies que les projets web (avant, elle ne supportait que les projets web). Cet ajout est tr&amp;#232;s utile lorsque vous voulez utiliser ASP.NET MVC ou encore Silverlight. Si vous installez la version &lt;a href="http://weblogs.asp.net/scottgu/archive/2008/05/12/visual-studio-2008-and-net-framework-3-5-service-pack-1-beta.aspx"&gt;SP1 B&amp;#233;ta&lt;/a&gt; de Visual Web Developer Express vous pouvez commencer directement avec la Preview 3 D'ASP.NET MVC.&lt;/p&gt;  &lt;p&gt;Important : ASP.NET MVC Preview 3 ne requi&amp;#232;re pas la SP1 d'install&amp;#233; si vous utilisez Visual Studio 2008. Cette version fonctionnera aussi bien avec Visual Studio 2008 qu'avec VS 2008 SP1.&lt;/p&gt;  &lt;p&gt;Vous pouvez en apprendre plus sur le support d'ASP.NET MVC Preview 3 dans VWD Express sur le blog de la &amp;quot;VS Web Tool team&amp;quot; &lt;a href="http://blogs.msdn.com/webdevtools/archive/2008/05/30/asp-net-mvc-preview-3-tooling-updates.aspx"&gt;ici&lt;/a&gt;. Si vous vous rendez sur le lien, vous trouverez &amp;#233;galement un lien de t&amp;#233;l&amp;#233;chargement d'un projet de Test d'ASP.NET MVC qui supporte NUnit. Vous pourrez &amp;#233;videmment utiliser ce projet sur Visual Studio 2008 ou sur Viual Web Developer Express 2008.&lt;/p&gt;  &lt;p&gt;J'esp&amp;#232;re que cela pourra vous aider,&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.codes-sources.com/loicbar/default.aspx"&gt;Lo&amp;#239;c Bar&lt;/a&gt; - &lt;a href="http://weblogs.asp.net/scottgu/archive/2008/06/01/asp-net-mvc-support-with-visual-web-developer-2008-express.aspx"&gt;Article bas&amp;#233; sur celui de Scott Guthrie&lt;/a&gt;.&lt;/p&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=6267878" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/scottgufrench/archive/tags/.NET/default.aspx">.NET</category><category domain="http://weblogs.asp.net/scottgufrench/archive/tags/MVC/default.aspx">MVC</category><category domain="http://weblogs.asp.net/scottgufrench/archive/tags/Visual+Studio/default.aspx">Visual Studio</category></item><item><title>Sortie d'ASP.NET MVC Preview 3</title><link>http://weblogs.asp.net/scottgufrench/archive/2008/06/11/sortie-d-asp-net-mvc-preview-3.aspx</link><pubDate>Wed, 11 Jun 2008 08:45:31 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:6267828</guid><dc:creator>loicbar</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/scottgufrench/rsscomments.aspx?PostID=6267828</wfw:commentRss><comments>http://weblogs.asp.net/scottgufrench/archive/2008/06/11/sortie-d-asp-net-mvc-preview-3.aspx#comments</comments><description>&lt;p&gt;Le mardi 27 Mai est sorti la Preview 3 du framework MVC d'ASP.NET. Scott Guthrie avait parl&amp;#233;, le mois dernier, d'une version interne chez Microsoft qui incluait pas mal de fonctionnalit&amp;#233;s de cette preview. Cette version contient n&amp;#233;anmoins des fonctionnalit&amp;#233;s que celle du mois dernier n'avait pas dont quelques am&amp;#233;liorations et perfectionnement en plus des outils pour Visual Studio 2008.&lt;/p&gt;  &lt;p&gt;Vous pouvez t&amp;#233;l&amp;#233;charger un installeur pour la Preview 3 du framework MVCd'ASP.NET &lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyId=92F2A8F0-9243-4697-8F9A-FCF6BC9F66AB&amp;amp;displaylang=en"&gt;ici&lt;/a&gt;. Vous pouvez &amp;#233;galement t&amp;#233;l&amp;#233;charger les codes sources ainsi que le framework de test unitaires &lt;a href="http://www.codeplex.com/Release/ProjectReleases.aspx?ProjectName=aspnet&amp;amp;ReleaseId=13792"&gt;ici&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;u&gt;Contr&amp;#244;leur de m&amp;#233;thode d'action&lt;/u&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;La Preview 3 du framework MVC ASP.NET comprend les modifications du contr&amp;#244;leurs qui avaient &amp;#233;t&amp;#233; discut&amp;#233;es et vues dans les sources de la version d'Avril. Il y a tout de m&amp;#234;me eu quelques ajustement.&lt;/p&gt;  &lt;p&gt;Vous pouvez continuer &amp;#224; &amp;#233;crire des m&amp;#233;thodes du contr&amp;#244;leur qui retournent &amp;quot;void&amp;quot; et qui encapsule toute la logique de l'action. Par exemple : &lt;/p&gt;  &lt;p&gt;&lt;a href="http://weblogs.asp.net/blogs/scottgufrench/WindowsLiveWriter/SortiedASP.NETMVCPreview3_10783/image_2.png"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="152" alt="image" src="http://weblogs.asp.net/blogs/scottgufrench/WindowsLiveWriter/SortiedASP.NETMVCPreview3_10783/image_thumb.png" width="742" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Qui rendra le HTML suivant quand on l'ex&amp;#233;cute :&lt;/p&gt;  &lt;p&gt;&lt;a href="http://weblogs.asp.net/blogs/scottgufrench/WindowsLiveWriter/SortiedASP.NETMVCPreview3_10783/image_4.png"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="259" alt="image" src="http://weblogs.asp.net/blogs/scottgufrench/WindowsLiveWriter/SortiedASP.NETMVCPreview3_10783/image_thumb_1.png" width="730" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;La Preview 3 supporte maintenant une approche o&amp;#249; vous retournerez un objet &amp;quot;ActionResult&amp;quot; qui permet d'indiquer le r&amp;#233;sultat de l'action et d'effectuer un traitement en rapport. Cela va permettre de rendre les tests beaucoup plus facile &amp;#224; r&amp;#233;aliser. Cela va aussi permettre d'avoir une composition plus propre et d'avoir un contr&amp;#244;le sur l'ex&amp;#233;cution.&lt;/p&gt;  &lt;p&gt;Par exemple, nous pourrions utiliser LINQ to SQL avec notre m&amp;#233;thode &amp;quot;Browse&amp;quot; pour r&amp;#233;cup&amp;#233;rer une liste d'objet &amp;quot;Product&amp;quot; de notre base de donn&amp;#233;es et indiquer que nous voulons une vue pour les afficher. Le code suivant passera trois &amp;quot;ViewData&amp;quot; &amp;#224; la vue : &lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Title (string) &lt;/li&gt;    &lt;li&gt;CategoryName (string) &lt;/li&gt;    &lt;li&gt;Une liste de &amp;quot;Product&amp;quot; (liste typ&amp;#233;e) &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;a href="http://weblogs.asp.net/blogs/scottgufrench/WindowsLiveWriter/SortiedASP.NETMVCPreview3_10783/image_6.png"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="347" alt="image" src="http://weblogs.asp.net/blogs/scottgufrench/WindowsLiveWriter/SortiedASP.NETMVCPreview3_10783/image_thumb_2.png" width="745" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Un des avantages d'utiliser l'ActionResult ci-dessus est que cela rend la cr&amp;#233;ation d'un test du contr&amp;#244;leur vraiment simple. Ci-dessous un test qui v&amp;#233;rifie la comportement de notre m&amp;#233;thode &amp;quot;Browse&amp;quot; :&lt;/p&gt;  &lt;p&gt;&lt;a href="http://weblogs.asp.net/blogs/scottgufrench/WindowsLiveWriter/SortiedASP.NETMVCPreview3_10783/image_8.png"&gt;&lt;img height="655" alt="image" src="http://weblogs.asp.net/blogs/scottgufrench/WindowsLiveWriter/SortiedASP.NETMVCPreview3_10783/image_thumb_3.png" width="828" border="0" /&gt;&lt;/a&gt;&amp;#160; &lt;/p&gt;  &lt;p&gt;Nous pouvons donc cr&amp;#233;er une vue dans le r&amp;#233;pertoire \Views\Products pour afficher la r&amp;#233;ponse en utilisant le &amp;quot;ViewData&amp;quot; qui a &amp;#233;t&amp;#233; initialis&amp;#233; au-dessus :&lt;/p&gt;  &lt;p&gt;&lt;a href="http://weblogs.asp.net/blogs/scottgufrench/WindowsLiveWriter/SortiedASP.NETMVCPreview3_10783/image_10.png"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="696" alt="image" src="http://weblogs.asp.net/blogs/scottgufrench/WindowsLiveWriter/SortiedASP.NETMVCPreview3_10783/image_thumb_4.png" width="807" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Lorsqu'on se rend sur /Products/Browse/Beverages, on obtient maintenant le r&amp;#233;sultat suivant (les utilisations de ViewData sont entour&amp;#233;es en rouge) :&lt;/p&gt;  &lt;p&gt;&lt;a href="http://weblogs.asp.net/blogs/scottgufrench/WindowsLiveWriter/SortiedASP.NETMVCPreview3_10783/image_12.png"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="678" alt="image" src="http://weblogs.asp.net/blogs/scottgufrench/WindowsLiveWriter/SortiedASP.NETMVCPreview3_10783/image_thumb_5.png" width="740" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Notez qu'en plus de &amp;quot;ViewResult&amp;quot; (pour indiquer qu'une vue doit &amp;#234;tre affich&amp;#233;e), la Preview 3 du framework MVC d'ASP.NET permet de retourner un &amp;quot;JsonResult&amp;quot; (pour des sc&amp;#233;narios de s&amp;#233;rialisation JSON AJAX),&amp;#160; un &amp;quot;ContentResult&amp;quot; (pour le contenu sans vue) ou encore HttpRedirect et RedirectToAction/Route.&lt;/p&gt;  &lt;p&gt;L'approche ActionResult est extensible (permet de cr&amp;#233;er votre propre type de retour) et vous verrez appara&amp;#238;tre d'autres types de retour dans les prochaines versions.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;u&gt;Am&amp;#233;lioration des m&amp;#233;thodes d'aide HTML&lt;/u&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Les m&amp;#233;thodes d'aides &amp;#224; la manipulation du HTML ont &amp;#233;t&amp;#233; mise &amp;#224; jour dans la Preview 3 du Framework ASP.NET MVC. En plus de quelques bugs qui ont &amp;#233;t&amp;#233; corrig&amp;#233;s, il y a de nouvelles fonctionnalit&amp;#233;s assez utiles.&lt;/p&gt;  &lt;p&gt;&lt;u&gt;Lookup automatique&lt;/u&gt;&lt;/p&gt;  &lt;p&gt;Dans les pr&amp;#233;c&amp;#233;dentes version de la preview, vous deviez toujours explicitement passer une valeur pour l'afficher &amp;#224; l'aide des Helper HTML. Par exemple, vous proc&amp;#233;diez comme ceci :&lt;/p&gt;  &lt;p&gt;&lt;a href="http://weblogs.asp.net/blogs/scottgufrench/WindowsLiveWriter/SortiedASP.NETMVCPreview3_10783/image_14.png"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="53" alt="image" src="http://weblogs.asp.net/blogs/scottgufrench/WindowsLiveWriter/SortiedASP.NETMVCPreview3_10783/image_thumb_6.png" width="514" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Vous pouvez toujours proc&amp;#233;der de cette mani&amp;#232;re mais vous avez maintenant la possibilit&amp;#233; de simplifier l'&amp;#233;criture :&lt;/p&gt;  &lt;p&gt;&lt;a href="http://weblogs.asp.net/blogs/scottgufrench/WindowsLiveWriter/SortiedASP.NETMVCPreview3_10783/image_16.png"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="53" alt="image" src="http://weblogs.asp.net/blogs/scottgufrench/WindowsLiveWriter/SortiedASP.NETMVCPreview3_10783/image_thumb_7.png" width="308" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Les HTML Helper vont maintenant directement rechercher dans le ViewData ou dans le Model avec la clef &amp;quot;ProductName&amp;quot; pour trouver la valeur.&lt;/p&gt;  &lt;p&gt;&lt;u&gt;SelectList et MultiSelectList ViewModels&lt;/u&gt;&lt;/p&gt;  &lt;p&gt;Les nouvelles classe SelectList et MultiSelectList ont &amp;#233;t&amp;#233; inclues pour faciliter la cr&amp;#233;ation de dropdownlist ou multi-listbox HTML (avec la gestion de l'&amp;#233;lement courant etc.). Une approche qui peut &amp;#234;tre utilis&amp;#233;e pour g&amp;#233;n&amp;#233;rer des formulaires de fa&amp;#231;on plus propre. Vous devez, pour cela, d&amp;#233;clarer le nouvel objet et le passer dans le ViewData pour l'afficher dans la vue.&lt;/p&gt;  &lt;p&gt;Par exemple, ci-dessous, nous allons cr&amp;#233;er un objet SelectList avec une liste d'identifiants de cat&amp;#233;gories provenant d'une base de donn&amp;#233;es. Nous indiquons que nous utiliserons &amp;quot;CategoryID&amp;quot; pour la valeur et &amp;quot;CategoryName&amp;quot; pour le texte qui sera affich&amp;#233;. On d&amp;#233;fini &amp;#233;galement l'ID par d&amp;#233;faut :&lt;/p&gt;  &lt;p&gt;&lt;a href="http://weblogs.asp.net/blogs/scottgufrench/WindowsLiveWriter/SortiedASP.NETMVCPreview3_10783/image_18.png"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="324" alt="image" src="http://weblogs.asp.net/blogs/scottgufrench/WindowsLiveWriter/SortiedASP.NETMVCPreview3_10783/image_thumb_8.png" width="922" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Dans notre vue, nous n'avons besoin que d'utiliser le code suivant pour afficher notre &amp;quot;drop-downlist&amp;quot; avec le SelectList que nous avons d&amp;#233;clarer dans notre ViewData :&lt;/p&gt;  &lt;p&gt;&lt;a href="http://weblogs.asp.net/blogs/scottgufrench/WindowsLiveWriter/SortiedASP.NETMVCPreview3_10783/image_20.png"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="95" alt="image" src="http://weblogs.asp.net/blogs/scottgufrench/WindowsLiveWriter/SortiedASP.NETMVCPreview3_10783/image_thumb_9.png" width="440" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;A l'ex&amp;#233;cution, cela rendra :&lt;/p&gt;  &lt;p&gt;&lt;a href="http://weblogs.asp.net/blogs/scottgufrench/WindowsLiveWriter/SortiedASP.NETMVCPreview3_10783/image_22.png"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="207" alt="image" src="http://weblogs.asp.net/blogs/scottgufrench/WindowsLiveWriter/SortiedASP.NETMVCPreview3_10783/image_thumb_10.png" width="333" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&lt;a href="http://weblogs.asp.net/blogs/scottgufrench/WindowsLiveWriter/SortiedASP.NETMVCPreview3_10783/image_24.png"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="247" alt="image" src="http://weblogs.asp.net/blogs/scottgufrench/WindowsLiveWriter/SortiedASP.NETMVCPreview3_10783/image_thumb_11.png" width="330" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Les sc&amp;#233;narios de validation ne sont pas encore inclut avec nos HTML Helpers (vous devez &amp;#233;crire votre propre code pour la validation) mais cela sera inclut prochainement pour rendre la cr&amp;#233;ations de pages d'&amp;#233;ditions plus facile.&lt;/p&gt;  &lt;p&gt;Vous devriez voir &amp;#233;galement appara&amp;#238;tre des m&amp;#233;thodes d'aides pour ASP.NET Ajax pour faciliter l'int&amp;#233;gration d'Ajax dans ASP.NET MVC.&lt;/p&gt;  &lt;p&gt;&lt;u&gt;Am&amp;#233;lioration de l'URL Rooting&lt;/u&gt;&lt;/p&gt;  &lt;p&gt;La Preview 3 d'ASP.NET MVC inclue un grand nombre d'am&amp;#233;liorations concernant le syst&amp;#232;me de routage. C'est l'une des fonctionnalit&amp;#233;s les plus essensielles lorsqu'on parle de mod&amp;#232;le MVC, c'est pour cette raison que nous mettons un focus dessus depuis les premi&amp;#232;res versions. Notre nouveau moteur de routage sera d&amp;#233;livr&amp;#233; avec la SP1 du .NET 3.5 cet &amp;#233;t&amp;#233; et supportera le Web Forms et les requ&amp;#234;tes MVC. ASP.NET MVC contiendra &amp;#233;galement sa propre version de la librairie. Vous pourrez donc l'utiliser sur des syst&amp;#232;mes qui n'ont pas le SP1.&lt;/p&gt;  &lt;p&gt;Voici une s&amp;#233;rie d'am&amp;#233;lioration de la Preview 3 :&lt;/p&gt;  &lt;p&gt;&lt;u&gt;Les m&amp;#233;thodes Helpers MapRoute() et IgnoreRoute()&lt;/u&gt;&lt;/p&gt;  &lt;p&gt;On retrouve dans ASP.NET MVC les nouvelles m&amp;#233;thodes d'aide &amp;quot;MapRoute&amp;quot; et &amp;quot;IgnoreRoute&amp;quot; qui peuvent &amp;#234;tre utiliser pour facilit&amp;#233; l'enregistrement de r&amp;#232;gle de routage. MapRoute() permet d'ajouter des r&amp;#232;gles de routage &amp;#224; la collection de Routes tr&amp;#232;s facilement. IgnoreRoute() permet d'indiquer au syst&amp;#232;me de routage d'arr&amp;#234;ter de traiter certain pattern d'URL (par exemple les handler axd, les ressources ASP.NET qui sont utilis&amp;#233;es pour fournir du JavaScript, des images etc.).&lt;/p&gt;  &lt;p&gt;Ci-dessous un exemple de d&amp;#233;monstration dans la m&amp;#233;thode RegisterRoutes du Global.asax :&lt;/p&gt;  &lt;p&gt;&lt;a href="http://weblogs.asp.net/blogs/scottgufrench/WindowsLiveWriter/SortiedASP.NETMVCPreview3_10783/image_26.png"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="302" alt="image" src="http://weblogs.asp.net/blogs/scottgufrench/WindowsLiveWriter/SortiedASP.NETMVCPreview3_10783/image_thumb_12.png" width="843" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;La m&amp;#233;thode MapRoutes() est surcharg&amp;#233;e&amp;#160; et prend deux, trois ou quatre param&amp;#232;tres (le nom de la r&amp;#232;gle, la syntaxe de l'URL, le param&amp;#232;tre de l'URL par d&amp;#233;faut, et les param&amp;#232;tre d'URL optionnels).&lt;/p&gt;  &lt;p&gt;Vous pouvez appeler MapRoute() autant de fois que vous le voulez pour enregistrer plusieurs r&amp;#232;gles de routages dans le syst&amp;#232;me. Par exemple, en plus des conventions par d&amp;#233;faut, vous pouvez ajouter des r&amp;#232;gles nomm&amp;#233;e comme ci-dessous :&lt;/p&gt;  &lt;p&gt;&lt;a href="http://weblogs.asp.net/blogs/scottgufrench/WindowsLiveWriter/SortiedASP.NETMVCPreview3_10783/image_28.png"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="232" alt="image" src="http://weblogs.asp.net/blogs/scottgufrench/WindowsLiveWriter/SortiedASP.NETMVCPreview3_10783/image_thumb_13.png" width="861" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;On peut explicitement indiquer que vous voulez g&amp;#233;n&amp;#233;rer un lien qui utilise cette r&amp;#232;gles dans votre vue. Par exemple, nous pourrions utiliser Html.RouteLink de la mani&amp;#232;re suivante en passant la cat&amp;#233;gorie &amp;quot;food&amp;quot; comme param&amp;#232;tre &amp;#224; notre contr&amp;#244;leur :&lt;/p&gt;  &lt;p&gt;&lt;a href="http://weblogs.asp.net/blogs/scottgufrench/WindowsLiveWriter/SortiedASP.NETMVCPreview3_10783/image_30.png"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="78" alt="image" src="http://weblogs.asp.net/blogs/scottgufrench/WindowsLiveWriter/SortiedASP.NETMVCPreview3_10783/image_thumb_14.png" width="778" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160; Ce vue affichera donc un lien qui respecte la r&amp;#232;gles de routage que nous lui avons pass&amp;#233;e avec la cat&amp;#233;gorie et affichera le code HTML suivant :&lt;/p&gt;  &lt;p&gt;&lt;a href="http://weblogs.asp.net/blogs/scottgufrench/WindowsLiveWriter/SortiedASP.NETMVCPreview3_10783/image_32.png"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="64" alt="image" src="http://weblogs.asp.net/blogs/scottgufrench/WindowsLiveWriter/SortiedASP.NETMVCPreview3_10783/image_thumb_15.png" width="519" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Nous pouvons &amp;#233;galement utiliser Url.RouteUrl(routeName, values) si vous voulons juste r&amp;#233;cup&amp;#233;rer une URL correspondant &amp;#224; une r&amp;#232;gle nomm&amp;#233;e (sans avoir les balises &amp;lt;a&amp;gt; etc.)&lt;/p&gt;  &lt;p&gt;De plus, nous pourrions appeler la m&amp;#233;thode RedirectToRoute(routeName, values) dans notre contr&amp;#244;leur si nous voulions rediriger l'utilisateur en utilisant une r&amp;#232;gle d'URL d&amp;#233;sign&amp;#233;e par &amp;quot;routeName&amp;quot;.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;u&gt;Plus de fonctionnalit&amp;#233; pour le routage&lt;/u&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;La Preview 3 d'ASP.NET MVC supporte &amp;#233;galement toute une s&amp;#233;rie de nouvelles fonctionnalit&amp;#233;s. Vous pouvez maintenant inclure les caract&amp;#232;re &amp;quot;-&amp;quot;, &amp;quot;.&amp;quot;, &amp;quot;,&amp;quot; ,&amp;quot;;&amp;quot; comme part de votre URL.&lt;/p&gt;  &lt;p&gt;Par exemple, utiliser &amp;quot;-&amp;quot; dans l'URL pour facilit&amp;#233; le parsing de la langue et de la localisation :&lt;/p&gt;  &lt;p&gt;&lt;a href="http://weblogs.asp.net/blogs/scottgufrench/WindowsLiveWriter/SortiedASP.NETMVCPreview3_10783/image_34.png"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="165" alt="image" src="http://weblogs.asp.net/blogs/scottgufrench/WindowsLiveWriter/SortiedASP.NETMVCPreview3_10783/image_thumb_16.png" width="838" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Cela passera les param&amp;#232;tres appropri&amp;#233;s correspondant &amp;#224; la langue, &amp;#224; la localisation et &amp;#224; la cat&amp;#233;gorie au contr&amp;#244;leur.&lt;/p&gt;  &lt;table cellspacing="0" cellpadding="2" width="838" border="1"&gt;&lt;tbody&gt;     &lt;tr&gt;       &lt;td valign="top" width="319"&gt;&lt;u&gt;R&amp;#232;gle&lt;/u&gt;&lt;/td&gt;        &lt;td valign="top" width="207"&gt;&lt;u&gt;Exemple&lt;/u&gt;&lt;/td&gt;        &lt;td valign="top" width="309"&gt;&lt;u&gt;Param&amp;#232;tres re&amp;#231;us&lt;/u&gt;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="317"&gt;{language}-{locale}/products/browse/{category}&lt;/td&gt;        &lt;td valign="top" width="207"&gt;/en-us/products/browse/food&lt;/td&gt;        &lt;td valign="top" width="309"&gt;language=en, locale=us, category=food&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="316"&gt;&amp;#160;&lt;/td&gt;        &lt;td valign="top" width="207"&gt;/en-uk/products/browse/food&lt;/td&gt;        &lt;td valign="top" width="309"&gt;language=en, locale=uk, category=food&lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;  &lt;p&gt;Vous pouvez &amp;#233;galement utiliser le &amp;quot;.&amp;quot; pour les extensions de fichiers pour savoir quel rendu vous devez afficher (hml, xml, etc.) :&lt;/p&gt;  &lt;p&gt;&lt;a href="http://weblogs.asp.net/blogs/scottgufrench/WindowsLiveWriter/SortiedASP.NETMVCPreview3_10783/image_36.png"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="152" alt="image" src="http://weblogs.asp.net/blogs/scottgufrench/WindowsLiveWriter/SortiedASP.NETMVCPreview3_10783/image_thumb_17.png" width="827" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;La cat&amp;#233;gorie et le format seront pass&amp;#233; au contr&amp;#244;leur (ProductController.Browse). &lt;/p&gt;  &lt;table cellspacing="0" cellpadding="2" width="837" border="1"&gt;&lt;tbody&gt;     &lt;tr&gt;       &lt;td valign="top" width="319"&gt;&lt;u&gt;R&amp;#232;gle&lt;/u&gt;&lt;/td&gt;        &lt;td valign="top" width="207"&gt;&lt;u&gt;Exemple&lt;/u&gt;&lt;/td&gt;        &lt;td valign="top" width="309"&gt;&lt;u&gt;Param&amp;#232;tres re&amp;#231;us&lt;/u&gt;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="317"&gt;products/browse/{category}.{format}&lt;/td&gt;        &lt;td valign="top" width="207"&gt;/products/browse/food.xml&lt;/td&gt;        &lt;td valign="top" width="309"&gt;category=food, format=xml&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="316"&gt;&amp;#160;&lt;/td&gt;        &lt;td valign="top" width="207"&gt;/products/browse/food.html&lt;/td&gt;        &lt;td valign="top" width="309"&gt;category=food, format=html&lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;  &lt;p&gt;La Preview 3 d'ASP.NET MVC supporte &amp;#233;galement les URL avec du contenu :&lt;/p&gt;  &lt;p&gt;&lt;a href="http://weblogs.asp.net/blogs/scottgufrench/WindowsLiveWriter/SortiedASP.NETMVCPreview3_10783/image_38.png"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="160" alt="image" src="http://weblogs.asp.net/blogs/scottgufrench/WindowsLiveWriter/SortiedASP.NETMVCPreview3_10783/image_thumb_18.png" width="817" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Cela passera un&amp;#160; param&amp;#232;tre &amp;quot;contentURL&amp;quot; dans notre&amp;#160; m&amp;#233;thode de contr&amp;#244;leur WikiController.DisplayPage.&lt;/p&gt;  &lt;table cellspacing="0" cellpadding="2" width="837" border="1"&gt;&lt;tbody&gt;     &lt;tr&gt;       &lt;td valign="top" width="319"&gt;&lt;u&gt;R&amp;#232;gle&lt;/u&gt;&lt;/td&gt;        &lt;td valign="top" width="207"&gt;&lt;u&gt;Exemple&lt;/u&gt;&lt;/td&gt;        &lt;td valign="top" width="309"&gt;&lt;u&gt;Param&amp;#232;tres re&amp;#231;us&lt;/u&gt;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="317"&gt;Wiki/Pages/{*contentUrl}&lt;/td&gt;        &lt;td valign="top" width="207"&gt;/Wiki/Pages/People/Scott&lt;/td&gt;        &lt;td valign="top" width="309"&gt;contentUrl=&amp;quot;People/Scott&amp;quot;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="316"&gt;&amp;#160;&lt;/td&gt;        &lt;td valign="top" width="207"&gt;/Wiki/Pages/Countries/UK&lt;/td&gt;        &lt;td valign="top" width="309"&gt;contentUrl=&amp;quot;Countries/UK&amp;quot;&lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;  &lt;p&gt;Ceci est assez utile lorsque vous cr&amp;#233;ez des blogs, cms ou encore des Wiki.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;u&gt;R&amp;#233;sum&amp;#233;&lt;/u&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;La Preview 3 inclue une lot de nouvelles fonctionnalit&amp;#233;s et de remaniement. Nous commen&amp;#231;ons &amp;#224; voir juste &amp;#224; propos du routage des URL et du mod&amp;#232;le de programmation des contr&amp;#244;leurs. Nous sentons que ces choses commencent &amp;#224; &amp;#234;tre bien. Dans la prochaine version vous verrez appara&amp;#238;tre plus d'am&amp;#233;lioration dans ce qui concerne les vues (html helpers, r&amp;#232;gles de validation, etc.), Ajax, sous contr&amp;#244;leurs, syst&amp;#232;me de login, authentification, autorisations d'acc&amp;#232;s, le cache et le scaffolding des donn&amp;#233;es.&lt;/p&gt;  &lt;p&gt;J'esp&amp;#232;re que cela aide,&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.codes-sources.com/loicbar/default.aspx"&gt;Lo&amp;#239;c Bar&lt;/a&gt; - &lt;a href="http://weblogs.asp.net/scottgu/archive/2008/05/27/asp-net-mvc-preview-3-release.aspx"&gt;Article bas&amp;#233; sur celui de Scott Guthrie&lt;/a&gt;.&lt;/p&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=6267828" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/scottgufrench/archive/tags/ASP.NET/default.aspx">ASP.NET</category><category domain="http://weblogs.asp.net/scottgufrench/archive/tags/.NET/default.aspx">.NET</category><category domain="http://weblogs.asp.net/scottgufrench/archive/tags/MVC/default.aspx">MVC</category><category domain="http://weblogs.asp.net/scottgufrench/archive/tags/Community+News/default.aspx">Community News</category></item><item><title>Liens du 20 mai: ASP.NET, ASP.NET AJAX, .NET, Visual Studio, Silverlight, WPF </title><link>http://weblogs.asp.net/scottgufrench/archive/2008/06/03/liens-du-20-mai-asp-net-asp-net-ajax-net-visual-studio-silverlight-wpf.aspx</link><pubDate>Tue, 03 Jun 2008 04:38:00 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:6243840</guid><dc:creator>amensi</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/scottgufrench/rsscomments.aspx?PostID=6243840</wfw:commentRss><comments>http://weblogs.asp.net/scottgufrench/archive/2008/06/03/liens-du-20-mai-asp-net-asp-net-ajax-net-visual-studio-silverlight-wpf.aspx#comments</comments><description>&lt;span style="font-size: 10pt; font-family: 'Arial','sans-serif';" lang="FR-CA"&gt;Mes excuses pour le peu de publications au cours des dernières semaines – le travail et la vie en générale furent très occupés dernièrement.&amp;nbsp;Ci-dessous, un nouvel article dans ma série &lt;/span&gt;&lt;a href="http://weblogs.asp.net/scottgu/archive/2008/04/28/april-28th-links-asp-net-asp-net-ajax-asp-net-mvc-silverlight.aspx" mce_href="http://weblogs.asp.net/scottgu/archive/2008/04/28/april-28th-links-asp-net-asp-net-ajax-asp-net-mvc-silverlight.aspx" target="_blank"&gt;&lt;span style="font-size: 10pt; color: blue; font-family: 'Arial','sans-serif';" lang="FR-CA"&gt;Listes de liens&lt;/span&gt;&lt;/a&gt;&lt;span style="font-size: 10pt; font-family: 'Arial','sans-serif';"&gt; &lt;span lang="FR-CA"&gt;afin de raviver les choses un peu. Visitez aussi ma page &lt;/span&gt;&lt;/span&gt;&lt;a href="http://weblogs.asp.net/scottgu/pages/ASP.NET-2.0-Tips_2C00_-Tricks_2C00_-Recipes-and-Gotchas.aspx" mce_href="http://weblogs.asp.net/scottgu/pages/ASP.NET-2.0-Tips_2C00_-Tricks_2C00_-Recipes-and-Gotchas.aspx" target="_blank"&gt;&lt;span style="font-size: 10pt; color: blue; font-family: 'Arial','sans-serif';" lang="FR-CA"&gt;Astuces, trucs et tutoriels ASP.NET &lt;/span&gt;&lt;/a&gt;&lt;span style="font-size: 10pt; font-family: 'Arial','sans-serif';"&gt;&lt;span style=""&gt;&amp;nbsp;&lt;/span&gt;&lt;span lang="FR-CA"&gt;et ma page &lt;/span&gt;&lt;/span&gt;&lt;a href="http://weblogs.asp.net/scottgu/pages/silverlight-posts.aspx" mce_href="http://weblogs.asp.net/scottgu/pages/silverlight-posts.aspx" target="_blank"&gt;&lt;span style="font-size: 10pt; color: blue; font-family: 'Arial','sans-serif';" lang="FR-CA"&gt;Tutoriels Silverlight&lt;/span&gt;&lt;/a&gt;&lt;span style="font-size: 10pt; font-family: 'Arial','sans-serif';"&gt; &lt;span lang="FR-CA"&gt;pour des liens vers des articles populaires que j’ai écrits dans le passé.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;b&gt;&lt;u&gt;&lt;span style="font-size: 13.5pt; font-family: 'Arial','sans-serif';"&gt;ASP.NET&lt;/span&gt;&lt;/u&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="font-size: 13.5pt; font-family: 'Arial','sans-serif';"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt; 
&lt;ul type="disc"&gt;
&lt;li class="MsoNormal" style="margin: 0in 0in 10pt; line-height: normal;"&gt;&lt;a href="http://mattberseth.com/blog/2008/05/bulk_inserting_data_with_the_l.html" mce_href="http://mattberseth.com/blog/2008/05/bulk_inserting_data_with_the_l.html" target="_blank"&gt;&lt;span style="font-size: 10pt; color: blue; font-family: 'Arial','sans-serif';" lang="FR-CA"&gt;Insertion de données en lot avec le contrôle ListView&lt;/span&gt;&lt;/a&gt;&lt;span style="font-size: 10pt; font-family: 'Arial','sans-serif';" lang="FR-CA"&gt;: Matt Berseth poursuit ces excellents articles continus avec un qui démontre comment gérer l’édition en lot de données en utilisant le contrôle ASP.NET Listview de .NET 3.5.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;ul type="disc"&gt;
&lt;li class="MsoNormal" style="margin: 0in 0in 10pt; line-height: normal;"&gt;&lt;a href="http://mattberseth.com/blog/2008/04/masterdetail_with_the_gridview.html" mce_href="http://mattberseth.com/blog/2008/04/masterdetail_with_the_gridview.html" target="_blank"&gt;&lt;span style="font-size: 10pt; color: blue; font-family: 'Arial','sans-serif';" lang="FR-CA"&gt;Master-Detail avec les contrôles GridView, DetailsView, et ModalPopup&lt;/span&gt;&lt;/a&gt;&lt;span style="font-size: 10pt; font-family: 'Arial','sans-serif';" lang="FR-CA"&gt;: Un autre excellent article de Matt qui décrit comment travailler avec un scénario type d’entrée de données d’une façon appropriée.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;ul type="disc"&gt;
&lt;li class="MsoNormal" style="margin: 0in 0in 10pt; line-height: normal;"&gt;&lt;a href="http://www.thebrainparasite.com/post/Creating-great-thumbnails-in-ASPNET.aspx" mce_href="http://www.thebrainparasite.com/post/Creating-great-thumbnails-in-ASPNET.aspx" target="_blank"&gt;&lt;span style="font-size: 10pt; color: blue; font-family: 'Arial','sans-serif';" lang="FR-CA"&gt;Créez de belles images Thumbnail avec ASP.NET&lt;/span&gt;&lt;/a&gt;&lt;span style="font-size: 10pt; font-family: 'Arial','sans-serif';" lang="FR-CA"&gt;: Vraiment un bel article par un Matt différent qui illustre une approche qui génère des images thumbnail de haute qualité (et de petite dimension).&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;ul type="disc"&gt;
&lt;li class="MsoNormal" style="margin: 0in 0in 10pt; line-height: normal;"&gt;&lt;a href="http://aspnet.4guysfromrolla.com/articles/051408-1.aspx" mce_href="http://aspnet.4guysfromrolla.com/articles/051408-1.aspx" target="_blank"&gt;&lt;span style="font-size: 10pt; color: blue; font-family: 'Arial','sans-serif';" lang="FR-CA"&gt;Informer l'usager lorsque la touche Majuscule Verrouillée est activé&lt;/span&gt;&lt;/a&gt;&lt;span style="font-size: 10pt; font-family: 'Arial','sans-serif';" lang="FR-CA"&gt;: Scott Mitchell à écrit un bon article qui décrit la marche à suivre pour détecter et informer automatiquement un usager lorsque la touche Majuscule Verrouillé est activée.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;ul type="disc"&gt;
&lt;li class="MsoNormal" style="margin: 0in 0in 10pt; line-height: normal;"&gt;&lt;a href="http://blogs.msdn.com/tess/archive/2008/05/14/asp-net-performance-issue-large-number-of-application-restarts-due-to-virus-scanning.aspx" mce_href="http://blogs.msdn.com/tess/archive/2008/05/14/asp-net-performance-issue-large-number-of-application-restarts-due-to-virus-scanning.aspx" target="_blank"&gt;&lt;span style="font-size: 10pt; color: blue; font-family: 'Arial','sans-serif';" lang="FR-CA"&gt;Problème de performance ASP.NET: Un grand nombre d'application-restarts causé par les logiciels antivirus&lt;/span&gt;&lt;/a&gt;&lt;span style="font-size: 10pt; font-family: 'Arial','sans-serif';" lang="FR-CA"&gt;: Tess Ferrandez à un bon article qui détails un bogue session qui explique la raison pour laquelle une application ASP.NET redémarrait fréquemment (causant de pertes de performance).&amp;nbsp;Le problème était un logiciel antivirus qui avait pour effet de mettre à jour les fichiers constamment. Assurez-vous de vérifier le code de logging que vous pouvez ajouter à votre application pour identifier les causes de redémarrage comme celle-ci.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;b&gt;&lt;u&gt;&lt;span style="font-size: 13.5pt; font-family: 'Arial','sans-serif';"&gt;ASP.NET AJAX&lt;/span&gt;&lt;/u&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="font-size: 13.5pt; font-family: 'Arial','sans-serif';"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt; 
&lt;ul type="disc"&gt;
&lt;li class="MsoNormal" style="margin: 0in 0in 10pt; line-height: normal;"&gt;&lt;a href="http://mattberseth.com/blog/2008/05/aspnet_ajax_progress_bar_contr.html" mce_href="http://mattberseth.com/blog/2008/05/aspnet_ajax_progress_bar_contr.html" target="_blank"&gt;&lt;span style="font-size: 10pt; color: blue; font-family: 'Arial','sans-serif';" lang="FR-CA"&gt;Contrôle Progress Bar ASP.NET AJAX&lt;/span&gt;&lt;/a&gt;&lt;span style="font-size: 10pt; font-family: 'Arial','sans-serif';" lang="FR-CA"&gt;: Matt Berseth à un autre excellent article qui démontre sont nouveau contrôle Progress Bar ASP.NET AJAX.&lt;br style=""&gt;&lt;br style=""&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li class="MsoNormal" style="margin: 0in 0in 10pt; line-height: normal;"&gt;&lt;span style="" lang="FR-CA"&gt;&lt;span style=""&gt;&lt;font size="3" face="Calibri"&gt;&amp;nbsp;&lt;/font&gt;&lt;/span&gt;&lt;a href="http://msmvps.com/blogs/omar/archive/2008/05/10/fast-asp-net-web-page-loading-by-downloading-multiple-javascripts-in-batch.aspx" mce_href="http://msmvps.com/blogs/omar/archive/2008/05/10/fast-asp-net-web-page-loading-by-downloading-multiple-javascripts-in-batch.aspx" target="_blank"&gt;&lt;span style="font-size: 10pt; color: blue; font-family: 'Arial','sans-serif';"&gt;Chargement de page plus rapide en combinant de Multiple fichiers JavaScript dans un lot&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: 'Arial','sans-serif';" lang="FR-CA"&gt;: Omar Al Zabir (fondateur de &lt;/span&gt;&lt;a href="http://www.pageflakes.com/" mce_href="http://www.pageflakes.com/" target="_blank"&gt;&lt;span style="font-size: 10pt; color: blue; font-family: 'Arial','sans-serif';" lang="FR-CA"&gt;PageFlakes.com&lt;/span&gt;&lt;/a&gt;&lt;span style="font-size: 10pt; font-family: 'Arial','sans-serif';"&gt; &lt;span lang="FR-CA"&gt;et auteur du très bon livre &lt;/span&gt;&lt;/span&gt;&lt;a href="http://www.amazon.com/gp/product/0596510500/102-8343841-3890548?ie=UTF8&amp;amp;tag=scoblo04-20&amp;amp;linkCode=xm2&amp;amp;camp=1789&amp;amp;creativeASIN=0596510500" mce_href="http://www.amazon.com/gp/product/0596510500/102-8343841-3890548?ie=UTF8&amp;amp;tag=scoblo04-20&amp;amp;linkCode=xm2&amp;amp;camp=1789&amp;amp;creativeASIN=0596510500" target="_blank"&gt;&lt;span style="font-size: 10pt; color: blue; font-family: 'Arial','sans-serif';" lang="FR-CA"&gt;Building a Web 2.0 Portal with ASP.NET 3.5&lt;/span&gt;&lt;/a&gt;&lt;span style="font-size: 10pt; font-family: 'Arial','sans-serif';" lang="FR-CA"&gt;) à un bon article qui illustre les gains en performance en fusionnant plusieurs téléchargements fichiers JavaScript.&amp;nbsp;Veuillez prendre note que &lt;/span&gt;&lt;a href="http://weblogs.asp.net/scottgu/archive/2008/05/12/visual-studio-2008-and-net-framework-3-5-service-pack-1-beta.aspx" mce_href="http://weblogs.asp.net/scottgu/archive/2008/05/12/visual-studio-2008-and-net-framework-3-5-service-pack-1-beta.aspx" target="_blank"&gt;&lt;span style="font-size: 10pt; color: blue; font-family: 'Arial','sans-serif';" lang="FR-CA"&gt;.NET 3.5 SP1&lt;/span&gt;&lt;/a&gt;&lt;span style="font-size: 10pt; font-family: 'Arial','sans-serif';"&gt; &lt;span lang="FR-CA"&gt;vas inclure un combinateur de script afin de simplifier encore plus cette tâche.&lt;br style=""&gt;&lt;br style=""&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li class="MsoNormal" style="margin: 0in 0in 10pt; line-height: normal;"&gt;&lt;span style="" lang="FR-CA"&gt;&lt;span style=""&gt;&lt;font size="3" face="Calibri"&gt;&amp;nbsp;&lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&lt;a href="http://pietschsoft.com/post/2008/05/ASPNET_Create_AJAX_Server_Controls_using_the_ScriptControl_base_class.aspx" mce_href="http://pietschsoft.com/post/2008/05/ASPNET_Create_AJAX_Server_Controls_using_the_ScriptControl_base_class.aspx" target="_blank"&gt;&lt;span style="font-size: 10pt; color: blue; font-family: 'Arial','sans-serif';" lang="FR-CA"&gt;Créer des Server Controls ASP.NET AJAX en utilisant la classe de base ScriptControl&lt;/span&gt;&lt;/a&gt;&lt;span style="font-size: 10pt; font-family: 'Arial','sans-serif';" lang="FR-CA"&gt;: Chris Pietschmann à un bon article qui explique comment construire de nouveau Server Controls ASP.NET AJAX avec la classe de base ScriptControl.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;ul type="disc"&gt;
&lt;li class="MsoNormal" style="margin: 0in 0in 10pt; line-height: normal;"&gt;&lt;a href="http://encosia.com/2008/05/16/inline-edit-box-on-codeplex-and-new-postback-ritalin-beta/" mce_href="http://encosia.com/2008/05/16/inline-edit-box-on-codeplex-and-new-postback-ritalin-beta/" target="_blank"&gt;&lt;span style="font-size: 10pt; color: blue; font-family: 'Arial','sans-serif';" lang="FR-CA"&gt;Inline Edit Box et Postback Ritalin Beta&lt;/span&gt;&lt;/a&gt;&lt;span style="font-size: 10pt; font-family: 'Arial','sans-serif';" lang="FR-CA"&gt;: Dave Ward et Mike Davis ont créé &lt;span style=""&gt;&amp;nbsp;&lt;/span&gt;un nouveau projet CodePlex pour leur populaire contrôle ASP.NET AJAX Inline Edit Box et PostBack Ritalin.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;b&gt;&lt;u&gt;&lt;span style="font-size: 13.5pt; font-family: 'Arial','sans-serif';"&gt;.NET&lt;/span&gt;&lt;/u&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="font-size: 13.5pt; font-family: 'Arial','sans-serif';"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt; 
&lt;ul type="disc"&gt;
&lt;li class="MsoNormal" style="margin: 0in 0in 10pt; line-height: normal;"&gt;&lt;a href="http://igoro.com/archive/7-tricks-to-simplify-your-programs-with-linq/" mce_href="http://igoro.com/archive/7-tricks-to-simplify-your-programs-with-linq/" target="_blank"&gt;&lt;span style="font-size: 10pt; color: blue; font-family: 'Arial','sans-serif';" lang="FR-CA"&gt;7 façons de simplifier votre code avec LINQ&lt;/span&gt;&lt;/a&gt;&lt;span style="font-size: 10pt; font-family: 'Arial','sans-serif';" lang="FR-CA"&gt;: Igor Ostrovsky à un excellent article qui parle de nouvelles techniques que vous pouvez utiliser afin d’améliorer votre code en utilisant .NET 3.5 et les nouvelles fonctionnalités du langage et de LINQ.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;ul type="disc"&gt;
&lt;li class="MsoNormal" style="margin: 0in 0in 10pt; line-height: normal;"&gt;&lt;a href="http://blogs.msdn.com/mitsu/archive/2008/04/02/visual-linq-query-builder-for-linq-to-sql-vlinq.aspx" mce_href="http://blogs.msdn.com/mitsu/archive/2008/04/02/visual-linq-query-builder-for-linq-to-sql-vlinq.aspx" target="_blank"&gt;&lt;span style="font-size: 10pt; color: blue; font-family: 'Arial','sans-serif';" lang="FR-CA"&gt;Visual LINQ Query Builder pour LINQ to SQL&lt;/span&gt;&lt;/a&gt;&lt;span style="font-size: 10pt; font-family: 'Arial','sans-serif';" lang="FR-CA"&gt;: Mitsu Furuta à créer un Visual Studio designer vraiment cool qui vous permet de construire graphiquement des requêtes LINQ to SQL.&amp;nbsp;Aussi, assurez-vous de télécharger le dernier utilitaire &lt;/span&gt;&lt;a href="http://www.linqpad.net/" mce_href="http://www.linqpad.net/" target="_blank"&gt;&lt;span style="font-size: 10pt; color: blue; font-family: 'Arial','sans-serif';" lang="FR-CA"&gt;LINQPad&lt;/span&gt;&lt;/a&gt;&lt;span style="font-size: 10pt; font-family: 'Arial','sans-serif';"&gt; &lt;span lang="FR-CA"&gt;qui est un outil incontournable pour apprendre LINQ et tester des requêtes LINQ.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;ul type="disc"&gt;
&lt;li class="MsoNormal" style="margin: 0in 0in 10pt; line-height: normal;"&gt;&lt;a href="http://www.pluralsight.com/blogs/aaron/archive/2008/05/13/50934.aspx" mce_href="http://www.pluralsight.com/blogs/aaron/archive/2008/05/13/50934.aspx" target="_blank"&gt;&lt;span style="font-size: 10pt; color: blue; font-family: 'Arial','sans-serif';" lang="FR-CA"&gt;DataContracts sans Attributs (support POCO):&lt;/span&gt;&lt;/a&gt;&lt;span style="font-size: 10pt; font-family: 'Arial','sans-serif';" lang="FR-CA"&gt; Aaron Skonnard à un bon article qui parle des nouveaux changements en terme d’usabilité avec .NET 3.5 SP1 qui vous permet de sérialiser des POCO (plain old objects) avec les serializers de WCF.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;ul type="disc"&gt;
&lt;li class="MsoNormal" style="margin: 0in 0in 10pt; line-height: normal;"&gt;&lt;a href="http://www.thejoyofcode.com/Introducing_Ukadc_Diagnostics.aspx" mce_href="http://www.thejoyofcode.com/Introducing_Ukadc_Diagnostics.aspx" target="_blank"&gt;&lt;span style="font-size: 10pt; color: blue; font-family: 'Arial','sans-serif';" lang="FR-CA"&gt;Ukadc.Diagnostics&lt;/span&gt;&lt;/a&gt;&lt;span style="font-size: 10pt; font-family: 'Arial','sans-serif';" lang="FR-CA"&gt;: Josh Twist m’a récemment mis au fait d’un nouveau projet CodePlex sur lequel il travail afin d’étendre les fonctionnalités de System.Diagnostics dans .NET pour inclure des fonctions de logging plus riche (Support des traces SQL, support du courriel, etc.).&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;b&gt;&lt;u&gt;&lt;span style="font-size: 13.5pt; font-family: 'Arial','sans-serif';"&gt;Visual Studio&lt;/span&gt;&lt;/u&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="font-size: 13.5pt; font-family: 'Arial','sans-serif';"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt; 
&lt;ul type="disc"&gt;
&lt;li class="MsoNormal" style="margin: 0in 0in 10pt; line-height: normal;"&gt;&lt;a href="http://www.dev102.com/2008/05/06/11-more-visual-studio-shortcuts-you-should-know/" mce_href="http://www.dev102.com/2008/05/06/11-more-visual-studio-shortcuts-you-should-know/" target="_blank"&gt;&lt;span style="font-size: 10pt; color: blue; font-family: 'Arial','sans-serif';" lang="FR-CA"&gt;11 raccourcis VS que vous devriez connaître&lt;/span&gt;&lt;/a&gt;&lt;span style="font-size: 10pt; font-family: 'Arial','sans-serif';" lang="FR-CA"&gt;: Un excellent article qui vous donne plusieurs raccourcis Visual Studio que vous pouvez imprimer afin de les utiliser par la suite.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;ul type="disc"&gt;
&lt;li class="MsoNormal" style="margin: 0in 0in 10pt; line-height: normal;"&gt;&lt;a href="http://blogs.msdn.com/saraford/archive/2008/05/20/did-you-know-you-can-show-extension-methods-in-the-object-browser-219.aspx" mce_href="http://blogs.msdn.com/saraford/archive/2008/05/20/did-you-know-you-can-show-extension-methods-in-the-object-browser-219.aspx" target="_blank"&gt;&lt;span style="font-size: 10pt; color: blue; font-family: 'Arial','sans-serif';" lang="FR-CA"&gt;Saviez-vous que vous pouvez afficher les extension methods dans l'object browser?:&lt;/span&gt;&lt;/a&gt;&lt;span style="font-size: 10pt; font-family: 'Arial','sans-serif';" lang="FR-CA"&gt; Sara Ford poursuit sont excellent series "Did you know".&amp;nbsp; Je vous fais une confession, je ne connaissais pas cette fonctionnalité.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;b&gt;&lt;u&gt;&lt;span style="font-size: 13.5pt; font-family: 'Arial','sans-serif';"&gt;Silverlight&lt;/span&gt;&lt;/u&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="font-size: 13.5pt; font-family: 'Arial','sans-serif';"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt; 
&lt;ul type="disc"&gt;
&lt;li class="MsoNormal" style="margin: 0in 0in 10pt; line-height: normal;"&gt;&lt;a href="http://mtaulty.com/CommunityServer/blogs/mike_taultys_blog/archive/2008/05/15/10402.aspx" mce_href="http://mtaulty.com/CommunityServer/blogs/mike_taultys_blog/archive/2008/05/15/10402.aspx" target="_blank"&gt;&lt;span style="font-size: 10pt; color: blue; font-family: 'Arial','sans-serif';" lang="FR-CA"&gt;50 nouveaux screencasts Silverlight 2 Beta 1 :&lt;/span&gt;&lt;/a&gt;&lt;span style="font-size: 10pt; font-family: 'Arial','sans-serif';" lang="FR-CA"&gt; Mike Taulty et Mike Ormond ont amassé plus de r 50 bons tutoriels screen-casts qui couvre Silverlight 2 et ce, dans leurs "temps libres&amp;nbsp;".&amp;nbsp; &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: 'Arial','sans-serif';"&gt;Wow.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;ul type="disc"&gt;
&lt;li class="MsoNormal" style="margin: 0in 0in 10pt; line-height: normal;"&gt;&lt;a href="http://www.nikhilk.net/Entry.aspx?id=195" mce_href="http://www.nikhilk.net/Entry.aspx?id=195" target="_blank"&gt;&lt;span style="font-size: 10pt; color: blue; font-family: 'Arial','sans-serif';" lang="FR-CA"&gt;AutoComplete pour les TextBoxes Silverlight&lt;/span&gt;&lt;/a&gt;&lt;span style="font-size: 10pt; font-family: 'Arial','sans-serif';" lang="FR-CA"&gt;: Nikhil Kothari à un bon article qui démontre comment il a construit un contrôle avec le comportement auto-complete pour Silverlight.&amp;nbsp; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;ul type="disc"&gt;
&lt;li class="MsoNormal" style="margin: 0in 0in 10pt; line-height: normal;"&gt;&lt;a href="http://blogs.msdn.com/swiss_dpe_team/archive/2008/05/09/scrolling-through-large-resultset-with-silverlight-2-beta1-and-linq-to-sql.aspx" mce_href="http://blogs.msdn.com/swiss_dpe_team/archive/2008/05/09/scrolling-through-large-resultset-with-silverlight-2-beta1-and-linq-to-sql.aspx" target="_blank"&gt;&lt;span style="font-size: 10pt; color: blue; font-family: 'Arial','sans-serif';" lang="FR-CA"&gt;Parcourir de grand Resultsets avec Silverlight 2 et LINQ to SQL&lt;/span&gt;&lt;/a&gt;&lt;span style="font-size: 10pt; font-family: 'Arial','sans-serif';" lang="FR-CA"&gt;: L’équipe Suisse MSDN à un bel article qui démontre comment parcourir un grand Resultsets avec le DataGrid de Silverlight et LINQ to SQL.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;ul type="disc"&gt;
&lt;li class="MsoNormal" style="margin: 0in 0in 10pt; line-height: normal;"&gt;&lt;a href="http://blogs.msdn.com/delay/archive/2008/05/04/ivalueconverter-the-swiss-army-knife-of-bindings-propertyviewer-sample-is-a-wpf-silverlight-visualization-and-debugging-aid.aspx" mce_href="http://blogs.msdn.com/delay/archive/2008/05/04/ivalueconverter-the-swiss-army-knife-of-bindings-propertyviewer-sample-is-a-wpf-silverlight-visualization-and-debugging-aid.aspx" target="_blank"&gt;&lt;span style="font-size: 10pt; color: blue; font-family: 'Arial','sans-serif';" lang="FR-CA"&gt;IValueConverter: Le couteau Suisse du Bindings&lt;/span&gt;&lt;/a&gt;&lt;span style="font-size: 10pt; font-family: 'Arial','sans-serif';" lang="FR-CA"&gt;: David Anson à un article et un exemple très pratique qui démontre comment la fonction d’IValueConverter dans Silverlight et WPF pour support et un binding plus riche envers des objets complexe.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;ul type="disc"&gt;
&lt;li class="MsoNormal" style="margin: 0in 0in 10pt; line-height: normal;"&gt;&lt;a href="http://petermcg.wordpress.com/2008/05/18/silverlight-20-pie-chart/" mce_href="http://petermcg.wordpress.com/2008/05/18/silverlight-20-pie-chart/" target="_blank"&gt;&lt;span style="font-size: 10pt; color: blue; font-family: 'Arial','sans-serif';" lang="FR-CA"&gt;Graphique en pointe de tarte Silverlight 2:&lt;/span&gt;&lt;/a&gt;&lt;span style="font-size: 10pt; font-family: 'Arial','sans-serif';" lang="FR-CA"&gt; Peter McGrattan à publier un beau contrôle ainsi qu’un article qui démontre comment utiliser un nouveau contrôle de graphique Silverlight qu’il à lui-même écrit.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;p class="MsoNormal" style="margin: 0in 0in 10pt; line-height: normal;"&gt;&lt;b&gt;&lt;u&gt;&lt;span style="font-size: 13.5pt; font-family: 'Arial','sans-serif';" lang="FR-CA"&gt;&lt;/span&gt;&lt;/u&gt;&lt;/b&gt;&lt;/p&gt;&lt;b&gt;&lt;u&gt;&lt;span style="font-size: 13.5pt; line-height: 115%; font-family: 'Arial','sans-serif';"&gt;WPF&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/u&gt;&lt;/b&gt; 
&lt;ul type="disc"&gt;
&lt;li class="MsoNormal" style="margin: 0in 0in 10pt; line-height: normal;"&gt;&lt;a href="http://channel9.msdn.com/Showforum.aspx?forumid=14&amp;amp;tagid=329" mce_href="http://channel9.msdn.com/Showforum.aspx?forumid=14&amp;amp;tagid=329" target="_blank"&gt;&lt;span style="font-size: 10pt; color: blue; font-family: 'Arial','sans-serif';" lang="FR-CA"&gt;La semaine WPF sur Channel9&lt;/span&gt;&lt;/a&gt;&lt;span style="font-size: 10pt; font-family: 'Arial','sans-serif';" lang="FR-CA"&gt;: Regarder 6 excellents vidéos sur Channel9.&amp;nbsp; Chacun d’eu inclut des interviews et des démos avec les membres de l’équipe WPF qui parle du magnifique travail qui à été mis dans WPF 3.5 SP1 (lisez mon article &lt;/span&gt;&lt;a href="http://weblogs.asp.net/scottgu/archive/2008/05/12/visual-studio-2008-and-net-framework-3-5-service-pack-1-beta.aspx" mce_href="http://weblogs.asp.net/scottgu/archive/2008/05/12/visual-studio-2008-and-net-framework-3-5-service-pack-1-beta.aspx" target="_blank"&gt;&lt;span style="font-size: 10pt; color: blue; font-family: 'Arial','sans-serif';" lang="FR-CA"&gt;ici&lt;/span&gt;&lt;/a&gt;&lt;span style="font-size: 10pt; font-family: 'Arial','sans-serif';"&gt; &lt;span lang="FR-CA"&gt;pour un sommaire).&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;ul type="disc"&gt;
&lt;li class="MsoNormal" style="margin: 0in 0in 10pt; line-height: normal;"&gt;&lt;a href="http://windowsclient.net/wpf/white-papers/wpf-app-quality-guide.aspx" mce_href="http://windowsclient.net/wpf/white-papers/wpf-app-quality-guide.aspx" target="_blank"&gt;&lt;span style="font-size: 10pt; color: blue; font-family: 'Arial','sans-serif';" lang="FR-CA"&gt;Guide de test et de qualité d'application WPF&lt;/span&gt;&lt;/a&gt;&lt;span style="font-size: 10pt; font-family: 'Arial','sans-serif';" lang="FR-CA"&gt;: Jetté un coup d’œil à la version 0.2 d’un livre gratuit actuellement en développement par Microsoft qui couvre la marche à suivre pour tester les applications WPF.&amp;nbsp;Mérite définitivement d’être mis en favoris si vous faites du développement WPF.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;ul type="disc"&gt;
&lt;li class="MsoNormal" style="margin: 0in 0in 10pt; line-height: normal;"&gt;&lt;a href="http://www.codeproject.com/KB/WPF/MovingTowardWpfBinding.aspx" mce_href="http://www.codeproject.com/KB/WPF/MovingTowardWpfBinding.aspx" target="_blank"&gt;&lt;span style="font-size: 10pt; color: blue; font-family: 'Arial','sans-serif';" lang="FR-CA"&gt;Aller vers le Data Binding WPF une étape à la fois&lt;/span&gt;&lt;/a&gt;&lt;span style="font-size: 10pt; font-family: 'Arial','sans-serif';" lang="FR-CA"&gt;: Josh Smith à un excellent article sur CodeProject.com qui explique le data binding dans WPF et vous offre la marche à suivre pour l’utiliser.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;ul type="disc"&gt;
&lt;li class="MsoNormal" style="margin: 0in 0in 10pt; line-height: normal;"&gt;&lt;a href="http://blogs.msdn.com/llobo/archive/2008/05/19/wpf-3-5-sp1-feature-stringformat.aspx" mce_href="http://blogs.msdn.com/llobo/archive/2008/05/19/wpf-3-5-sp1-feature-stringformat.aspx" target="_blank"&gt;&lt;span style="font-size: 10pt; color: blue; font-family: 'Arial','sans-serif';" lang="FR-CA"&gt;WPF 3.5 SP1 StringFormat&lt;/span&gt;&lt;/a&gt;&lt;span style="font-size: 10pt; font-family: 'Arial','sans-serif';" lang="FR-CA"&gt;: Lester à un bon article qui décrit comment utiliser la nouvelle fonction StringFormat dans WPF 3.5 SP1.&amp;nbsp;Ceci rend le formatage des databound values beaucoup plus facile.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;span style="font-size: 10pt; font-family: 'Arial','sans-serif';" lang="FR-CA"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: 'Arial','sans-serif';" lang="FR-CA"&gt;En espérant que ceci vous soit pratique,&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: 10pt; font-family: 'Arial','sans-serif';" lang="FR-CA"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: 'Arial','sans-serif';"&gt;Scott&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;span style="font-size: 10pt; line-height: 115%; font-family: 'Arial','sans-serif';" lang="FR-CA"&gt;&lt;span style="font-size: 10pt; font-family: 'Arial','sans-serif';" lang="FR-CA"&gt;&lt;a href="http://codebehind.ca/blogs/alexmensi/default.aspx"&gt;&lt;font color="#3399ff"&gt;Alexandre Mensi&lt;/font&gt;&lt;/a&gt; - &lt;a href="http://weblogs.asp.net/scottgu/archive/2008/05/20/may-20th-links-asp-net-asp-net-ajax-net-visual-studio-silverlight-wpf.aspx" target="_blank" mce_href="http://weblogs.asp.net/scottgu/archive/2008/05/20/may-20th-links-asp-net-asp-net-ajax-net-visual-studio-silverlight-wpf.aspx"&gt;&lt;span class=""&gt;&lt;font color="#3399ff"&gt;Article original par Scott Guthrie&lt;/font&gt;&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;/span&gt; &lt;br&gt;&lt;/p&gt;&lt;span style="font-size: 10pt; font-family: 'Arial','sans-serif';" lang="FR-CA"&gt;&lt;/span&gt;&lt;p mce_keep="true"&gt;&amp;nbsp;&lt;/p&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=6243840" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/scottgufrench/archive/tags/LINQ/default.aspx">LINQ</category><category domain="http://weblogs.asp.net/scottgufrench/archive/tags/ASP.NET/default.aspx">ASP.NET</category><category domain="http://weblogs.asp.net/scottgufrench/archive/tags/.NET/default.aspx">.NET</category><category domain="http://weblogs.asp.net/scottgufrench/archive/tags/Link+Listing/default.aspx">Link Listing</category><category domain="http://weblogs.asp.net/scottgufrench/archive/tags/Silverlight/default.aspx">Silverlight</category><category domain="http://weblogs.asp.net/scottgufrench/archive/tags/Visual+Studio/default.aspx">Visual Studio</category></item><item><title>Apologies / Excuses</title><link>http://weblogs.asp.net/scottgufrench/archive/2008/06/02/apologies-excuses.aspx</link><pubDate>Tue, 03 Jun 2008 02:14:00 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:6243680</guid><dc:creator>amensi</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/scottgufrench/rsscomments.aspx?PostID=6243680</wfw:commentRss><comments>http://weblogs.asp.net/scottgufrench/archive/2008/06/02/apologies-excuses.aspx#comments</comments><description>&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;FONT face=Calibri size=3&gt;Good day fellow reader, please accept my apologies for the delays in the translation, I was away for business and I was unable to produce the translation. By the end of the week it should be done.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;FONT face=Calibri size=3&gt;Thanks for understanding,&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN lang=FR-CA style="mso-ansi-language: FR-CA"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;&lt;SPAN lang=FR-CA style="mso-ansi-language: FR-CA"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;Bonjour chers lecteurs, veuillez accepter mes excuses pour les délais dans les traductions, j’étais à l’extérieur par affaire et je n’étais pas en mesure de produire les traductions. Ça devrait être fait d’ici la fin de la semaine.&lt;?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt; 
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;SPAN lang=FR-CA style="mso-ansi-language: FR-CA"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;Merci de votre compréhension, &lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;SPAN lang=FR-CA style="mso-ansi-language: FR-CA"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;&lt;SPAN lang=FR-CA style="mso-ansi-language: FR-CA"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;Alexandre Mensi,&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt; 
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=6243680" width="1" height="1"&gt;</description></item><item><title>Le livre Professional ASP.NET 3.5 (seulement $16 sur Amazon.com pour une courte durée) </title><link>http://weblogs.asp.net/scottgufrench/archive/2008/05/07/le-livre-professional-asp-net-3-5-seulement-16-sur-amazon-com-pour-une-courte-dur-233-e.aspx</link><pubDate>Wed, 07 May 2008 15:08:00 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:6165852</guid><dc:creator>amensi</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/scottgufrench/rsscomments.aspx?PostID=6165852</wfw:commentRss><comments>http://weblogs.asp.net/scottgufrench/archive/2008/05/07/le-livre-professional-asp-net-3-5-seulement-16-sur-amazon-com-pour-une-courte-dur-233-e.aspx#comments</comments><description>&lt;P&gt;&lt;SPAN lang=FR-CA style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'; mso-fareast-font-family: 'Times New Roman'; mso-ansi-language: FR-CA"&gt;Une des choses que je suis de prêt est les ventes de livres sur Amazon.com, car cela me donne une bonne idée sur quoi l’intérêt des développeurs est porté à tout moment. J’utilise le site &lt;/SPAN&gt;&lt;A href="http://www.titlez.com/" target=_blank&gt;&lt;SPAN lang=FR-CA style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Arial','sans-serif'; mso-fareast-font-family: 'Times New Roman'; mso-ansi-language: FR-CA; mso-bidi-font-size: 11.0pt"&gt;www.TitleZ.com&lt;/SPAN&gt;&lt;/A&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'; mso-fareast-font-family: 'Times New Roman'; mso-ansi-language: FR-CA"&gt; &lt;SPAN lang=FR-CA&gt;(développé avec ASP.NET) pour faire le suivit des titres spécifiques que je veux surveiller, pour ensuite générer un rapport qui me démontre en temps réel les données de classement des ventes sur Amazon ainsi que la moyenne des 7, 30 et 90 derniers jours.&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'; mso-fareast-font-family: 'Times New Roman'; mso-ansi-language: FR-CA"&gt;&lt;SPAN lang=FR-CA&gt;&lt;?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN lang=FR-CA style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'; mso-fareast-font-family: 'Times New Roman'; mso-ansi-language: FR-CA"&gt;Ce matin lorsque j’ai généré mon rapport les livres habituels se trouvaient au sommet de ma liste et juste au moment où j’allais poursuivre ma navigation j’ai remarqué classement des ventes Amazon complètement hors-norme pour le livre en première position -"&lt;/SPAN&gt;&lt;A href="http://www.amazon.com/gp/product/0470187573/104-4617720-5654313?ie=UTF8&amp;amp;tag=scoblo04-20&amp;amp;linkCode=xm2&amp;amp;camp=1789&amp;amp;creativeASIN=0470187573" target=_blank&gt;&lt;SPAN lang=FR-CA style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Arial','sans-serif'; mso-fareast-font-family: 'Times New Roman'; mso-ansi-language: FR-CA; mso-bidi-font-size: 11.0pt"&gt;Professional ASP.NET 3.5: In C# and VB&lt;/SPAN&gt;&lt;/A&gt;&lt;SPAN lang=FR-CA style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'; mso-fareast-font-family: 'Times New Roman'; mso-ansi-language: FR-CA"&gt;" par Bill Evjen, Scott Hanselman et Devin Rader.&amp;nbsp;Sont classement des ventes Amazon était alors #95(de tous les livres sur Amazon) ce qui est phénoménal et qui signifie que les ventes de ce livre surpassent même Harry Potter, du pratiquement jamais vue pour un livre technologique. &lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;
&lt;P mce_keep="true"&gt;&lt;SPAN lang=FR-CA style="FONT-SIZE: 10pt; LINE-HEIGHT: 115%; FONT-FAMILY: 'Arial','sans-serif'; mso-fareast-font-family: 'Times New Roman'; mso-ansi-language: FR-CA; mso-fareast-language: EN-US; mso-bidi-language: AR-SA"&gt;En fin de compte, Amazon offre présentement et pour une courte durée un prix spécial sur quelques livres et celui-ci fût sélectionné.&amp;nbsp;Au lieu du prix habituel de 54$, vous pouvez l’acquérir pour la somme ridicule de 16.49$.&amp;nbsp; Je ne suis pas certain combien de temps cette promotion va durée, mais si vous êtes à la recherche d’un excellent livre sur ASP.NET 3.5, vous devriez probablement profiter de cette offre&amp;nbsp;:&lt;/SPAN&gt;&lt;/P&gt;
&lt;P mce_keep="true"&gt;&lt;SPAN lang=FR-CA style="FONT-SIZE: 10pt; LINE-HEIGHT: 115%; FONT-FAMILY: 'Arial','sans-serif'; mso-fareast-font-family: 'Times New Roman'; mso-ansi-language: FR-CA; mso-fareast-language: EN-US; mso-bidi-language: AR-SA"&gt;&lt;IMG title="Book Cover" style="WIDTH: 168px; HEIGHT: 213px" height=213 alt="Book Cover" src="http://silverlight1blogpost.s3.amazonaws.com/scotthabook.jpg" width=168 mce_src="http://silverlight1blogpost.s3.amazonaws.com/scotthabook.jpg"&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;SPAN lang=FR-CA style="FONT-SIZE: 10pt; LINE-HEIGHT: 115%; FONT-FAMILY: 'Arial','sans-serif'; mso-fareast-font-family: 'Times New Roman'; mso-ansi-language: FR-CA; mso-fareast-language: EN-US; mso-bidi-language: AR-SA"&gt;&lt;SPAN lang=FR-CA style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'; mso-fareast-font-family: 'Times New Roman'; mso-ansi-language: FR-CA"&gt;Ce livre en est un excellent sur ASP.NET 3.5 et constitue une ressource très complète. Depuis sa sortie en mars, ce livre figure au sein de la liste des meilleurs vendeurs (habituellement dans le top 5 des livres de programmation) et à reçu de très bonnes reviews(J’ai écrit une review sur Amazon il y à quelques semaines et je lui ai attribué 5 étoiles).&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;SPAN lang=FR-CA style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'; mso-fareast-font-family: 'Times New Roman'; mso-ansi-language: FR-CA"&gt;Si vous êtes dans le marché pour un bon livre sur ASP.NET, vous devriez profiter de cette offre avant qu’elle ne se termine (mes excuses à l’avance si le prix change avant que vous ayez lu ceci)&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;SPAN lang=FR-CA style="mso-ansi-language: FR-CA"&gt;&lt;FONT face=Calibri size=3&gt;J'éspère que ça aide,&lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN lang=FR-CA style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'; mso-fareast-font-family: 'Times New Roman'; mso-ansi-language: FR-CA"&gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt; LINE-HEIGHT: normal; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"&gt;&lt;SPAN lang=FR-CA style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'; mso-fareast-font-family: 'Times New Roman'; mso-ansi-language: FR-CA"&gt;Scott&lt;/SPAN&gt;&lt;/P&gt;&lt;SPAN lang=FR-CA style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'; mso-fareast-font-family: 'Times New Roman'; mso-ansi-language: FR-CA"&gt;&lt;A href="http://codebehind.ca/blogs/alexmensi/default.aspx"&gt;&lt;FONT color=#3399ff&gt;Alexandre Mensi&lt;/FONT&gt;&lt;/A&gt; - &lt;A class="" href="http://weblogs.asp.net/scottgu/archive/2008/05/06/professional-asp-net-3-5-book-only-16-on-amazon-for-a-short-time.aspx" target=_blank mce_href="http://weblogs.asp.net/scottgu/archive/2008/05/06/professional-asp-net-3-5-book-only-16-on-amazon-for-a-short-time.aspx"&gt;&lt;FONT color=#3399ff&gt;Article original par Scott Guthrie&lt;/FONT&gt;&lt;/A&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt; 
&lt;P mce_keep="true"&gt;&lt;SPAN lang=FR-CA style="FONT-SIZE: 10pt; LINE-HEIGHT: 115%; FONT-FAMILY: 'Arial','sans-serif'; mso-fareast-font-family: 'Times New Roman'; mso-ansi-language: FR-CA; mso-fareast-language: EN-US; mso-bidi-language: AR-SA"&gt;P.S si vous êtes à la recherche d’un bon livre sur .NET 3.5 et VS 2008 – Je recommande aussi: &lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 11pt; LINE-HEIGHT: 115%; FONT-FAMILY: 'Calibri','sans-serif'; mso-fareast-font-family: Calibri; mso-ansi-language: EN-US; mso-ascii-theme-font: minor-latin; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi; mso-fareast-language: EN-US; mso-bidi-language: AR-SA"&gt;&lt;A href="http://www.amazon.com/gp/product/0596527578/002-5242737-1614454?ie=UTF8&amp;amp;tag=scoblo04-20&amp;amp;linkCode=xm2&amp;amp;camp=1789&amp;amp;creativeASIN=0596527578" target=_blank&gt;&lt;SPAN lang=FR-CA style="FONT-SIZE: 10pt; COLOR: blue; LINE-HEIGHT: 115%; FONT-FAMILY: 'Arial','sans-serif'; mso-fareast-font-family: 'Times New Roman'; mso-ansi-language: FR-CA; mso-bidi-font-size: 11.0pt"&gt;C# 3.0 In a Nutshell&lt;/SPAN&gt;&lt;/A&gt;&lt;/SPAN&gt;&lt;SPAN lang=FR-CA style="FONT-SIZE: 10pt; LINE-HEIGHT: 115%; FONT-FAMILY: 'Arial','sans-serif'; mso-fareast-font-family: 'Times New Roman'; mso-ansi-language: FR-CA; mso-fareast-language: EN-US; mso-bidi-language: AR-SA"&gt;, &lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 11pt; LINE-HEIGHT: 115%; FONT-FAMILY: 'Calibri','sans-serif'; mso-fareast-font-family: Calibri; mso-ansi-language: EN-US; mso-ascii-theme-font: minor-latin; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi; mso-fareast-language: EN-US; mso-bidi-language: AR-SA"&gt;&lt;A href="http://www.amazon.com/gp/product/1933988169?ie=UTF8&amp;amp;tag=scoblo04-20&amp;amp;linkCode=xm2&amp;amp;camp=1789&amp;amp;creativeASIN=1933988169" target=_blank&gt;&lt;SPAN lang=FR-CA style="FONT-SIZE: 10pt; COLOR: blue; LINE-HEIGHT: 115%; FONT-FAMILY: 'Arial','sans-serif'; mso-fareast-font-family: 'Times New Roman'; mso-ansi-language: FR-CA; mso-bidi-font-size: 11.0pt"&gt;LINQ in Action&lt;/SPAN&gt;&lt;/A&gt;&lt;/SPAN&gt;&lt;SPAN lang=FR-CA style="FONT-SIZE: 10pt; LINE-HEIGHT: 115%; FONT-FAMILY: 'Arial','sans-serif'; mso-fareast-font-family: 'Times New Roman'; mso-ansi-language: FR-CA; mso-fareast-language: EN-US; mso-bidi-language: AR-SA"&gt;, et &lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 11pt; LINE-HEIGHT: 115%; FONT-FAMILY: 'Calibri','sans-serif'; mso-fareast-font-family: Calibri; mso-ansi-language: EN-US; mso-ascii-theme-font: minor-latin; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi; mso-fareast-language: EN-US; mso-bidi-language: AR-SA"&gt;&lt;A href="http://www.amazon.com/gp/product/1590597893/002-5242737-1614454?ie=UTF8&amp;amp;tag=scoblo04-20&amp;amp;linkCode=xm2&amp;amp;camp=1789&amp;amp;creativeASIN=1590597893" target=_blank&gt;&lt;SPAN lang=FR-CA style="FONT-SIZE: 10pt; COLOR: blue; LINE-HEIGHT: 115%; FONT-FAMILY: 'Arial','sans-serif'; mso-fareast-font-family: 'Times New Roman'; mso-ansi-language: FR-CA; mso-bidi-font-size: 11.0pt"&gt;Pro LINQ: Language Integrated Query in C# 2008&lt;/SPAN&gt;&lt;/A&gt;&lt;/SPAN&gt;&lt;SPAN lang=FR-CA style="FONT-SIZE: 10pt; LINE-HEIGHT: 115%; FONT-FAMILY: 'Arial','sans-serif'; mso-fareast-font-family: 'Times New Roman'; mso-ansi-language: FR-CA; mso-fareast-language: EN-US; mso-bidi-language: AR-SA"&gt; (tous ont une review d’en moyenne de 5 étoiles).&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=6165852" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/scottgufrench/archive/tags/LINQ/default.aspx">LINQ</category><category domain="http://weblogs.asp.net/scottgufrench/archive/tags/ASP.NET/default.aspx">ASP.NET</category><category domain="http://weblogs.asp.net/scottgufrench/archive/tags/.NET/default.aspx">.NET</category><category domain="http://weblogs.asp.net/scottgufrench/archive/tags/Visual+Studio/default.aspx">Visual Studio</category></item><item><title>Diaporama de mon intervention aux ASP.NET Connections Orlando</title><link>http://weblogs.asp.net/scottgufrench/archive/2008/04/29/diaporama-de-mon-intervention-aux-asp-net-connections-orlando.aspx</link><pubDate>Tue, 29 Apr 2008 12:48:48 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:6140834</guid><dc:creator>loicbar</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/scottgufrench/rsscomments.aspx?PostID=6140834</wfw:commentRss><comments>http://weblogs.asp.net/scottgufrench/archive/2008/04/29/diaporama-de-mon-intervention-aux-asp-net-connections-orlando.aspx#comments</comments><description>&lt;p&gt;La semaine derni&amp;#232;re &amp;#224; la conf&amp;#233;rence &lt;a href="http://www.asp-connections.com/shows/SP2008ASP/default.asp?s=112&amp;amp;refer="&gt;ASP.NET Connections d'Orlando&lt;/a&gt;, j'ai donn&amp;#233; lundi une session g&amp;#233;n&amp;#233;rale et deux breakouts sessions un peu plus tard sur la journ&amp;#233;e. Vous pouvez t&amp;#233;l&amp;#233;charger mes diaporamas + exemples ci-dessous:&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;u&gt;General Session&lt;/u&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Les diaporamas de mon keynote peuvent &amp;#234;tre t&amp;#233;l&amp;#233;charg&amp;#233;s &lt;a href="http://www.scottgu.com/blogposts/orlando2008/keynote.zip"&gt;ici&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;Dans cette session, j'ai montr&amp;#233; comment d&amp;#233;buguer les sources du framework .NET. Vous pouvez apprendre comment les installer avec Visual Studio 2008 &lt;a href="http://weblogs.asp.net/scottgu/archive/2008/01/16/net-framework-library-source-code-now-available.aspx"&gt;ici&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;J'ai &amp;#233;galement montrer comment cr&amp;#233;er un site en utilisant le support de ASP.NET Dynamic Data - dont vous pouvez en apprendre plus &lt;a href="http://weblogs.asp.net/scottgu/archive/2008/04/10/asp-net-dynamic-data-preview-available.aspx"&gt;ici&lt;/a&gt;. J'ai aussi montrer comment utiliser le nouveau framework MVC - dont vous pouvez en apprendre plus &lt;a href="http://weblogs.asp.net/scottgu/archive/2008/04/16/asp-net-mvc-source-refresh-preview.aspx"&gt;ici&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;J'ai aussi montr&amp;#233; le nouveau M&amp;#233;morium du site Hard Rock&amp;#160; construit avec Silverlight 2. Vous pouvez essayer l'application du Hard Rock vous-m&amp;#234;me &lt;a href="http://memorabilia.hardrock.com/"&gt;ici&lt;/a&gt;. Si vous voulez en savoir plus sur Silverlight, rendez-vous &lt;a href="http://weblogs.asp.net/scottgu/pages/silverlight-posts.aspx"&gt;ici&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;u&gt;Construire une application .NET avec Silverlight&lt;/u&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Les diaporama et les d&amp;#233;mo sur ma breakout session Silverlight peuvent &amp;#234;tre t&amp;#233;l&amp;#233;charg&amp;#233;s &lt;a href="http://www.scottgu.com/blogposts/orlando2008/silverlight.zip"&gt;ici&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;Vous pouvez en apprendre plus sur Silverlight depuis ma page de liens &lt;a href="http://weblogs.asp.net/scottgu/pages/silverlight-posts.aspx"&gt;ici&lt;/a&gt;. En particulier, je recommande la lecture de mes tutoriels &lt;a href="http://weblogs.asp.net/scottgu/archive/2008/02/22/first-look-at-silverlight-2.aspx"&gt;ici&lt;/a&gt; et &lt;a href="http://weblogs.asp.net/scottgu/archive/2008/02/28/first-look-at-using-expression-blend-with-silverlight-2.aspx"&gt;l&amp;#224;&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;u&gt;ASP.NET MVC&lt;/u&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Les diaporamas et les d&amp;#233;monstrations de ma session sur ASP.NET MVC peuvent &amp;#234;tre t&amp;#233;l&amp;#233;charg&amp;#233;s &lt;a href="http://www.scottgu.com/blogposts/orlando2008/mvc.zip"&gt;ici&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;Vous pouvez en apprendre plus a propos des derni&amp;#232;res sources ASP.NET MVC &lt;a href="http://weblogs.asp.net/scottgu/archive/2008/04/16/asp-net-mvc-source-refresh-preview.aspx"&gt;ici&lt;/a&gt;. Stephen Walther &amp;#224; &amp;#233;galement publi&amp;#233; d'excelents diaporamas et d&amp;#233;mos dans un tutoriel datant d'avant la conf&amp;#233;rence sur ASP.NET MVC &lt;a href="http://weblogs.asp.net/stephenwalther/archive/2008/04/27/talks-asp-net-mvc-post-conference-workshop-at-asp-net-connections-orlando.aspx"&gt;ici&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;J'&amp;#233;sp&amp;#232;re que &amp;#231;a aide,&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.codes-sources.com/loicbar/default.aspx"&gt;Lo&amp;#239;c Bar&lt;/a&gt; - &lt;a href="http://weblogs.asp.net/scottgu/archive/2008/04/27/slides-from-my-asp-net-connections-orlando-talks.aspx"&gt;Article bas&amp;#233; sur celui de Scott Guthrie.&lt;/a&gt;&lt;/p&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=6140834" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/scottgufrench/archive/tags/ASP.NET/default.aspx">ASP.NET</category><category domain="http://weblogs.asp.net/scottgufrench/archive/tags/.NET/default.aspx">.NET</category><category domain="http://weblogs.asp.net/scottgufrench/archive/tags/MVC/default.aspx">MVC</category><category domain="http://weblogs.asp.net/scottgufrench/archive/tags/Silverlight/default.aspx">Silverlight</category><category domain="http://weblogs.asp.net/scottgufrench/archive/tags/Session/default.aspx">Session</category></item><item><title>Les sources du Preview d’ASP.NET MVC actualisées</title><link>http://weblogs.asp.net/scottgufrench/archive/2008/04/22/les-sources-du-preview-d-asp-net-mvc-actualis-233-es.aspx</link><pubDate>Tue, 22 Apr 2008 08:51:06 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:6120956</guid><dc:creator>loicbar</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/scottgufrench/rsscomments.aspx?PostID=6120956</wfw:commentRss><comments>http://weblogs.asp.net/scottgufrench/archive/2008/04/22/les-sources-du-preview-d-asp-net-mvc-actualis-233-es.aspx#comments</comments><description>&lt;p&gt;Nous avons r&amp;#233;cemment ouvert un nouveau &lt;a href="http://www.codeplex.com/aspnet"&gt;Projet CodePlex ASP.NET&lt;/a&gt; que nous utiliserons pour distribuer des Previews (avec code source compilable) pour plusieurs fonctionnalit&amp;#233;s et distribution d&amp;#8217;ASP.NET.&lt;/p&gt;  &lt;p&gt;Le mois dernier, nous l&amp;#8217;avons utilis&amp;#233; pour publier le &lt;a href="http://weblogs.asp.net/scottgu/archive/2008/03/21/asp-net-mvc-source-code-now-available.aspx"&gt;premier d&amp;#233;p&amp;#244;t de code source d'ASP.NET MVC&lt;/a&gt;.&amp;#160; Ce premier d&amp;#233;p&amp;#244;t incluait le code source pour le Preview 2 d&amp;#8217;ASP.NET MVC que nous que nous avons livr&amp;#233; &amp;#224; la conf&amp;#233;rence MIX, conjointement avec les fichiers projets Visual Studio qui vous permettent de le compiler et de le mettre &amp;#224; jour par vous-m&amp;#234;me.&lt;/p&gt;  &lt;p&gt;Il y a quelques heures, nous avons &lt;a href="http://www.codeplex.com/aspnet/Release/ProjectReleases.aspx?ReleaseId=12640"&gt;publi&amp;#233; une actualisation&lt;/a&gt; du code source d&amp;#8217;ASP.NET MVC sur ce site.&amp;#160; Cette actualisation des sources &lt;b&gt;&lt;i&gt;&lt;u&gt;n&amp;#8217;est&lt;/u&gt;&lt;/i&gt;&lt;/b&gt; pas une nouvelle livraison officielle d&amp;#8217;un aper&amp;#231;u d&amp;#8217;ASP.NET MVC. Il s&amp;#8217;agit plut&amp;#244;t d&amp;#8217;un d&amp;#233;p&amp;#244;t int&amp;#233;rimaire qui donne une id&amp;#233;e de l&amp;#8217;&amp;#233;tat actuel de l&amp;#8217;arborescence des sources. Nous allons proc&amp;#233;der &amp;#224; la livraison officielle du Preview 3 d&amp;#8217;ASP.NET MVC d&amp;#8217;ici quelques semaines apr&amp;#232;s avoir mis un peu plus de travail (plus de fonctionnalit&amp;#233;s et am&amp;#233;liorations de certaines existantes, meilleur outil d&amp;#8217;int&amp;#233;gration VS, support des versions express de VS documentation, etc.). Si vous &amp;#234;tes &amp;#224; la recherche d&amp;#8217;une installation sans embuches d&amp;#8217;ASP.NET MVC qui vient avec une documentation et des outils de support complet, vous devriez probablement attendre cette version officielle du Preview d&amp;#8217;ASP.NET MVC. Si vous &amp;#234;tes quelqu&amp;#8217;un qui d&amp;#233;sire avoir la chance de voir un aper&amp;#231;u du Preview et de commencer &amp;#224; utiliser et donner des commentaires sur certaines fonctionnalit&amp;#233;s imm&amp;#233;diatement, les sources d&amp;#8217;aujourd&amp;#8217;hui seront int&amp;#233;ressantes pour vous.&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;u&gt;Am&amp;#233;liorations apport&amp;#233;es dans cette actualisation des sources d&amp;#8217;ASP.NET MVC&lt;/u&gt;&lt;/b&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;La mise &amp;#224; jour de cette semaine (que vous pouvez t&amp;#233;l&amp;#233;charger &lt;a href="http://www.codeplex.com/aspnet/Release/ProjectReleases.aspx?ReleaseId=12640"&gt;ici&lt;/a&gt;) comprend un certain nombre d&amp;#8217;am&amp;#233;liorations &amp;#224; ASP.NET MVC. Parmi celles-ci on retrouve :&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;En plus de rendre disponible le code source pour le cadriciel d&amp;#8217;ASP.NET MVC, nous allons aussi rendre disponible le code source pour les tests unitaires que nous avons utilis&amp;#233;s pour le tester.&amp;#160; Ces testes sont impl&amp;#233;menter en utilisant MSTest et le cadriciel de &amp;#8216;mocking&amp;#8217; open source &lt;a href="http://code.google.com/p/moq/"&gt;Moq&lt;/a&gt;. Un fichier projet VS 2008 pour les tests unitaires est inclus afin de faciliter leur compilation et ex&amp;#233;cution localement &amp;#224; l&amp;#8217;int&amp;#233;rieur de votre environnement de d&amp;#233;veloppement VS2008. &lt;/li&gt; &lt;/ul&gt;  &lt;ul&gt;   &lt;li&gt;Support am&amp;#233;lior&amp;#233; de fa&amp;#231;on significative pour les tests de classes contr&amp;#244;leur. Vous pouvez maintenant effectuer des tests unitaires pour les sc&amp;#233;narios de Controller communs sans avoir &amp;#224; faire de mock d&amp;#8217;objet (plus de d&amp;#233;tails sur le fonctionnement de cela ci-dessous). &lt;/li&gt; &lt;/ul&gt;  &lt;ul&gt;   &lt;li&gt;Ajout de plusieurs fonctionnalit&amp;#233;s pratiques et am&amp;#233;liorations au niveau de l&amp;#8217;usabilit&amp;#233; au niveau du syst&amp;#232;me de routage d&amp;#8217;URL (plus de d&amp;#233;tails ci-dessous). &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;b&gt;&lt;u&gt;Cr&amp;#233;er un nouveau ASP.NET MVC projet&lt;/u&gt;&lt;/b&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;Vous pouvez compiler votre propre copie des librairies d&amp;#8217;ASP.NET MVC en t&amp;#233;l&amp;#233;chargeant les sources MVC et en les compilant localement ou, en t&amp;#233;l&amp;#233;chargeant un template VS pour obtenir une version pr&amp;#233;compil&amp;#233;e de ces librairies ainsi que les mod&amp;#232;les de projet Visual Studio que vous pouvez compil&amp;#233; rapidement un nouveau projet ASP.NET MVC qui utilise les bits les plus r&amp;#233;cents.&lt;/p&gt;  &lt;p&gt;Apr&amp;#232;s avoir install&amp;#233; les sources actualis&amp;#233;es d&amp;#8217;ASP.NET MVC.VSI template, un nouveau projet mod&amp;#232;le &amp;#171; ASP.NET MVC Application &amp;#187; va appara&amp;#238;tre sous la section &amp;quot;My Templates&amp;quot; du dialogue &amp;quot;New Project&amp;quot;.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://weblogs.asp.net/blogs/scottgufrench/WindowsLiveWriter/LessourcesduPreviewdASP.NETMVCactualises_98CD/clip_image002_2.jpg"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="141" alt="clip_image002" src="http://weblogs.asp.net/blogs/scottgufrench/WindowsLiveWriter/LessourcesduPreviewdASP.NETMVCactualises_98CD/clip_image002_thumb.jpg" width="244" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Cette nouvelle version du projet MVC dans &amp;#171; My Templates &amp;#187; cohabite c&amp;#244;te &amp;#224; c&amp;#244;te avec la version pr&amp;#233;c&amp;#233;dente Preview 2 d&amp;#8217;ASP.NET MVC (que vous pouvez voir dans la section principale du dialogue ci-haut). Ceci vous permet de cr&amp;#233;er sans crainte des nouveaux projets et utiliser les 2 versions des sources et la derni&amp;#232;re version officielle du Preview sur la m&amp;#234;me machine.&lt;/p&gt;  &lt;p&gt;Lorsque vous cr&amp;#233;ez un nouveau projet en utilisant cette version actualis&amp;#233;e du mod&amp;#232;le de projet ASP.NET MVC vous obtiendrez par d&amp;#233;faut un projet qui ressemble &amp;#224; l&amp;#8217;exemple ci-dessous :&lt;/p&gt;  &lt;p&gt;&lt;a href="http://weblogs.asp.net/blogs/scottgufrench/WindowsLiveWriter/LessourcesduPreviewdASP.NETMVCactualises_98CD/clip_image004_2.jpg"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="244" alt="clip_image004" src="http://weblogs.asp.net/blogs/scottgufrench/WindowsLiveWriter/LessourcesduPreviewdASP.NETMVCactualises_98CD/clip_image004_thumb.jpg" width="123" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Cette nouvelle solution de projet contient un Controller (&amp;quot;HomeController &amp;#187;) sous le r&amp;#233;pertoire &amp;#171; \Controllers&amp;#187; et de mod&amp;#232;les de vue (&amp;#171; About&amp;#187; et &amp;#171; Index&amp;#187;) sous le sous-r&amp;#233;pertoire &amp;#171; \Views\Home&amp;#187;.&amp;#160; Les deux templates View sont bas&amp;#233;s sur une page ma&amp;#238;tre commune pour le site (&amp;#171; Site.master&amp;#187;) don&amp;#8217;t tous les styles sont d&amp;#233;finis dans le fichier &amp;#171; Site.css&amp;#187; class&amp;#233; sous le r&amp;#233;pertoire &amp;#171; \Content&amp;#187;.&lt;/p&gt;  &lt;p&gt;Lorsque vous ex&amp;#233;cuterez l&amp;#8217;application, le serveur web built-in d&amp;#233;marrera automatiquement et vous verrez le contenu &amp;#171; Home&amp;#187; du site :&lt;/p&gt;  &lt;p&gt;&lt;a href="http://weblogs.asp.net/blogs/scottgufrench/WindowsLiveWriter/LessourcesduPreviewdASP.NETMVCactualises_98CD/clip_image006_2.jpg"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="170" alt="clip_image006" src="http://weblogs.asp.net/blogs/scottgufrench/WindowsLiveWriter/LessourcesduPreviewdASP.NETMVCactualises_98CD/clip_image006_thumb.jpg" width="244" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Cliquer sur l&amp;#8217;onglet &amp;#171;About us&amp;#187; affichera le contenu &amp;#171;About&amp;#187; :&lt;/p&gt;  &lt;p&gt;&lt;a href="http://weblogs.asp.net/blogs/scottgufrench/WindowsLiveWriter/LessourcesduPreviewdASP.NETMVCactualises_98CD/clip_image008_2.jpg"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="169" alt="clip_image008" src="http://weblogs.asp.net/blogs/scottgufrench/WindowsLiveWriter/LessourcesduPreviewdASP.NETMVCactualises_98CD/clip_image008_thumb.jpg" width="244" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;La classe &amp;#171; HomeController&amp;#187; est responsable du maniement des URL ci-dessus et poss&amp;#232;de deux m&amp;#233;thodes comme ci-dessous :&lt;/p&gt;  &lt;p&gt;&lt;a href="http://weblogs.asp.net/blogs/scottgufrench/WindowsLiveWriter/LessourcesduPreviewdASP.NETMVCactualises_98CD/clip_image010_2.jpg"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="168" alt="clip_image010" src="http://weblogs.asp.net/blogs/scottgufrench/WindowsLiveWriter/LessourcesduPreviewdASP.NETMVCactualises_98CD/clip_image010_thumb.jpg" width="244" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Le template par d&amp;#233;faut &amp;#171;Site.master&amp;#187; cherche pour la valeur &amp;#171;Title&amp;#187; dans la collection ViewData et l&amp;#8217;utilise pour faire le rendu de l&amp;#8217;&amp;#233;l&amp;#233;ment &amp;lt;title&amp;gt; de la page HTML. Le template vu par d&amp;#233;faut &amp;#171;Index&amp;#187; cherche pour la valeur &amp;#171;Message&amp;#187; et l&amp;#8217;utilise pour faire le rendu du message de bienvenue de la page d&amp;#8217;accueil. Vous pouvez &amp;#233;videmment personnaliser ces fichiers comme vous le d&amp;#233;sirez.&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;u&gt;Changement au Controller avec ce d&amp;#233;p&amp;#244;t d&amp;#8217;ASP.NET MVC&lt;/u&gt;&lt;/b&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;Si vous faite la lecture du code ci-dessus attentivement vous aurez probablement remarqu&amp;#233; quelques changements sur la fa&amp;#231;on dont les classes Controller sont impl&amp;#233;ment&amp;#233; par d&amp;#233;faut en utilisant ce nouveau d&amp;#233;p&amp;#244;t des sources actualis&amp;#233;es d&amp;#8217;ASP.NET MVC.&amp;#160; &lt;/p&gt;  &lt;p&gt;Avec la livraison du Preview 2 d&amp;#8217;ASP.NET MVC, le code ci-dessus des m&amp;#233;thodes d&amp;#8217;actions HomeController auraient &amp;#233;t&amp;#233; impl&amp;#233;ment&amp;#233; comme ci-dessous :&lt;/p&gt;  &lt;p&gt;&lt;a href="http://weblogs.asp.net/blogs/scottgufrench/WindowsLiveWriter/LessourcesduPreviewdASP.NETMVCactualises_98CD/clip_image012_2.jpg"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="176" alt="clip_image012" src="http://weblogs.asp.net/blogs/scottgufrench/WindowsLiveWriter/LessourcesduPreviewdASP.NETMVCactualises_98CD/clip_image012_thumb.jpg" width="244" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;L&amp;#8217;&amp;#233;quipe fonctionnalit&amp;#233;s MVC exp&amp;#233;rimente pr&amp;#233;sentement avec quelque id&amp;#233;es avec le d&amp;#233;p&amp;#244;t de cette semaine et font aussi l&amp;#8217;essai de certaines id&amp;#233;es nouvelles:&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;Les m&amp;#233;thodes Action des Controller retournent maintenant par d&amp;#233;faut un objet de type &amp;#171; ActionResult &amp;#187; (au lieu de void). Cet objet ActionResult indique le r&amp;#233;sultat d&amp;#8217;une Action (une View &amp;#224; rafraichir, une URL &amp;#224; rediriger vers, une autre Action/route &amp;#224; ex&amp;#233;cuter, etc.)&amp;#160; &lt;/li&gt;    &lt;li&gt;Les m&amp;#233;thodes d&amp;#8217;aides RenderView(), RedirectToAction(), et Redirect() de la classe de base Controller retournent d&amp;#233;sormais des objets typ&amp;#233;s ActionResult (que vous pouvez manipuler &amp;#224; votre guise ou retourn&amp;#233; d&amp;#8217;une m&amp;#233;thode Action). &lt;/li&gt;    &lt;li&gt;La m&amp;#233;thode d&amp;#8217;aide RenderView() peut maintenant &amp;#234;tre appel&amp;#233;e sans avoir &amp;#224; passer de fa&amp;#231;on explicite le nom du template View dont il faut ex&amp;#233;cuter le rendu. Quand vous omettez le nom du template, la m&amp;#233;thode RenderView() va utiliser par d&amp;#233;faut le m&amp;#234;me nom que la m&amp;#233;thode Action ainsi que pour le template View dont il faut ex&amp;#233;cuter le rendu. Donc, faire l&amp;#8217;appel de &amp;#8221;RenderView()&amp;quot; sans param&amp;#232;tres &amp;#224; l&amp;#8217;int&amp;#233;rieur de la m&amp;#233;thode Action &amp;quot;About()&amp;quot; est identique &amp;#224; &amp;#233;crire explicitement &amp;quot;RenderView('About')&amp;quot;. &lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;Il est tr&amp;#232;s facile de mettre &amp;#224; jour les classes Controller existantes compil&amp;#233;es avec la Preview 2 pour utiliser ce nouveau patron (juste &amp;#224; changer void pour ActionResult et ajouter une instruction de retour devant tous appels de m&amp;#233;thodes d&amp;#8217;aides RenderView ou RedirectToAction).&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;u&gt;Retourner des objets ActionResult des m&amp;#233;thodes Action&lt;/u&gt;&lt;/b&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;Donc pourquoi changer les m&amp;#233;thodes Action des Controller pour qu&amp;#8217;elles retournent des objets ActionResults par d&amp;#233;faut au lieu de retourner void? Un certain nombre de cadriciels Web-MVC populaires utilise l&amp;#8217;approche qui prone le retour d&amp;#8217;objet (incluant Django, Tapestry et autres), et nous trouvons que pour ASP.NET MVC apporte quelques b&amp;#233;n&amp;#233;fices important:&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;Cela permet un support beaucoup plus clair et simple des tests unitaires pour les Controller. Vous n&amp;#8217;avez plus &amp;#224; faire le mocking des m&amp;#233;thodes base sur l&amp;#8217;objet Response ou ViewEngine de fa&amp;#231;on &amp;#224; faire le test unitaire du comportement Response des m&amp;#233;thodes Action. A la place, vous pouvez simplement faire un Assert des conditions 