Framework logiciel

Un framework est un environnement logiciel structurant qui fournit les fondations, les conventions et les composants nécessaires au développement d’une application.

Il impose un modèle architectural (comme MVC – Modèle-Vue-Contrôleur), une organisation du code, des mécanismes de gestion (routes, bases de données, authentification, etc.) et une bibliothèque de fonctions pré-écrites, toutes conçues pour fonctionner ensemble de manière cohérente.

Contrairement à une simple librairie que l’on appelle à la demande pour accomplir une tâche spécifique , un framework « inverse le contrôle » (Inversion of Control) : c’est lui qui appelle votre code, selon ses règles et sa structure. Le développeur écrit du code à l’intérieur du cadre imposé par le framework.

Caractéristiques clés :

  • Fournit une architecture prédéfinie (ex. : MVC, microservices, etc.)
  • Encapsule la logique technique répétitive (gestion des requêtes HTTP, ORM, sessions…)
  • Impos des conventions (nommage, organisation des fichiers, flux d’exécution)
  • Est spécifique à un langage ou un écosystème (ex. : Python, JavaScript, PHP…)
  • Accélère le développement tout en garantissant cohérence, maintenabilité et bonnes pratiques

Exemples notables :

  • Backend : Django, Flask (Python) ; Laravel, Symfony (PHP) ; Spring (Java) ; NestJS (Node.js)
  • Frontend : Vue.js, React (souvent étendu via des meta-frameworks comme Next.js, Nuxt.js)

Analogie :

  • Une librairie, c’est comme un outil (un marteau) que vous utilisez quand vous voulez.
  • Un framework, c’est comme une maison préfabriquée : vous pouvez personnaliser les pièces, mais vous devez respecter la structure globale.

En anglais : software framework

Les contenus de définition restent publics. Les ressources (outils, grilles, supports) liées à cette fiche sont disponibles dans l’espace membre.