• 30 hours
  • Medium

Free online content available in this course.

course.header.alt.is_certifying

You can get support and mentoring from a private teacher via videoconference on this course.

Got it!

Last updated on 11/23/17

Convention plutôt que configuration

Log in or subscribe for free to enjoy all this course has to offer!

Vous ne vous en rendez sûrement pas compte car il s’agit de votre première utilisation d’ASP.NET MVC, mais le framework MVC nous a simplifié énormément de choses. Sans avoir rien à faire de spécial, il a été capable de correctement instancier nos contrôleurs, trouver nos vues dans les bons répertoires,…

Quel talent il a ce MVC ! Mais d’où ça vient ?

Le concept

La force d’ASP.NET MVC réside dans un concept qui se résume par « Convention plutôt que configuration ». Il s’agit d’un concept qui a été rendu populaire par Ruby on Rails et qui a été repris par ASP.NET MVC et par beaucoup d’autres frameworks. Le principe est de simplifier et d’accélérer la construction d’une application en se basant sur des conventions plutôt que sur de la configuration. Tout ce qui est conventionnel se comportera comme attendu par ASP.NET MVC, tout ce qui est non-conventionnel aura besoin de configuration.
Si vous avez connu ASP.NET WebForms (et surtout ses premières versions), vous avez sûrement dû passer des heures à éplucher des web.config où il fallait configurer le moindre élément qui allait nous servir dans notre application. Ce temps est révolu. :)

Application du concept à ASP.NET MVC

Vous avez pu voir des exemples d'applications de ce concept à ASP.NET MVC lorsque nous avons construit notre Hello World et ces exemples ne vous ont sûrement pas choqués. Le fait par exemple qu’un contrôleur doit être placé dans le répertoire Controllers… Nous n’avons pas eu besoin d’écrire dans le fichier de configuration : « tiens Monsieur le framework, c’est dans ce répertoire que tu vas trouver mes vues et dans celui-ci que tu vas trouver mes contrôleurs ». Il sait que par défaut les contrôleurs se trouvent dans le répertoire Controller, c’est une convention.

Le but de ce concept est de limiter les fichiers de configuration d’une application en se basant sur des standards du milieu, sans toutefois se restreindre totalement. Il sera évidemment possible d’outrepasser les conventions avec une configuration plus adaptée. Prenez encore nos contrôleurs ; plus une application grandit, et plus il y aura des contrôleurs… Il pourra être judicieux par exemple de déplacer des contrôleurs dans un projet à part et qu’ils soient rangés dans des dossiers en fonction de leur domaine d’application. Ceci sera possible via de la configuration.

Dans les conventions par défaut, nous retrouvons aussi le fait qu’un contrôleur est une classe qui est suffixée par le mot Controller, comme notre classe HomeController . Le framework MVC sait que le contrôleur Home  est forcément (par convention) la classe HomeController  présente dans le répertoire Controller.
Vous aurez également compris que les vues en rapport avec un contrôleur se trouvent dans le répertoire Views, dans un sous-répertoire du même nom que le contrôleur. Ainsi, dans notre exemple, les vues du contrôleur Home  se trouvent dans Views\Home… La vue par défaut d’une action porte également le même nom que l’action, comme la vue Index.cshtml…

À noter également que les vues partagées et réutilisables sont placées dans le répertoire Shared.

Gardez cependant à l’esprit que l’intérêt de suivre des conventions est reconnu comme une bonne pratique. Ainsi, si vous intégrez une nouvelle recrue dans votre équipe et qu’il connaît déjà les conventions de votre framework, il sera tout de suite plus efficace. Votre code gagnera également en lisibilité et en maintenabilité.

En résumé

  • ASP.NET MVC dispose d’un certain nombre de conventions pour simplifier et accélérer vos développements.

  • Ces conventions portent souvent sur des emplacements. Par exemple, les contrôleurs sont dans le répertoire Controllers, les vues dans le répertoire Views, etc…

  • Une classe contrôleur doit être suffixée par le mot Controller (exemple : la classe HomeController ).

  • Ces conventions permettent de réduire la taille des fichiers de configuration : on appelle ce concept « convention plutôt que configuration ».

Conclusion générale de la partie

Ça y est, nous avons fini notre premier tour d’ASP.NET MVC et j’espère que vous n’avez pas déjà attrapé le tournis. :D Nous avons commencé par voir ce qu’était le patron de conception MVC et comment il allait nous aider à structurer notre application web. Puis nous nous sommes attaqués au développement avec Visual Studio pour créer notre premier Hello World MVC… Nous avons pu voir comment fonctionnent les contrôleurs, ce qu’est une route et son étroite liaison avec les actions des contrôleurs. Puis nous avons ajouté un peu de gaieté et de couleurs avec les vues qui nous ont permis d’afficher du beau HTML dans notre navigateur. Enfin, nous avons manipulé un peu le modèle afin de comprendre à quoi il allait pouvoir nous servir et comment il était utilisé par le contrôleur.

Finalement, nous avons décrit le concept de « convention plutôt que configuration » qui fait la force d’ASP.NET MVC et qui permet de grandement simplifier la création de nos applications web en suivant les conventions naturelles du framework MVC.

Tout ceci pour vous mettre en jambes et vous donner envie de continuer. ^^ Nous avons juste effleuré ASP.NET MVC, mais vous devez commencer à entrevoir les diverses possibilités de ce framework et je vous imagine en train de fourmiller d’idées à réaliser dans vos prochains sites web. Alors poursuivons sans attendre notre étude ; pour cela nous allons réaliser une application qui nous servira de fil rouge et qui nous permettra d'explorer plus en détails les divers éléments que nous venons de voir. Vous aurez même votre pierre à rajouter à l'édifice grâce à quelques TPs que je vais vous concocter...

Example of certificate of achievement
Example of certificate of achievement