CMS vs Framework : Quel est le meilleur choix pour votre projet ?

15-07-19 9:00 Vincent Foulon

Le choix de passer par un CMS ou par un framework peut sembler évident aux yeux de certains, mais dans le cadre de certains projets, il est important de revoir nos besoins et de poser les bonnes questions. Tout d'abord, nous allons revoir rapidement ce que sont exactement ces deux technologies, puis les confronterons l'une à l'autre. Cela nous permettra de voir les problématiques qu'elles résolvent et soulèvent.

Définissons un CMS et un Framework

1. CMS

Un CMS est l'acronyme de Content Management System, en français "Système de Gestion de Contenu". Il s'agit principalement d'une application fixe accompagnée d'une interface de saisie de contenu plus ou moins complète permettant la gestion en masse de ses pages, articles, blogs, etc... Le tout se complétant d'une gestion d'utilisateurs et de droits. Cette dernière permettra de gérer un certain nombre de rédacteurs et de leur octroyer des droits plus ou moins fins sur ce quoi ils peuvent travailler.

Un CMS peut comporter des fonctionnalités supplémentaires au moyen d'extensions. Ceux-cis peuvent être plus ou moins complets suivant le besoin qu'ils comblent. La plupart du temps, Il est possible d'intégrer des règles métier à un CMS au moyen d'une extension. Cependant, suivant le CMS, le développement d'extensions peut se trouver plus ou moins entravé par la structure de données ou les limitations du CMS lui-même.

Certains CMS peuvent utiliser des "templates", ou des "thèmes". Il s'agit d'interfaces FrontOffice prêtes à l'emploi qui vont permettre de styliser votre site. Ceux-cis sont très souvent inter-changeables, ce qui permet de basculer de l'un à l'autre assez facilement.

Exemple de CMS : Wordpress, Drupal, TYPO3, etc...

2. Framework

Un framework est souvent considéré comme une "boîte à outils". Il ne s'agit là pas d'une application, mais d'un socle sur lequel nous pouvons baser des développements spécifiques. Une solution utilisant un framework va souvent partir de zéro, mais le projet sur lequel il se base aura justifié son utilisation.

Dans la réalisation d'une application métier, les frameworks tirent leur épingle sur les performances qu'ils fournissent, ainsi que la maintenabilité et l'aisance au développement qu'ils proposent. En effet, développer sur un framework sera toujours plus simple et productif que de réaliser la même application métier sous forme d'extension de CMS. La nature d'un framework permet également une liberté de développement totale, et en cas de difficultés il est toujours possible d'importer des librairies supplémentaires pour renforcer les fonctionnalités proposées par le Framework.

Un framework est donc surtout une fondation solide sur laquelle nous pouvons directement développer notre projet, sans nous soucier de détails comme la gestion des données, des url, des caches, etc...

La plupart des CMS d'aujourd'hui reposent sur un framework, qu'il soit développé spécialement pour le dit CMS ou qu'il vient de l'extérieur.

Exemple de Frameworks : Symfony, Laravel, Zend, etc...

CMS ou Framework, lequel me correspond le mieux ?

Suite à la partie précédente, vous devriez avoir une idée un peu plus précise sur l'outil que vous souhaitez utiliser pour votre projet. Avant de vous positionner, je vous invite à revoir vos besoin pour celui-ci :

Votre projet sera-t-il publiquement accessible, avec un contenu éditorial très présent ?

Plus précisément, vous souhaitez un site web avec de nombreuses pages, vous avez une équipe de rédacteurs prête à en découdre avec de nombreux articles en tête ? Ne cherchez pas plus loin, le CMS est la meilleure solution pour vous. En effet, les CMS possèdent déjà tous les outils de base qu'il vous faut pour rédiger du contenu éditorial. Côté Framework, il faudra tout développer de la gestion des utilisateurs à la gestion des articles, l'envoi et le recadrage de images, et caetera.
Si vous souhaitez un contenu éditorial spécialisé, il y aura certainement moyen d'étendre un contenu existant ou d'en créer un nouveau via une extension pour le CMS choisi.

Votre projet concernera la création de nombreux sites web, avec certainement un grand nombre de pages ?

Comme précédemment, la meilleure solution pour ce type de projet serait d'utiliser un CMS. Plus préciésment je vous conseillerai de regarder du côté de TYPO3, qui est un excellent CMS qui a prouvé à de nombreuses reprises ces dernières années qu'il était capable de gérer le multi-sites comme aucun des autres CMS du marché. Comptez aussi sur la superbe extension "Site Factory" qui permet de dupliquer autant de sites que vous souhaitez, avec toute la gestion des utilisateurs, des paramètres, pages incluses.

Les Framework quant à eux savent gérer sans problèmes le multi-site, mais étant donné qu'un projet reposant sur de nombreuses plateformes va certainement se concentrer sur de l'éditorial il y a assez peu de chance pour que le Framework vous sera utile

Votre projet se destine à être une "application lourde" visible uniquement par les membres de votre entreprise ?

Ici, la tendance s'inverse, car le Framework va se retrouver très utile. Importation de données, listing et gestion plus ou moins automatisées de celles-ci, en n'oubliant pas l'exportation et l'impression PDF, les performances seront certainement un critère recherché, et les frameworks sont justement très doués sur cette caractéristique.
Une "application lourde" va demander également de nombreux développements spécifiques, ce qui renforce l'idée d'utiliser un Framework. Si vous vous inquiétez pour la gestion des utilisateurs, il est tout à fait possible de gérer cela avec des Frameworks. Symfony, par exemple, propose des commandes toutes faites pour générer un début de gestion d'utilisateur sécurisé avec les derniers algorithmes de chiffrement de mot de passe et des rôles.

Pour une meilleure fluidité, je vous recommande également de coupler le Framework PHP avec un Framework Javascript, tel qu'Angular. Ce dernier est spécialisé pour l'affichage navigateur et permettra de basculer d'une vue à une autre en toute fluidité, sans effet "changement de page". Sa seule contrainte sera si vous souhaitez que votre projet soit indexé sur les moteurs de recherche, qui ont généralement du mal à gérer ces changements de pages dynamiques.

Votre projet possède une fonctionnalité simple mais est destinée au public ?

Si vous n'avez qu'une simple fonctionnalité, et que celle-ci n'est pas éditoriale, les Frameworks seront votre solution. Par exemple, un catalogue de produits que vos partenaires pourront parcourir et qui nécessite d'importer un fichier excel sera plus simple à développer via un Framework, même si la fonctionnalité se prête tout aussi bien au concept d'extensions pour les CMS, les Frameworks remportent la partie principalement grâce aux performances et la liberté de développement qu'ils proposent.

Conclusions

En parcourant les diverses question et réponses ci-dessus, on aperçoit un schéma régulier entre les deux technologies :

  1. Le CMS est spécialisé dans l'éditorial, si vous avez beaucoup de contenu manuel à saisir ou faire saisir, c'est l'outil que vous recherchez.

  2. Le Framework quant à lui va se spécialiser dans les tâches uniques et/ou complexes, sans pour autant que l'éditorial lui soit gênant, il existe mieux et ça serait dommage de s'en priver.

Rien ne vous empêche cependant d'utiliser le meilleur des deux mondes et de décider de monter deux plateformes, Je recommande seulement de ne pas vouloir les mélanger et donc de choisir un nom de domaine distinct pour chaqu'un ainsi que de ne pas utiliser la même base de données. Si vous souhaitez partager des informations, créez une API sur le Framework et communiquez par son biais.

Je vous propose à présent un petit outil d'aide à la décision afin de vous aiguiller sur quel type d'outil votre projet devrait se baser :

Aide au choix CMS / Framework

Blog Comments powered by Disqus.