Les nouveautés d'ASP.NET MVC 3 par Nicolas Esprit (Site) (Blog) Philippe Vialat
Les nouveautés d'ASP.NET MVC 3 par Nicolas Esprit (Site) (Blog) Philippe Vialatte (Site) (Blog) Date de publication : 15 février 2011 Dernière mise à jour : Lancé fin 2009 comme une alternative à ASP.NET Web Forms, ASP.NET MVC est récemment entré en version 3. Dans cet article, nous allons revenir sur les nouveautés que cette version 3 apporte. Commentez cet article : Les nouveautés d'ASP.NET MVC 3 par Nicolas Esprit (Site) (Blog) Philippe Vialatte (Site) (Blog) - 2 - Copyright © 2011 Developpez LLC. Tout droits réservés Developpez LLC. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à 3 ans de prison et jusqu'à 300 000 E de dommages et intérêts. http://nicolasesprit.developpez.com/tutoriels/dotnet/nouveautes-asp-net-mvc-3/ 0 - Introduction.............................................................................................................................................................3 0-A - Qu'est-ce qu'ASP .NET MVC........................................................................................................................3 0-B - Différences entre Web Forms et MVC......................................................................................................... 3 I - Améliorations dans Visual Studio 2010..................................................................................................................4 I-A - Mise à jour des templates de projet..............................................................................................................4 I-B - Support de NuGet..........................................................................................................................................5 I-C - Fenêtre de création de nouveau projet......................................................................................................... 7 I-D - Fenêtre de création d'une nouvelle vue........................................................................................................7 I-E - Le moteur Razor............................................................................................................................................8 I-F - Amélioration du scaffolding des vues............................................................................................................ 9 II - Améliorations pour la Validation............................................................................................................................ 9 II-A - Gestion des DataAnnotations....................................................................................................................... 9 II-B - Nouveaux attributs de validation.................................................................................................................10 II-B-1 - CompareAttribute................................................................................................................................10 II-B-2 - RemoteAttribute..................................................................................................................................11 II-C - Contrôle plus fin de la validation de requêtes via AllowHTML...................................................................12 II-D - IValidatableObject....................................................................................................................................... 13 II-E - IClientValidatable.........................................................................................................................................13 III - Global Action Filters............................................................................................................................................14 IV - Meilleur support de l'injection de dépendances................................................................................................. 15 IV-A - Interface IDependencyResolver.................................................................................................................16 IV-B - Utilisation du DependencyResolver...........................................................................................................17 IV-C - Nouvelles interfaces IControllerActivator et IViewPageActivator.............................................................. 18 V - Meilleure gestion de la génération et du rendu HTML........................................................................................19 V-A - Nouvelle classe AdditionalMetadataAttribute............................................................................................. 19 V-B - Nouvelle méthode Html.Raw......................................................................................................................19 V-C - Changements dans la méthode Html.ValidationMessage..........................................................................20 V-D - Modifications apportées aux méthodes des Helpers................................................................................. 20 V-E - Surcharge des méthodes LabelFor et LabelForModel...............................................................................20 VI - Modifications dans les types d'Action Result..................................................................................................... 21 VI-A - HttpNotFoundResult...................................................................................................................................21 VI-B - HttpStatusCodeResult................................................................................................................................21 VI-C - Redirections permanentes avec RedirectResult ...................................................................................... 21 VII - Meilleur support JavaScript et Ajax...................................................................................................................22 VII-A - JavaScript discret pour Ajax.....................................................................................................................22 VII-B - jQuery discret pour la validation...............................................................................................................24 VII-C - Précisions sur l'activation du JavaScript discret et la validation côté client............................................. 25 VII-D - Nouvelle classe JsonValueProviderFactory..............................................................................................25 VIII - Amélioration du cache de sortie.......................................................................................................................27 IX - Améliorations diverses........................................................................................................................................28 IX-A - Sessionless Controllers............................................................................................................................. 28 IX-B - Support de code s'exécutant avant celui de la vue (_viewstart.cshtml)....................................................29 IX-C - IMetadataAware.........................................................................................................................................30 IX-D - ViewBag.....................................................................................................................................................30 X - Upgrader ses projets ASP.NET MVC 2 vers MVC 3.......................................................................................... 31 Liens........................................................................................................................................................................... 32 Conclusion..................................................................................................................................................................33 Remerciements.......................................................................................................................................................... 33 Les nouveautés d'ASP.NET MVC 3 par Nicolas Esprit (Site) (Blog) Philippe Vialatte (Site) (Blog) - 3 - Copyright © 2011 Developpez LLC. Tout droits réservés Developpez LLC. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à 3 ans de prison et jusqu'à 300 000 E de dommages et intérêts. http://nicolasesprit.developpez.com/tutoriels/dotnet/nouveautes-asp-net-mvc-3/ 0 - Introduction En guise d'introduction, nous allons voir rapidement l'historique du Framework MVC, et aborder une question que certains se posent encore. Quelle est la différence fondamentale entre ASP.NET MVC et ASP.NET Web Forms ? 0-A - Qu'est-ce qu'ASP .NET MVC Le patron de conception Modèle-Vue-Contrôleur (en abrégé MVC) est un patron de conception architectural, qui organise l'interface utilisateur d'une application en trois composants : • un modèle (contenant aussi bien des données que des opérations) ; • une vue (responsable de la présentation aux utilisateurs) ; • un contrôleur, dont le rôle est de gérer les événements et la synchronisation entre la Vue et le Modèle. MVC a été mis au point en 1979 par Trygve Reenskaug, qui travaillait alors sur SmallTalk. ASP.NET MVC est donc un Framework de développement d'application Web, basé sur ce patron de conception. Le Contrôleur est une classe exposant un certain nombre de fonctions (ou Actions) renvoyant un objet de type ActionResult. Une Action sera toujours le point d'entrée dans ASP.NET MVC, et pourra renvoyer, au choix, une page, des données dans différents formats (binaire, JSON, etc.), voire rien du tout. Les contrôleurs sont stockés dans le répertoire Controllers de l'application Web, et utilisent comme convention de nommage <Objet>Controller. Dans le cadre d'ASP.NET MVC, une Vue est l'équivalent d'une page Web, utilisant la liaison des données pour afficher des informations. Les vues sont, par définition, stockées dans le répertoire Views de l'application Web. Toutes les vues qui seront renvoyées par un contrôleur <Objet>Controller seront stockées dans le répertoire Views/<Objet>. Enfin, le modèle est un ensemble de classes " standards " dont le but est de gérer un ensemble de données, lesquelles seront ensuite affichées à l'utilisateur. C'est la partie " métier " de l'application, qui va gérer l'accès aux données, la validation, etc. 0-B - Différences entre Web Forms et MVC En termes d'architecture, d'abord, les deux Framework partent de deux patrons d'architectures différents. Si MVC dérive du patron MVC, Web Forms de son côté, est une application du patron de conception contrôleur de page. Le plus gros point différenciateur entre Web Forms et MVC est situé sur la cible initiale de chacun de ces Framework. Historiquement, ASP.NET Web Forms fut développé pour faciliter la migration des développeurs du monde « stateful » du développement d'applications Windows au monde « stateless » du Web. Pour parvenir à cela, un certain nombre de mécanismes (ViewState, PostBack, contrôles serveurs, cycle de vie complexe de la page) ont été mis en place, de façon à « cacher » aux développeurs les mécanismes de communication entre le client et le serveur. Les nouveautés d'ASP.NET MVC 3 par Nicolas Esprit (Site) (Blog) Philippe Vialatte (Site) (Blog) - 4 - Copyright © 2011 Developpez LLC. Tout droits réservés Developpez LLC. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à 3 ans de prison et jusqu'à 300 000 E de dommages et intérêts. http://nicolasesprit.developpez.com/tutoriels/dotnet/nouveautes-asp-net-mvc-3/ De l'autre côté, MVC utilise exclusivement du binding pour communiquer entre un contrôleur et une vue, n'a pas de ViewState, et est par essence stateless. Le cycle de vie, en contrepartie, est plus léger, et le découpage des contrôleurs favorise la conception pilotée par le domaine (DDD, ou Domain Driven Design). De plus, MVC a été pensé pour favoriser les tests unitaires à tous les niveaux, et expose de nombreux points d'extension. De nombreux évangélistes ayant débattu du sujet depuis 2009 et ASP.NET MVC 1, on ne reviendra pas sur la meilleure des deux implémentations (quoique les auteurs sont convaincus de la supériorité de MVC sur Web Forms). I - Améliorations dans Visual Studio 2010 I-A - Mise à jour des templates de projet Les templates des projets Visual Studio 2010 pour la nouvelle version d'ASP.NET MVC incluent désormais les dernières versions de jQuery, et du plugin de validation jQuery. Projet ASP.NET MVC 2 Projet ASP.NET MVC 3 Projet ASP.NET MVC 2 Projet ASP.NET MVC 3 Plus précisément nous avons la version 1.4.4 de jQuery et la version 1.7 du plugin de validation jQuery. Comme on peut le constater sur le comparatif MVC 2 / MVC 3 ci-dessus, une nouvelle bibliothèque est présente par défaut dans le template du projet. Il s'agit de la version 1.8.7 de jQuery UI. Cette bibliothèque propose un ensemble de composants pour vos interfaces graphiques et rencontre un certain succès. Pour plus d'informations : http://jqueryui.com. Mis à part ces ajouts, le template du projet garde la même organisation : Les nouveautés d'ASP.NET MVC 3 par Nicolas Esprit (Site) (Blog) Philippe Vialatte (Site) (Blog) - 5 - Copyright © 2011 Developpez LLC. Tout droits réservés Developpez LLC. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à 3 ans de prison et jusqu'à 300 000 E de dommages et intérêts. http://nicolasesprit.developpez.com/tutoriels/dotnet/nouveautes-asp-net-mvc-3/ • le dossier App_Data possède le même rôle que pour les sites ASP.NET Web Forms et permet de stocker physiquement des données ; • le dossier Content contient en général les fichiers statiques. Il est recommandé d'y ajouter les fichiers tels que les feuilles de style CSS et les images ; • le dossier Controllers correspond à l'emplacement recommandé pour placer ses contrôleurs ; • le dossier Models est utilisé pour les classes qui représentent le modèle de l'application. Il est également recommandé d'y placer le code implémentant l'accès aux données. Bien entendu, ces classes sont souvent positionnées dans une librairie indépendante ; • le dossier Scripts pour stocker les fichiers de scripts utilisés par l'application Web ; • le dossier Views qui est l'emplacement recommandé pour stocker les Views. Cela comprend les pages .aspx, les UserControls .ascx ainsi que les MasterPages .master. uploads/Ingenierie_Lourd/ nouveautes-asp-net-mvc-3.pdf
Documents similaires










-
34
-
0
-
0
Licence et utilisation
Gratuit pour un usage personnel Attribution requise- Détails
- Publié le Jui 23, 2021
- Catégorie Heavy Engineering/...
- Langue French
- Taille du fichier 0.5688MB