Etape 3 Etapes à suivre pour développer un module complet de a à Z.

Sur cette étape, les pré-requis sont d’avoir lu les étapes 1 et surtout 2, ou d’avoir une solution avec un projet « module » que tu as déjà généré à partir de la ligne de commande (codegen module « nom du module ». Pour afficher une page web avec un simple texte statique, donc sans accès à la base de données, règle spécifique, gestion d’un model etc. C’est très simple du moment que tu connais déjà le développement MVC avec l’implémentation de Microsoft. Car voici une capture écran de ce que cela donne :

Comme tu peux le constater, la structure respecte les conventions MVC, mais il est vide. Aussi sans rien ajouter tu ne pourras rien en faire. Je vais donc te dire comment faire (même si, avec l’habitude du MVC de Microsoft, tu dois déjà t’en douter) afin d’ajouter un simple texte.

Ce que nous avons vu jusqu’à maintenant, c’est qu’Orchard définit le contenu par agrégat de morceaux de contenu. Aussi, faire un module c’est soit pour étendre ces morceaux de contenu, ou même un agrégat déjà existant comme les posts d’un blog par exemple, mais également définir de nouveaux type d’agrégat comme un forum. Aussi, ici pour afficher un simple texte à partir de notre module est totalement inutile, car il existe déjà des « content part » pouvant assumer cette tâche et de façon « dynamique » c’est-à-dire en pouvant modifier le texte sur le dashbord (ou backoffice). Mais il faut bien que je te montre comment Orchard fonctionne, donc pour cela rien de tel que les cas de base ;).

Il faut créer un controller dans le répertoire Controllers comme vous l’auriez fait dans un site classique en MVC avec quelque chose comme :

    #region import      using System.Web.Mvc;      #endregion        public class BonjourController:Controller      {          public ActionResult Index()          {              return View();          }      }      

Ensuite, il faut ajouter un fichier représentant la vue de notre action pour ce controller :

Comme l’image le montre, il faut le mettre dans le dossier avec le nom du « contrôleur », et le nom de la vue sera le nom de l’action. Bref, ici rien d’extraordinaire tout est très classique. Dans la vue, on utilise la syntaxe Razor (c’est un nouveau moteur de représentation des vues qui utilise cette syntaxe que je trouve assez bien penser). La, malgré tout ce n’est pas suffisant pour être vraiment exploitable. Tu te dis sans doute mais pourquoi ? Et bien afficher l’url suivante http://localhost/bonjour/bonjour/index

C’est-à-dire l’host du domaine sur lequel se trouve le site, puis le nom de l’area (par défaut, c’est le nom du module), ensuite le nom du controller donc dans notre cas bonjour également, puis le nom de l’action. Et la, vous avez uniquement le texte présent dans la vue soit :

Très original, n’est-ce pas… Mais au moins vous avez compris le minimum à faire pour avoir quelque chose de fonctionnel en écrivant un module.

Les tutoriaux suivant vont rentrer plus en détail sur la conception du module. Par contre, je vous mets en garde tout de suite. Si vous n’êtes pas familier avec les design patterns, je vous invite à vous former sur le sujet car cela vous sera plus facile de comprendre la façon dont a été penser Orchard, notamment parce qu’il y ai fait usage de choses comme de l’injection de dépendances.

Bonne lecture et bon apprentissage .

Et toujours n’hésites pas à laisser tes remarques / critiques / suggestions afin de faire avancer tout ça…

 


Rejoindre la conversation