<?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>21</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>6</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>23</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>2</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>1</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>9</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 en utilisant l&amp;#8217;objet ActionResult retourn&amp;#233; par l&amp;#8217;appel de la m&amp;#233;thode Action situ&amp;#233; dans votre test unitaire (voir la section ci-dessous). &lt;/li&gt;    &lt;li&gt;Cela peut rendre les flux d&amp;#8217;intentions logique plus clair et plus explicite dans les cas o&amp;#249; il pourrait y avoir deux r&amp;#233;sultats diff&amp;#233;rents selon certaines conditions (par exemple: rediriger si la condition A est vrai, sinon rafraichir un template View si faux). Ceci peut simplifier la lecture et le suivit du code des m&amp;#233;thodes Action des Controller. &lt;/li&gt;    &lt;li&gt;Ceci permet de beaux sc&amp;#233;narios de composition dans lesquels un FilterActionAttribute peut accepter le r&amp;#233;sultat d&amp;#8217;une m&amp;#233;thode Action et la modifi&amp;#233; ou la transformer avant de l&amp;#8217;ex&amp;#233;cuter. Par exemple: une Action &amp;#171; Browse &amp;#187; sur un Controller ProductCatalog pourrait retourner un RenderActionResult qui indiquerait son intention de rafraichir une View &amp;#171; List &amp;#187; de produits. Un FilterActionAttribute d&amp;#233;clar&amp;#233; sur la classe contr&amp;#244;leur peut alors avoir la chance de personnaliser le template View &amp;#171; List &amp;#187; afin que son rendu soit List-html.aspx ou List-xml.aspx selon le type MIME pr&amp;#233;f&amp;#233;r&amp;#233; du client. Plusieurs FilterActionAttributes peuvent aussi &amp;#234;tre de fa&amp;#231;on optionnelle, li&amp;#233;e directement au flux de r&amp;#233;sultats d&amp;#8217;un &amp;#224; l&amp;#8217;autre. &lt;/li&gt;    &lt;li&gt;Cela donne acc&amp;#232;s &amp;#224; un excellent m&amp;#233;canisme d&amp;#8217;extensibilit&amp;#233; pour les gens (en nous incluant) qui veulent ajouter des fonctionnalit&amp;#233;s dans le futur. De nouveaux types d&amp;#8217;ActionResult peuvent &amp;#234;tre cr&amp;#233;&amp;#233;s facilement en cr&amp;#233;ant une sous-classe de la classe de base ActionResult et en rempla&amp;#231;ant la m&amp;#233;thode &amp;#171; ExecuteResult &amp;#187;. Il serait facile, par exemple, de cr&amp;#233;er une m&amp;#233;thode d&amp;#8217;aide &amp;#171; RenderFile() &amp;#187; qu&amp;#8217;un d&amp;#233;veloppeur qui &amp;#233;crit une m&amp;#233;thode Action pourrait appeler pour retourner un nouvel objet &amp;#171; FileActionResult &amp;#187;. &lt;/li&gt;    &lt;li&gt;Cela permet de bons sc&amp;#233;narios d&amp;#8217;ex&amp;#233;cution asynchrone dans le futur. Les m&amp;#233;thodes Action seront capable de retourner un objet AsyncActionResult qui indique qu&amp;#8217;ils sont en attente d&amp;#8217;une op&amp;#233;ration r&amp;#233;seau et veulent c&amp;#233;der le thread de travail de sorte que ASP.NET peut l&amp;#8217;utiliser pour ex&amp;#233;cuter une autre requ&amp;#234;te jusqu&amp;#8217;&amp;#224; ce que le l&amp;#8217;appel r&amp;#233;seau ce compl&amp;#232;te. Ceci permet aux d&amp;#233;veloppeurs de ne pas avoir &amp;#224; bloquer les threads sur un serveur et donc de supporter du code tr&amp;#232;s efficace et &amp;#233;volutif. &lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;Un des buts de ce Preview int&amp;#233;rimaire est de donner aux gens la chance d&amp;#8217;exp&amp;#233;rimenter avec cette nouvelle approche et de concevoir des applications r&amp;#233;elles et apprendre de celle-ci.    &lt;br /&gt;Nous allons aussi publier une classe de base Controller alternative &amp;#224; titre d&amp;#8217;exemple que vous pouvez utiliser si vous pr&amp;#233;f&amp;#233;rez l&amp;#8217;approche, Action &amp;#171; void &amp;#187;. Nous avons d&amp;#233;lib&amp;#233;r&amp;#233;ment omis d&amp;#8217;inclure cette classe de base Controller alternative dans ce d&amp;#233;p&amp;#244;t des sources actualis&amp;#233;es, car nous voulons vous encourager &amp;#224; faire l&amp;#8217;essai de l&amp;#8217;approche qui retourne un &amp;#171; ActionResult &amp;#187; et de nous envoyer leurs commentaires.&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;u&gt;Comment ex&amp;#233;cuter les tests unitaires des m&amp;#233;thodes Action Contr&amp;#244;leur&lt;/u&gt;&lt;/b&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;J&amp;#8217;ai mentionn&amp;#233; ci-dessus que la nouvelle approche ActionResult facilite l&amp;#8217;ex&amp;#233;cution de tests unitaires des Controller grandement (et &amp;#233;vite la n&amp;#233;cessit&amp;#233; de faire le &amp;#171; mocking &amp;#187; de sc&amp;#233;narios commun).&amp;#160; Faisons le tour d&amp;#8217;un exemple de cette Action.&lt;/p&gt;  &lt;p&gt;Consid&amp;#233;rons la classe simple NumberController ci-dessous :&lt;/p&gt;  &lt;p&gt;&lt;a href="http://weblogs.asp.net/blogs/scottgufrench/WindowsLiveWriter/LessourcesduPreviewdASP.NETMVCactualises_98CD/clip_image014_2.jpg"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="180" alt="clip_image014" src="http://weblogs.asp.net/blogs/scottgufrench/WindowsLiveWriter/LessourcesduPreviewdASP.NETMVCactualises_98CD/clip_image014_thumb.jpg" width="244" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Cette classe Controller &amp;#224; une m&amp;#233;thode Action &amp;quot;IsEvenNumber&amp;quot; qui accepte un nombre comme argument URL.&amp;#160; La m&amp;#233;thode Action IsEvenNumber v&amp;#233;rifie tout d&amp;#8217;abord si le nombre est n&amp;#233;gatif, dans un tel cas elle redirige vers une page erreur. S&amp;#8217;il s&amp;#8217;agit d&amp;#8217;un nombre positif, elle d&amp;#233;termine si le nombre est pair ou impair et rafraichit le template View qui affiche le message appropri&amp;#233; :&lt;/p&gt;  &lt;p&gt;&lt;a href="http://weblogs.asp.net/blogs/scottgufrench/WindowsLiveWriter/LessourcesduPreviewdASP.NETMVCactualises_98CD/clip_image016_2.jpg"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="128" alt="clip_image016" src="http://weblogs.asp.net/blogs/scottgufrench/WindowsLiveWriter/LessourcesduPreviewdASP.NETMVCactualises_98CD/clip_image016_thumb.jpg" width="244" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&amp;#201;crire des tests unitaires pour notre m&amp;#233;thode Action &amp;#171; IsEvenNumber &amp;#187; est tr&amp;#232;s facile gr&amp;#226;ce &amp;#224; la nouvelle approche ActionResult.&lt;/p&gt;  &lt;p&gt;Ci-dessous, un exemple de test unitaire qui v&amp;#233;rifie que la bonne redirection Http se produit lorsqu&amp;#8217;un nombre n&amp;#233;gatif est pass&amp;#233; (par exemple : /Number/IsEvenNumber/-1):&lt;/p&gt;  &lt;p&gt;&lt;a href="http://weblogs.asp.net/blogs/scottgufrench/WindowsLiveWriter/LessourcesduPreviewdASP.NETMVCactualises_98CD/clip_image018_2.jpg"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="99" alt="clip_image018" src="http://weblogs.asp.net/blogs/scottgufrench/WindowsLiveWriter/LessourcesduPreviewdASP.NETMVCactualises_98CD/clip_image018_thumb.jpg" width="244" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Remarquez ci-dessus comment il n&amp;#8217;est pas n&amp;#233;cessaire de faire le mocking d&amp;#8217;aucun objet pour tester notre m&amp;#233;thode Action. Plut&amp;#244;t, nous avons simplement instanci&amp;#233; la classe NumberController et appel&amp;#233; la m&amp;#233;thode Action directement (en y passant un nombre n&amp;#233;gatif) et en assignant la valeur de retour &amp;#224; une variable locale &amp;#171; result &amp;#187;. J&amp;#8217;ai utilis&amp;#233; la syntaxe &amp;#171; as type&amp;#187; de C# ci-dessus afin de convertir la variable &amp;#171; result &amp;#187; vers un type &amp;quot;HttpRedirectResult&amp;quot; fortement typ&amp;#233;.&lt;/p&gt;  &lt;p&gt;Ce qu&amp;#8217;il y a de bien &amp;#224; propos du mot cl&amp;#233; &amp;#171; as &amp;#187; de C# est qu&amp;#8217;il va assign&amp;#233; la valeur &amp;#171; null &amp;#187; au lieu de lancer une exception si la conversion &amp;#233;choue (par exemple: si une m&amp;#233;thode Action retourne un RenderViewResult &amp;#224; la place). Cela implique donc que je peux facilement ajouter une v&amp;#233;rification Assert pour valider que le r&amp;#233;sultat ne soit pas null afin de s&amp;#8217;assurer que la bonne redirection Http est survenue. Je peux donc par la suite ajouter une seconde v&amp;#233;rification Assert pour valider que la bonne URL de redirection ait &amp;#233;t&amp;#233; fournie.&lt;/p&gt;  &lt;p&gt;Tester pour les sc&amp;#233;narios dans lesquelles des nombres diff&amp;#233;rents de z&amp;#233;ro sont pass&amp;#233;s est aussi tr&amp;#232;s facile. Pour faire cela, nous allons cr&amp;#233;er deux m&amp;#233;thodes de tests, une pour le test de nombre pair et l&amp;#8217;autre pour le test de nombre impair. Dans les deux tests, nous allons faire un Assert qu&amp;#8217;un RenderViewResult ait &amp;#233;t&amp;#233; retourn&amp;#233;. Par la suite nous allons v&amp;#233;rifier que le bon string &amp;#171; Message&amp;#187; est pass&amp;#233; dans le ViewData associ&amp;#233; avec la View :&lt;/p&gt;  &lt;p&gt;&lt;a href="http://weblogs.asp.net/blogs/scottgufrench/WindowsLiveWriter/LessourcesduPreviewdASP.NETMVCactualises_98CD/clip_image020_2.jpg"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="114" alt="clip_image020" src="http://weblogs.asp.net/blogs/scottgufrench/WindowsLiveWriter/LessourcesduPreviewdASP.NETMVCactualises_98CD/clip_image020_thumb.jpg" width="244" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Nous pouvons alors faire un clique droit sur notre classe NumberControllerTest directement dans VS 2008 pour ensuite choisir l&amp;#8217;item menu &amp;#171; Run Tests &amp;#187; :&lt;/p&gt;  &lt;p&gt;&lt;a href="http://weblogs.asp.net/blogs/scottgufrench/WindowsLiveWriter/LessourcesduPreviewdASP.NETMVCactualises_98CD/clip_image022_2.jpg"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="160" alt="clip_image022" src="http://weblogs.asp.net/blogs/scottgufrench/WindowsLiveWriter/LessourcesduPreviewdASP.NETMVCactualises_98CD/clip_image022_thumb.jpg" width="244" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Ceci ex&amp;#233;cutera nos trios tests unitaires en m&amp;#233;moire (aucun serveur web requis) pour ensuite nous informer si notre m&amp;#233;thode Action NumberController.IsEvenNumber() se comporte correctement:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://weblogs.asp.net/blogs/scottgufrench/WindowsLiveWriter/LessourcesduPreviewdASP.NETMVCactualises_98CD/clip_image024_2.jpg"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="67" alt="clip_image024" src="http://weblogs.asp.net/blogs/scottgufrench/WindowsLiveWriter/LessourcesduPreviewdASP.NETMVCactualises_98CD/clip_image024_thumb.jpg" width="244" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;i&gt;Note: Avec le d&amp;#233;p&amp;#244;t de sources de cette semaine, vous devez tout de m&amp;#234;me faire le mocking du test de la propri&amp;#233;t&amp;#233; TempData sur les Controllers. Notre plan est de rendre optionnel le mocking pour faire ces tests avec le d&amp;#233;p&amp;#244;t du Preview 3 d&amp;#8217;ASP.NET MVC dans quelques semaines.&lt;/i&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;u&gt;M&amp;#233;thode d&amp;#8217;aide MapRoute&lt;/u&gt;&lt;/b&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;Les r&amp;#232;gles de routage d&amp;#8217;URL dans les applications ASP.NET MVC sont typiquement d&amp;#233;clar&amp;#233;es dans la m&amp;#233;thode &amp;#171; RegisterRoutes &amp;#187; de la classe Global.asax.&lt;/p&gt;  &lt;p&gt;Avec ASP.NET MVC Preview 1 et 2, les routes &amp;#233;taient ajout&amp;#233;es dans des collections de routes en instanciant un objet Route directement tout en le liant &amp;#224; une classe MvcRouteHandler et en activant les propri&amp;#233;t&amp;#233;s appropri&amp;#233;es pour d&amp;#233;clarer les r&amp;#232;gles de routages :&lt;/p&gt;  &lt;p&gt;&lt;a href="http://weblogs.asp.net/blogs/scottgufrench/WindowsLiveWriter/LessourcesduPreviewdASP.NETMVCactualises_98CD/clip_image026_2.jpg"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="102" alt="clip_image026" src="http://weblogs.asp.net/blogs/scottgufrench/WindowsLiveWriter/LessourcesduPreviewdASP.NETMVCactualises_98CD/clip_image026_thumb.jpg" width="244" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Le code ci-dessus va continuer de fonctionner &amp;#224; l&amp;#8217;avenir. Par contre, vous pouvez tirer avantage de la nouvelle m&amp;#233;thode d&amp;#8217;aide &amp;#171; MapRoute &amp;#187; qui offre une syntaxe grandement simplifi&amp;#233;e pour arriver au m&amp;#234;me r&amp;#233;sultat. Ci-dessous, la route URL d&amp;#233;finit par convention et configure par d&amp;#233;faut lorsque vous cr&amp;#233;er un nouveau projet ASP.NET MVC (ce qui remplace le code ci-dessus) :&lt;/p&gt;  &lt;p&gt;&lt;a href="http://weblogs.asp.net/blogs/scottgufrench/WindowsLiveWriter/LessourcesduPreviewdASP.NETMVCactualises_98CD/clip_image028_2.jpg"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="85" alt="clip_image028" src="http://weblogs.asp.net/blogs/scottgufrench/WindowsLiveWriter/LessourcesduPreviewdASP.NETMVCactualises_98CD/clip_image028_thumb.jpg" width="244" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;La m&amp;#233;thode d&amp;#8217;aide MapRoute() est surcharg&amp;#233;e et accepte deux, trois ou quatre param&amp;#232;tres (nom de la route, Syntaxe URL, param&amp;#232;tre URL par d&amp;#233;faut et des param&amp;#232;tres restrictifs pour les URL avec des expressions r&amp;#233;guli&amp;#232;res).&amp;#160; &lt;/p&gt;  &lt;p&gt;Vous pouvez appel&amp;#233; MapRoute() aussi souvent que vous d&amp;#233;sirez enregistrer plusieurs routes nomm&amp;#233;es dans le syst&amp;#232;me. Par exemple, en plus de la r&amp;#232;gle conventionnelle par d&amp;#233;faut, nous pourrions ajouter une r&amp;#232;gle nomm&amp;#233;e &amp;#171; Products-Browse &amp;#187; comme ci-dessous :&lt;/p&gt;  &lt;p&gt;&lt;a href="http://weblogs.asp.net/blogs/scottgufrench/WindowsLiveWriter/LessourcesduPreviewdASP.NETMVCactualises_98CD/clip_image030_2.jpg"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="69" alt="clip_image030" src="http://weblogs.asp.net/blogs/scottgufrench/WindowsLiveWriter/LessourcesduPreviewdASP.NETMVCactualises_98CD/clip_image030_thumb.jpg" width="244" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Nous pouvons ensuite r&amp;#233;f&amp;#233;rencer cette la r&amp;#232;gle &amp;#171; Products-Browse &amp;#187; explicitement dans nos controllers et View lorsque nous d&amp;#233;sirons y g&amp;#233;n&amp;#233;rer un URL. Par exemple, nous pourrions utiliser la View d&amp;#8217;aide Html.RouteLink pour indiquer que nous voulons lier notre route &amp;#171; Products-Browse &amp;#187; et lui passer un param&amp;#232;tre de cat&amp;#233;gorie &amp;quot;Food&amp;quot; en utilisant le code dans notre template View comme ci-dessous :&lt;/p&gt;  &lt;p&gt;&lt;a href="http://weblogs.asp.net/blogs/scottgufrench/WindowsLiveWriter/LessourcesduPreviewdASP.NETMVCactualises_98CD/clip_image032_2.jpg"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="28" alt="clip_image032" src="http://weblogs.asp.net/blogs/scottgufrench/WindowsLiveWriter/LessourcesduPreviewdASP.NETMVCactualises_98CD/clip_image032_thumb.jpg" width="244" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Cette View d&amp;#8217;aide va donc acc&amp;#232;de le syst&amp;#232;me de routage et g&amp;#233;n&amp;#233;rer l&amp;#8217;hyperlien HTML appropri&amp;#233; comme ci-dessous (note : voyez comment la substitution automatique du param&amp;#232;tre de la cat&amp;#233;gorie dans l&amp;#8217;URL ces produites en utilisant la r&amp;#232;gle de routage):&lt;/p&gt;  &lt;p&gt;&lt;a href="http://weblogs.asp.net/blogs/scottgufrench/WindowsLiveWriter/LessourcesduPreviewdASP.NETMVCactualises_98CD/clip_image034_2.jpg"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="34" alt="clip_image034" src="http://weblogs.asp.net/blogs/scottgufrench/WindowsLiveWriter/LessourcesduPreviewdASP.NETMVCactualises_98CD/clip_image034_thumb.jpg" width="244" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;i&gt;Note: Avec le d&amp;#233;p&amp;#244;t de sources de cette semaine, vous devez passer le Controller et le param&amp;#232;tre Action (en plus du param&amp;#232;tre Category) &amp;#224; la m&amp;#233;thode d&amp;#8217;aide Html.RouteLink() pour r&amp;#233;soudre la bonne route URL &amp;#224; g&amp;#233;n&amp;#233;rer. Dans le d&amp;#233;p&amp;#244;t d&amp;#8217;ASP.NET MVC Preview 3 d&amp;#8217;ici quelques semaines, ceci ne sera plus n&amp;#233;cessaire et il vous sera possible d&amp;#8217;utiliser Html.RouteLink exactement comme je l&amp;#8217;ai &amp;#233;crit ci-dessus pour r&amp;#233;soudre la route.&lt;/i&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;u&gt;Autres fonctionnalit&amp;#233;s de mappage de route URL&lt;/u&gt;&lt;/b&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;Le d&amp;#233;p&amp;#244;t de source MVC de cette semaine supporte plusieurs nouvelles fonctionnalit&amp;#233;s de mappage de route URL. Vous pouvez maintenant inclure &amp;#171; - &amp;#187;, &amp;#171; . &amp;#187;, &amp;#171; ; &amp;#187; ainsi que n'importe quels autres caract&amp;#232;res que vous d&amp;#233;sirez au sein de vos r&amp;#232;gles de routes.&lt;/p&gt;  &lt;p&gt;Par exemple, en utilisant un s&amp;#233;parateur &amp;#171; - &amp;#187; vous pouvez maintenant analyser la langue et les valeurs locales s&amp;#233;par&amp;#233;ment en utilisant une r&amp;#232;gle comme ci-dessous :&lt;/p&gt;  &lt;p&gt;&lt;a href="http://weblogs.asp.net/blogs/scottgufrench/WindowsLiveWriter/LessourcesduPreviewdASP.NETMVCactualises_98CD/clip_image036_2.jpg"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="51" alt="clip_image036" src="http://weblogs.asp.net/blogs/scottgufrench/WindowsLiveWriter/LessourcesduPreviewdASP.NETMVCactualises_98CD/clip_image036_thumb.jpg" width="244" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Ceci passerait les param&amp;#232;tres &amp;#171; language &amp;#187;, &amp;#171; locale &amp;#187; et &amp;#171; category &amp;#187; appropri&amp;#233;s &amp;#224; la m&amp;#233;thode Action ProductsController.Browse quand elle est invoqu&amp;#233;e :&lt;/p&gt;  &lt;p&gt;&lt;u&gt;R&amp;#232;gle de routage URL&lt;/u&gt;&lt;/p&gt;  &lt;p&gt;&lt;u&gt;Exemple d&amp;#8217;URL&lt;/u&gt;&lt;/p&gt;  &lt;p&gt;&lt;u&gt;Param&amp;#232;tres pass&amp;#233;s &amp;#224; la r&amp;#232;gle&lt;/u&gt;&lt;/p&gt;  &lt;p&gt;{language}-{locale}/products/browse/{category}&lt;/p&gt;  &lt;p&gt;/en-us/products/browse/food&lt;/p&gt;  &lt;p&gt;language=en, locale=us, category=food&lt;/p&gt;  &lt;p&gt;/en-uk/products/browse/food&lt;/p&gt;  &lt;p&gt;language=en, locale=uk, category=food&lt;/p&gt;  &lt;p&gt;Ou vous pouvez utiliser le type d&amp;#8217;extension de fichier &amp;#171; . &amp;#187; &amp;#224; la fin d&amp;#8217;un URL pour d&amp;#233;terminer s&amp;#8217;il faut produite le r&amp;#233;sultat en format XML ou HTML :&lt;/p&gt;  &lt;p&gt;&lt;a href="http://weblogs.asp.net/blogs/scottgufrench/WindowsLiveWriter/LessourcesduPreviewdASP.NETMVCactualises_98CD/clip_image038_2.jpg"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="48" alt="clip_image038" src="http://weblogs.asp.net/blogs/scottgufrench/WindowsLiveWriter/LessourcesduPreviewdASP.NETMVCactualises_98CD/clip_image038_thumb.jpg" width="244" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Ceci passerait un param&amp;#232;tre &amp;#171; category&amp;#187; et un param&amp;#232;tre &amp;#171; format&amp;#187; &amp;#224; la m&amp;#233;thode Action ProductsController.Browse lorsque qu&amp;#8217;invoqu&amp;#233;e :&lt;/p&gt;  &lt;p&gt;&lt;u&gt;R&amp;#232;gle de routage URL&lt;/u&gt;&lt;/p&gt;  &lt;p&gt;&lt;u&gt;Exemple d&amp;#8217;URL&lt;/u&gt;&lt;/p&gt;  &lt;p&gt;&lt;u&gt;Param&amp;#232;tres pass&amp;#233;s &amp;#224; la r&amp;#232;gle&lt;/u&gt;&lt;/p&gt;  &lt;p&gt;products/browse/{category}.{format}&lt;/p&gt;  &lt;p&gt;/products/browse/food.xml&lt;/p&gt;  &lt;p&gt;category=food, format=xml&lt;/p&gt;  &lt;p&gt;/products/browse/food.html&lt;/p&gt;  &lt;p&gt;category=food, format=html&lt;/p&gt;  &lt;p&gt;ASP.NET MVC Preview 2 faisait l&amp;#8217;introduction des wildcard dans les r&amp;#232;gles de routage. Par exemple, vous pouvez indiquez dans une r&amp;#232;gle de passer tout le contenu URI restant en tant que param&amp;#232;tre nomm&amp;#233; &amp;#224; une m&amp;#233;thode Action :&lt;/p&gt;  &lt;p&gt;&lt;a href="http://weblogs.asp.net/blogs/scottgufrench/WindowsLiveWriter/LessourcesduPreviewdASP.NETMVCactualises_98CD/clip_image040_2.jpg"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="51" alt="clip_image040" src="http://weblogs.asp.net/blogs/scottgufrench/WindowsLiveWriter/LessourcesduPreviewdASP.NETMVCactualises_98CD/clip_image040_thumb.jpg" width="244" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Ceci passerait un param&amp;#232;tre &amp;#171; contentUrl &amp;#187; &amp;#224; la m&amp;#233;thode Action WikiController.DisplayPage, lorsqu&amp;#8217;invoqu&amp;#233;e :&lt;/p&gt;  &lt;p&gt;&lt;u&gt;R&amp;#232;gle de routage URL&lt;/u&gt;&lt;/p&gt;  &lt;p&gt;&lt;u&gt;Exemple d&amp;#8217;URL&lt;/u&gt;&lt;/p&gt;  &lt;p&gt;&lt;u&gt;Param&amp;#232;tres pass&amp;#233;s &amp;#224; la r&amp;#232;gle&lt;/u&gt;&lt;/p&gt;  &lt;p&gt;Wiki/Pages/{*contentUrl}&lt;/p&gt;  &lt;p&gt;/Wiki/Pages/People/Scott&lt;/p&gt;  &lt;p&gt;contentUrl=&amp;quot;People/Scott&amp;quot;&lt;/p&gt;  &lt;p&gt;/Wiki/Pages/Countries/UK&lt;/p&gt;  &lt;p&gt;contentUrl=&amp;quot;Countries/UK&amp;quot;&lt;/p&gt;  &lt;p&gt;Ces wildcard de routes fonctionnent toujours bien avec le Preview de cette semaine et peuvent &amp;#234;tre tr&amp;#232;s pratiques lorsque que vous d&amp;#233;veloppez des applications de blogage,wiki, cms ou autre syst&amp;#232;me base sur le contenu.&lt;/p&gt;  &lt;p&gt;Prenez note qu&amp;#8217;en plus d&amp;#8217;utiliser le nouveau syst&amp;#232;me de routage pour les sc&amp;#233;narios ASP.NET MVC, nous utilisons maintenant le m&amp;#234;me syst&amp;#232;me de routage pour &lt;a href="http://weblogs.asp.net/scottgu/archive/2008/04/10/asp-net-dynamic-data-preview-available.aspx"&gt;ASP.NET Dynamic Data&lt;/a&gt; (qui utilise les web forms d&amp;#8217;ASP.NET).&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;u&gt;En r&amp;#233;sum&amp;#233;&lt;/u&gt;&lt;/b&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;Esp&amp;#233;rons que l&amp;#8217;article ci-dessus apporte un aper&amp;#231;u de quelques-unes des nouvelles fonctionnalit&amp;#233;s et changement expos&amp;#233; dans le d&amp;#233;p&amp;#244;t de sources actualis&amp;#233;es d&amp;#8217;ASP.NET MVC de cette semaine.&amp;#160; &lt;/p&gt;  &lt;p&gt;Vous pouvez le 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; et commencer &amp;#224; l&amp;#8217;utiliser d&amp;#232;s maintenant. Vous pouvez aussi attendre quelques semaines pour le d&amp;#233;p&amp;#244;t officiel d&amp;#8217;ASP.NET MVC Preview 3 qui devrait inclure encore plus de fonctionnalit&amp;#233;s (dont les commentaires re&amp;#231;us des usagers &amp;#224; propos du d&amp;#233;p&amp;#244;t de cette semaine), un installateur simplifi&amp;#233;, une meilleure int&amp;#233;gration dans VS et une documentation mise &amp;#224; jour.&lt;/p&gt;  &lt;p&gt;Pour toutes questions/probl&amp;#232;mes concernant le d&amp;#233;p&amp;#244;t de cette semaine d&amp;#8217;ASP.NET MVC, assurez-vous de consulter le &lt;a href="http://forums.asp.net/1146.aspx"&gt;forum ASP.NET MVC&lt;/a&gt; sur &lt;a href="http://www.asp.net"&gt;www.asp.net&lt;/a&gt;. &lt;/p&gt;  &lt;p&gt;En esp&amp;#233;rant que ceci vous soit pratique,&lt;/p&gt;  &lt;p&gt;Scott&lt;/p&gt;  &lt;p&gt;&lt;a href="http://codebehind.ca/blogs/alexmensi/default.aspx"&gt;Alexandre Mensi&lt;/a&gt; - &lt;a href="http://weblogs.asp.net/scottgu/archive/2008/04/16/asp-net-mvc-source-refresh-preview.aspx"&gt;Article original par Scott Guthrie&lt;/a&gt;&lt;/p&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=6120956" 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></item><item><title>Liens du 11 avril: ASP.NET, ASP.NET AJAX, ASP.NET MVC, Visual Studio et Silverlight</title><link>http://weblogs.asp.net/scottgufrench/archive/2008/04/15/liens-du-11-avril-asp-net-asp-net-ajax-asp-net-mvc-visual-studio-et-silverlight.aspx</link><pubDate>Tue, 15 Apr 2008 19:41:43 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:6102428</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=6102428</wfw:commentRss><comments>http://weblogs.asp.net/scottgufrench/archive/2008/04/15/liens-du-11-avril-asp-net-asp-net-ajax-asp-net-mvc-visual-studio-et-silverlight.aspx#comments</comments><description>&lt;p&gt;Voici l&amp;#8217;article le plus r&amp;#233;cent dans ma s&amp;#233;rie &lt;a href="http://weblogs.asp.net/scottgu/archive/2008/03/28/march-28th-links-asp-net-asp-net-ajax-asp-net-mvc-visual-studio-silverlight-net.aspx"&gt;Listes de liens&lt;/a&gt;.&amp;#160; Visitez aussi ma page &lt;a href="http://weblogs.asp.net/scottgu/pages/ASP.NET-2.0-Tips_2C00_-Tricks_2C00_-Recipes-and-Gotchas.aspx"&gt;Astuces, trucs et tutoriels ASP.NET &lt;/a&gt;et ma page &lt;a href="http://weblogs.asp.net/scottgu/pages/silverlight-posts.aspx"&gt;Tutoriels Silverlight&lt;/a&gt; pour des liens vers des articles populaires que j&amp;#8217;ai &amp;#233;crits dans le pass&amp;#233;.&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;u&gt;ASP.NET&lt;/u&gt;&lt;/b&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="http://scottonwriting.net/sowblog/posts/13196.aspx"&gt;Plus de tutoriels sur la s&amp;#233;curit&amp;#233; ASP.NET&lt;/a&gt;: Les 3 derniers des excellents &lt;a href="http://asp.net/learn/security/"&gt;Tutoriels sur la s&amp;#233;curit&amp;#233; ASP.NET&lt;/a&gt; de Scott Mitchell. Ces 3 tutoriels finaux porte sur la fa&amp;#231;on de choisir un compte usager, recouvrir et changer un mot de passe et d&amp;#233;verrouiller et approuver un compte usager.&lt;/li&gt; &lt;/ul&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="http://mattberseth.com/blog/2008/04/building_a_vs2008_styled_grid.html"&gt;Cr&amp;#233;ation d'une grille stylis&amp;#233;e avec VS 2008 et les contr&amp;#244;les ListView et DataPager&lt;/a&gt;: Matt Berseth &amp;#224; &amp;#233;crit un excellent article qui traite des techniques que vous pouvez utiliser avec le nouveau contr&amp;#244;le ListView d&amp;#8217;ASP.NET 3.5 pour cr&amp;#233;er un UI stylis&amp;#233; pour vos grilles tout en pr&amp;#233;servant le contr&amp;#244;le total du HTML et du CSS utilis&amp;#233;. Lisez aussi &lt;a href="http://mattberseth.com/blog/2008/04/building_a_vs2008_styled_grid_1.html"&gt;l'article subs&amp;#233;quent&lt;/a&gt; qui d&amp;#233;montre comment arriver au m&amp;#234;me UI avec le contr&amp;#244;le GridView.&lt;/li&gt; &lt;/ul&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="http://www.emmaalvarez.com/2008/04/most-useful-50-css-tips-and-tools-for.html"&gt;50 trucs et astuces pour CSS&lt;/a&gt; Une page pratique qui offre une liste exhaustive de trucs et d&amp;#8217;astuces pour CSS &amp;#224; utiliser dans les d&amp;#233;veloppements web de tous les jours.&lt;/li&gt; &lt;/ul&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="http://mattberseth.com/blog/2008/04/using_a_datapager_with_the_gri.html"&gt;Utiliser un DataPager avec le contr&amp;#244;le GridView - Impl&amp;#233;mentation de IPageableItemContainer&lt;/a&gt;: Matt Berseth a &amp;#233;crit un article cool qui montre comment utiliser l&amp;#8217;interface IPageableItemContainer pour impl&amp;#233;menter le support de pagination avec le nouveau contr&amp;#244;le DataPager d&amp;#8217;ASP.NET 3.5.&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;b&gt;&lt;u&gt;ASP.NET AJAX&lt;/u&gt;&lt;/b&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="http://dotnetslackers.com/articles/ajax/AccessibleUpdatePanel.aspx"&gt;UpdatePanel Accessible&lt;/a&gt;: Bertrand Le Roy de l&amp;#8217;&amp;#233;quipe ASP.NET &amp;#224; &amp;#233;crit un article qui d&amp;#233;crit la marche &amp;#224; suivre pour rendre l&amp;#8217;UpdatePanel d&amp;#8217;ASP.NET AJAX accessible au lecteur d&amp;#8217;&amp;#233;cran.&lt;/li&gt; &lt;/ul&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="http://aspadvice.com/blogs/garbin/archive/2008/04/02/ASP.NET-AJAX-meets-Virtual-Earth-series-on-DotNetSlackers.aspx"&gt;ASP.NET AJAX &amp;#224; la rencontre de Virtual Earth&lt;/a&gt;: Alessandro Gallo, auteur de l&amp;#8217;excellent livre &lt;a href="http://www.amazon.com/gp/product/1933988142/104-9219624-7383145?ie=UTF8&amp;amp;tag=scoblo04-20&amp;amp;linkCode=xm2&amp;amp;camp=1789&amp;amp;creativeASIN=1933988142"&gt;ASP.NET AJAX in Action&lt;/a&gt; , &amp;#224; une belle s&amp;#233;rie d&amp;#8217;articles qui porte sur l&amp;#8217;utilisation d&amp;#8217;ASP.NET AJAX avec Virtual Earth pour faire l&amp;#8217;impl&amp;#233;mentation de mappage sur votre site.&lt;/li&gt; &lt;/ul&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="http://weblogs.asp.net/omarzabir/archive/2008/04/06/fast-page-loading-by-moving-asp-net-ajax-scripts-after-visible-content.aspx"&gt;Chargements plus rapides en d&amp;#233;placent les scripts d&amp;#8217;ASP.NET AJAX apr&amp;#232;s le contenue visuel&lt;/a&gt;: Omar Al Zabir (cofondateur de &lt;a href="http://www.PageFlakes.com"&gt;www.PageFlakes.com&lt;/a&gt;) &amp;#224; &amp;#233;crit un excellent article qui d&amp;#233;crit une technique pratique que vous pouvez am&amp;#233;liorer les performances per&amp;#231;ues au chargement des pages qui comporte des contr&amp;#244;les ASP.NET AJAX. Je vous recommande aussi fortement de lire &lt;a href="http://www.amazon.com/gp/product/0596510500/002-5242737-1614454?ie=UTF8&amp;amp;tag=scoblo04-20&amp;amp;linkCode=xm2&amp;amp;camp=1789&amp;amp;creativeASIN=0596510500"&gt;Building a Web 2.0 Portal with ASP.NET 3.5&lt;/a&gt; de Omar pour apprendre certaines de ces suggestions et techniques.&lt;/li&gt; &lt;/ul&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="http://mattberseth.com/blog/2008/04/3_tips_for_working_with_the_aj.html"&gt;3 astuces pour composer avec le contr&amp;#244;le TabContainer d&amp;#8217;ASP.NET AJAX &lt;/a&gt;: Matt Berseth poursuit sa s&amp;#233;rie d&amp;#8217;excellents articles sur ASP.NET AJAX avec quelques astuces pour composer avec le contr&amp;#244;le TabContainer inclus dans le Toolkit ASP.NET AJAX.&lt;/li&gt;    &lt;li&gt;&lt;a href="http://blogs.msdn.com/mikeormond/archive/2008/03/28/building-asp-net-ajax-controls-index-post.aspx"&gt;Cr&amp;#233;ation de composantes ASP.NET AJAX :&lt;/a&gt; Mike Ormond &amp;#224; &amp;#233;crit un excellent article en 8 parties portant sur la cr&amp;#233;ation de composantes r&amp;#233;utilisables ASP.NET AJAX qui op&amp;#232;rent aussi bien du c&amp;#244;t&amp;#233; serveur que client.&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;b&gt;&lt;u&gt;ASP.NET MVC&lt;/u&gt;&lt;/b&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="http://www.myvbprof.com/2007_Version/MVC_Intro_Tutorial.aspx"&gt;Une introduction &amp;#224; ASP.NET MVC avec VB&lt;/a&gt;: Bill Burrows de &lt;a href="http://www.MyVBprof.com"&gt;www.MyVBprof.com&lt;/a&gt; a r&amp;#233;uni un ensemble de vid&amp;#233;os faisant l&amp;#8217;introduction d&amp;#8217;ASP.NET MVC avec Visual Basic. Assurez-vous aussi de visionner ces s&amp;#233;ries vid&amp;#233;o sur &lt;a href="http://www.myvbprof.com/2007_Version/VB9_XML.aspx"&gt;LINQ to XML avec VB&lt;/a&gt; et &lt;a href="http://www.myvbprof.com/2007_Version/LINQ_to_SQL.aspx"&gt;LINQ to SQL avec VB&lt;/a&gt;.&lt;/li&gt; &lt;/ul&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="http://www.squaredroot.com/post/2008/04/MVC-Membership-Starter-Kit.aspx"&gt;ASP.NET MVC: Kit de d&amp;#233;part Membership&lt;/a&gt;: Troy Goode &amp;#224; con&amp;#231;ut un excellent kit de d&amp;#233;part ASP.NET MVC pour les Membership qui comprend les pages d&amp;#8217;enregistrement et de login pour permettre aux usagers de s&amp;#8217;authentifier sur votre site, ainsi qu&amp;#8217;un ensemble de fonctionnalit&amp;#233;s administratives qui permettent aux administrateurs de g&amp;#233;rer et de cr&amp;#233;er les usagers et les r&amp;#244;les. T&amp;#233;l&amp;#233;chargez-le &lt;a href="http://www.codeplex.com/MvcMembership"&gt;ici&lt;/a&gt;.&lt;/li&gt; &lt;/ul&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="http://www.squaredroot.com/post/2008/04/MVC-Error-Handler-Filter.aspx"&gt;ASP.NET MVC: Action Filter pour la gestion des erreurs&lt;/a&gt;: Troy Goode &amp;#224; &amp;#233;crit un autre bon article qui offre quelques ASP.NET MVC Action Filter pour trapper et g&amp;#233;rer les erreurs au runtime.&lt;/li&gt; &lt;/ul&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="http://biasecurities.com/blog/2008/how-to-enable-pretty-urls-with-asp-net-mvc-and-iis6/"&gt;Comment activer les URL &amp;#233;l&amp;#233;gants avec ASP.NET MVC et IIS6:&lt;/a&gt; James Geurts &amp;#224; mis en ligne un article pratique qui d&amp;#233;crit comment activer les YRL sans extensions avec ASP.NET MVC sous IIS6 (note: vous n&amp;#8217;avez rien de sp&amp;#233;cial &amp;#224; configurer avec ASP.NET MVC sous IIS7 pour activer le support d&amp;#8217;URL sans extensions).&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;b&gt;&lt;u&gt;Visual Studio&lt;/u&gt;&lt;/b&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="http://www.visualstudiogallery.com/ExtensionDetails.aspx?ExtensionId=df3f0c30-3d37-4e06-9ef8-3bff3508be31"&gt;PowerCommands pour Visual Studio 2008&lt;/a&gt;: Un ensemble d&amp;#8217;extensions pratiques et gratuites pour VS 2008 qui ajoute plusieurs fonctionnalit&amp;#233;s cool &amp;#224; l&amp;#8217;IDE.&lt;/li&gt; &lt;/ul&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="http://blogs.msdn.com/kirillosenkov/archive/2008/04/03/coding-productivity-macros-shortcuts-and-snippets.aspx"&gt;Productivit&amp;#233; en programmation: Macros, Raccourcis et Snippets&lt;/a&gt;: Kirill Osenkov &amp;#224; un bon article qui d&amp;#233;montre comment utiliser les fonctionnalit&amp;#233;s macro de Visual Studio afin de pr&amp;#233;programmer des sauve-temps pratiques. &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;b&gt;&lt;u&gt;Silverlight&lt;/u&gt;&lt;/b&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="http://geekswithblogs.net/WynApseTechnicalMusings/Default.aspx"&gt;L'excellente s&amp;#233;rie de liens Silverlight de Dave Campbell&lt;/a&gt;: Dave Campbell met en ligne r&amp;#233;guli&amp;#232;rement une s&amp;#233;rie de liens qui pointent vers des nouveaux articles et contenus web portant sur Silverlight. Je vous recommande fortement de vous abonner &amp;#224; son blogue si vous d&amp;#233;sirez rester inform&amp;#233; des nouveaux articles et contenus web portant sur Silverlight&lt;/li&gt; &lt;/ul&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="http://blogs.msdn.com/jasonz/archive/2008/04/04/silverlight-2-map-datagrid-demo-part-2.aspx"&gt;Carte Silverlight 2 / Tutoriel sur le DataGrid&lt;/a&gt;: Jason Zander &amp;#224; un excellent tutoriel sur Silverlight en 2 parties qui d&amp;#233;montrent comment concevoir une belle application orient&amp;#233;e donn&amp;#233;e qui incorpore le contr&amp;#244;le de carte avec un DataGrid pour filtrer et analyser les donn&amp;#233;es.&lt;/li&gt;    &lt;li&gt;&lt;a href="http://blogs.msdn.com/swiss_dpe_team/archive/2008/04/04/crud-operations-with-optimistic-locking-using-silverlight-2-beta1-wcf-and-linq-to-sql-inserts-updates-and-deletes.aspx"&gt;Op&amp;#233;rations CRUD avec Silverlight 2, WCF et LINQ to SQL&lt;/a&gt;: Ronnie Saurenmann de l&amp;#8217;&amp;#233;quipe MSDN Suisse &amp;#224; un bon vid&amp;#233;o qui montre les bases pour supporter les op&amp;#233;rations d&amp;#8217;insertions, de mise &amp;#224; jour et de suppression avec Silverlight 2 reli&amp;#233; via WCF &amp;#224; un backend Linq to SQL.&lt;/li&gt; &lt;/ul&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="http://blogs.msdn.com/sburke/archive/2008/03/22/tutorial-writing-a-templated-silverlight-2-control.aspx"&gt;Conception d'un contr&amp;#244;le Silverlight mod&amp;#233;lis&amp;#233;&lt;/a&gt;: Shawn Burke &amp;#224; un excellent tutoriel qui explique comment concevoir un contr&amp;#244;le Silverlight mod&amp;#233;lis&amp;#233; qui impl&amp;#233;mente un contr&amp;#244;le expand/collapse.&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;En esp&amp;#233;rant que ceci vous soit pratique,&lt;/p&gt;  &lt;p&gt;&lt;a href="http://codebehind.ca/blogs/alexmensi/default.aspx"&gt;Alexandre Mensi&lt;/a&gt; - &lt;a href="http://weblogs.asp.net/scottgu/archive/2008/04/11/april-11th-links-asp-net-asp-net-ajax-asp-net-mvc-visual-studio-silverlight.aspx"&gt;Article original par Scott Guthrie&lt;/a&gt;&lt;/p&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=6102428" 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/Link+Listing/default.aspx">Link Listing</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/Visual+Studio/default.aspx">Visual Studio</category></item><item><title>ASP.NET Dynamic Data Preview disponible</title><link>http://weblogs.asp.net/scottgufrench/archive/2008/04/15/asp-net-dynamic-data-preview-disponible.aspx</link><pubDate>Tue, 15 Apr 2008 19:35:15 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:6102415</guid><dc:creator>loicbar</dc:creator><slash:comments>6</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/scottgufrench/rsscomments.aspx?PostID=6102415</wfw:commentRss><comments>http://weblogs.asp.net/scottgufrench/archive/2008/04/15/asp-net-dynamic-data-preview-disponible.aspx#comments</comments><description>&lt;p&gt;Il y a quelques mois, est sorti la preview des extensions 3.5 d'ASP.NET contenant un lot de nouvelles fonctionnalit&amp;#233;s qui seront d&amp;#233;livr&amp;#233;es plus tard cette ann&amp;#233;e (ASP.NET AJAX Improvements, ASP.NET MVC, ASP.NET Silverlight Support, et ASP.NET Dynamic Data compris).&lt;/p&gt;  &lt;p&gt;Cette preview des Dynamic Data vous permettra de jeter un premier coup d'oeil sur les nouvelles fonctionnalit&amp;#233;s qui vous permettront de rapidement mettre en place des sites web orient&amp;#233;s donn&amp;#233;es fonctionnant avec LINQ to SQL ou avec le mod&amp;#232;le LINQ to Entities. ASP.NET Dynamic Data vous permettra de cr&amp;#233;er automatiquement des pages de saisies de donn&amp;#233;es et de rapports qui sont dynamiquement g&amp;#233;n&amp;#233;r&amp;#233;es &amp;#224; partir de votre mod&amp;#232;le de donn&amp;#233;es ORM (Object Relationnal Model). Ces pages peuvent &amp;#234;tre personnalis&amp;#233;es &amp;#224; l'aide de templates en utilisant du code ou du HTML.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;u&gt;ASP.NET Dynamic Data Preview&lt;/u&gt;&lt;/strong&gt; &lt;/p&gt;  &lt;p&gt;Aujourd'hui sort une mise &amp;#224; jour de la preview d'ASP.NET Dynamic Data. Pour en savoir plus et la t&amp;#233;l&amp;#233;charger, rendez-vous &lt;a href="http://code.msdn.microsoft.com/dynamicdata"&gt;ici&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;Cette nouvelle preview de dynamic data fonctionne maintenant avec les contr&amp;#244;les standart d'ASP.NET (GridView, ListView, FormView, DetailsView, etc). Dynamic Data permet &amp;#224; ces contr&amp;#244;les de g&amp;#233;rer automatiquement les relations de clefs &amp;#233;trang&amp;#232;res. Par exemple, sur un GridView vous aurez maintenant automatiquement un nom plus agr&amp;#233;able comme texte du lien d'une colonne repr&amp;#233;sentant une clef &amp;#233;trang&amp;#232;re. De la m&amp;#234;me mani&amp;#232;re, nous aurons une liste plus compr&amp;#233;hensible d'&amp;#233;l&amp;#233;ments lors de l'&amp;#233;dition d'un champs repr&amp;#233;sentant une clef &amp;#233;trang&amp;#232;re :&lt;/p&gt;  &lt;p&gt;&lt;img src="http://www.scottgu.com/blogposts/dynamicdata/step11.png" /&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Cette nouvelle version de Dynamic Data fournit &amp;#233;galement un contr&amp;#244;le de validation (fonctionnant c&amp;#244;t&amp;#233; client et c&amp;#244;t&amp;#233; serveur) qui se base sur les contraintes d&amp;#233;finies dans les classes du mod&amp;#232;le de donn&amp;#233;es. Par exemple, si une colonne de la base de donn&amp;#233;es est limit&amp;#233;e &amp;#224; 50 caract&amp;#232;res et qui est non nulle, un contr&amp;#244;le de validation sera automatiquement ajout&amp;#233; &amp;#224; notre page pour forcer le respect de ces contraintes. Si vous changez les contraintes au sein de votre mod&amp;#232;le LINQ to SQL ou LINQ to Entities, l'interface prendra directement en compte ces changements pour faire respecter les nouvelles contraintes d&amp;#232;s la prochaine requ&amp;#234;te.&lt;/p&gt;  &lt;p&gt;En plus des contraintes d&amp;#233;finies dans notre mod&amp;#232;le, vous pouvez &amp;#233;galement d&amp;#233;clarer vos propres contraintes ainsi que changer l'aspect des diff&amp;#233;rents contr&amp;#244;les de l'interface.&lt;/p&gt;  &lt;p&gt;Toutes ces fonctionnalit&amp;#233;s sont disponibles avec un mod&amp;#232;le LINQ to SQL et LINQ to Entities.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;u&gt;Visual Studio Dynamic Data Project Wizard&lt;/u&gt;&lt;/strong&gt; &lt;/p&gt;  &lt;p&gt;En plus du runtime ASP.NET Dynamic Data, l'&amp;#233;quipe des outils web de Visual Studio a aussi mis &amp;#224; disposition la premi&amp;#232;re preview du &amp;quot;Dynamic data project wizard&amp;quot; qui permet de rapidement mettre en place un site web orient&amp;#233; donn&amp;#233;es. Le wizard vous permet de s&amp;#233;lectionner une base de donn&amp;#233;es, les tables, les vues, les proc&amp;#233;dures sotck&amp;#233;es afin de cr&amp;#233;er un mod&amp;#232;le de donn&amp;#233;es correspondant &amp;#224; vos s&amp;#233;l&amp;#233;ctions :&lt;/p&gt;  &lt;p&gt;&lt;img src="http://blogs.msdn.com/photos/webdevtools/images/8371317/original.aspx" /&gt; &lt;/p&gt;  &lt;p&gt;Apr&amp;#232;s avoir cr&amp;#233;er un mod&amp;#232;le de donn&amp;#233;es, le wizard vous permet de facilement d&amp;#233;finir les templates qui d&amp;#233;finiront l'interface :&lt;/p&gt;  &lt;p&gt;&lt;img src="http://blogs.msdn.com/photos/webdevtools/images/8371312/original.aspx" /&gt; &lt;/p&gt;  &lt;p&gt;Vous pouvez ensuite indiquer si vous voulez g&amp;#233;n&amp;#233;rer les interfaces d'ajout / suppression / modification :&lt;/p&gt;  &lt;p&gt;&lt;img src="http://blogs.msdn.com/photos/webdevtools/images/8371319/original.aspx" /&gt; &lt;/p&gt;  &lt;p&gt;Lorsque vous cliquez sur &amp;quot;Finish&amp;quot;, le wizard g&amp;#233;n&amp;#233;re le projet avec votre mod&amp;#232;le de donn&amp;#233;es et les interfaces template pr&amp;#234;tes &amp;#224; l'emploi. Pour en savoir plus sur le wizard, vous pouvez le voir en action dans un post de blog &lt;a href="http://blogs.msdn.com/webdevtools/archive/2008/04/09/asp-net-dynamic-data-preview-released-on-msdn-code-gallery.aspx"&gt;ici&lt;/a&gt; (article + vid&amp;#233;o).&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;u&gt;Par o&amp;#249; commencer?&lt;/u&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Vous pouvez consulter la documentation et t&amp;#233;l&amp;#233;charger la preview de Dynamic Data &lt;a href="http://code.msdn.microsoft.com/dynamicdata"&gt;ici&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;Vous pouvez &amp;#233;galement regarder la vid&amp;#233;o de pr&amp;#233;sentation de David Ebbo au MIX08 &lt;a href="http://sessions.visitmix.com/?selectedSearch=T24"&gt;ici&lt;/a&gt; pour voir comment la preview de Dynamic Data fonctionne. Vous avez &amp;#233;galement une vid&amp;#233;o de Scott Hunter &lt;a href="http://davidebbo.members.winisp.net/screencasts/dbimage.wmv"&gt;ici&lt;/a&gt; et une de Brad Millington &lt;a href="http://blogs.msdn.com/webdevtools/archive/2008/04/09/asp-net-dynamic-data-preview-released-on-msdn-code-gallery.aspx"&gt;ici&lt;/a&gt;. David a &amp;#233;galement post&amp;#233; une &lt;a href="http://blogs.msdn.com/davidebb/archive/2008/03/06/dynamic-data-at-mix-and-upcoming-changes.aspx"&gt;liste des changements&lt;/a&gt; qui ont eu lieu depuis la version de d&amp;#233;cembre (j'ai &amp;#233;galement fais un post en fran&amp;#231;ais sur les changements, pour ceux que &amp;#231;a int&amp;#233;resse, &amp;#231;a se passe &lt;a href="http://www.loicbar.com/post/Dynamic-Data%2c-des-petits-changements-agrave%3b-preacute%3bvoir!.aspx"&gt;ici&lt;/a&gt;).&lt;/p&gt;  &lt;p&gt;Vos impressions et questions sur &lt;a href="http://www.asp.net"&gt;www.asp.net&lt;/a&gt; ainsi que sur les forums &lt;a href="http://forums.asp.net/1145.aspx"&gt;ici&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;J'&amp;#233;sp&amp;#232;re que cela vous aidera,&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/10/asp-net-dynamic-data-preview-available.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=6102415" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/scottgufrench/archive/tags/Dynamic+Data/default.aspx">Dynamic Data</category><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></item></channel></rss>