Etape 5 Archicture MVC

Orchard est conçu autour de l’architecture MVC et l’utilise de façon assez judicieuse. Ainsi on retrouve un site web classique :

On a le répertoire App_Data qui contient toutes les infos de connexion à la base de données, ou le fichier de base Sql Compact selon le mode d’installation choisi, mais également les logs, et dépendances.

Le répertoire bin contenant toute la mécanique du noyau d’Orchard, la configuration dans le répertoire Config, le répertoire Core est un peu similaire au répertoire Modules à la différence près que ce sont les fonctionnalités de bases qui sont dans le Core, alors que dans le répertoire Modules ce sont bien sur les Modules mais servant à étendre les fonctionnalités. Même si l’architecture en soit est assez similaire pour créer un ajout dans le répertoire Core ou dans le répertoire modules. Mais je déconseille fortement de modifier les choses du Core, car en cas de mises à jour vous allez avoir des surprises. Surtout qu’on peut facilement modifier le comportement présent dans le Core au sein des modules en surchargeant le comportement non désiré.

Et puis pour finir le répertoire Themes qui contient en quelque sorte la chartre graphique globale du site, ici rien d’extraordinaire c’est un mécanisme classique au sein d’un CMS.

Dans le contexte, j’aurais juste une petite remarque à te faire. Lors de l’écriture des controllers, il faut penser qu’il existe des attributs spécifiques qui permettent d’orienter le rendu par Orchard. Ainsi, le fait de mettre l’attribut [Themed] permet de faire un rendu « front » tandis que l’usage de [ValidateInput(false), Admin] permet de spécifier qu’on a un rendu « backoffice » et qu’on ne valide pas les saisies utilisateurs, (avec du code html, potentiel injection de code, etc. ).

Pour ce qui est de l’architecture MVC présent aux seins des modules cela a été vu dans la précédente étape, aussi je vous laisse lire la suite J.


Rejoindre la conversation