Un framework web ( WF ), un framework d'application web ( WAF ) ou un framework de développement web est un ensemble de logiciels conçu pour faciliter le développement d' applications web, notamment les services web, les ressources web et les API web . Les frameworks web offrent une méthode standardisée pour créer et déployer des applications web sur le World Wide Web . Ils visent à automatiser les tâches courantes liées au développement web . Par exemple, de nombreux frameworks web fournissent des bibliothèques pour l'accès aux bases de données , des systèmes de modèles et la gestion des sessions , et favorisent souvent la réutilisation du code . Bien qu'ils soient généralement destinés au développement de sites web dynamiques , ils sont également applicables aux sites web statiques .
World Wide Web n'était pas intrinsèquement dynamique, les premiers hypertextes consistaient en des fichiers texte HTML codés manuellement et publiés sur des serveurs web . Toute modification des pages publiées devait être effectuée par leur auteur. En 1993, la norme Common Gateway Interface (CGI) a été introduite pour permettre l'interfaçage d'applications externes avec les serveurs web, afin de fournir une page web dynamique reflétant les entrées de l'utilisateur.Les premières implémentations de l'interface CGI avaient généralement des effets néfastes sur la charge du serveur, car chaque requête démarrait un processus distinct . Les implémentations plus récentes utilisent des processus persistants, entre autres techniques, pour réduire l'empreinte sur les ressources du serveur et offrir une amélioration générale des performances.ColdFusion , PHP et Active Server Pages .de bibliothèques pour faciliter les tâches courantes, les applications web nécessitent souvent des bibliothèques spécifiques pour des tâches particulières, comme la création de HTML (par exemple, Jakarta Faces ).développement web en une seule pile logicielle cohérente à l'usage des développeurs web.modèle modèle-vue-contrôleur (MVC) .modèle architectural MVC pour séparer le modèle de données en règles métier (le « contrôleur ») et en interface utilisateur (la « vue »). Cette approche est généralement considérée comme une bonne pratique car elle modularise le code , favorise sa réutilisation et permet l'application de plusieurs interfaces. Dans les applications web, cela permet de présenter différentes vues, par exemple en proposant des pages web distinctes pour les navigateurs mobiles et de bureau, ou en fournissant des interfaces de services web lisibles par machine .
Modèle basé sur la poussée vs. modèle basé sur la traction
La plupart des frameworks MVC suivent une architecture de type « push », également appelée « architecture par actions ». Ces frameworks utilisent des actions qui effectuent le traitement nécessaire, puis « envoient » les données à la couche de présentation pour l’affichage des résultats. Une alternative est l’architecture de type « pull », parfois appelée « architecture par composants ». Ces frameworks partent de la couche de présentation, qui peut ensuite « récupérer » les résultats de plusieurs contrôleurs selon les besoins. Dans cette architecture, plusieurs contrôleurs peuvent être associés à une même vue.
Organisation à trois niveaux
Dans une architecture trois-tiers , les applications sont structurées autour de trois couches physiques : client, application et base de données. La base de données est généralement un SGBDR . L’application contient la logique métier, s’exécute sur un serveur et communique avec le client via HTTP . Le client des applications web est un navigateur web qui exécute le code HTML généré par la couche application. Il ne faut pas confondre ce terme avec le modèle MVC, où, contrairement à l’architecture trois-tiers, il est recommandé de séparer la logique métier du contrôleur, la « couche intermédiaire ».
Applications de framework
Les frameworks sont conçus pour faciliter la construction d'applications Internet basées sur un seul langage de programmation, allant d'outils à usage général tels que Zend Framework et Ruby on Rails, qui augmentent les capacités d'un langage spécifique, à des packages programmables en langage natif construits autour d'une application utilisateur spécifique, tels que les systèmes de gestion de contenu (CMS), certains outils de développement mobile et certains outils de portail.
Cadres de sites Web à usage général
Les frameworks web doivent respecter les règles architecturales des navigateurs et des protocoles tels que HTTP , qui est sans état . Les pages web sont servies par un serveur et peuvent ensuite être modifiées par le navigateur à l'aide de JavaScript . Chaque approche présente des avantages et des inconvénients.applications monopages (SPA) et utilisent généralement un framework web JavaScript côté client pour structurer le code.Apache Wicket
Côté client
Capacités et compromis des cadres modernes
Les frameworks d'applications web basés sur JavaScript, tels que React et Vue, offrent de nombreuses fonctionnalités, mais présentent certains inconvénients. Ces frameworks étendent ou améliorent souvent les fonctionnalités disponibles via les technologies web natives, comme le routage, le développement par composants et la gestion d'état. Bien que les standards web natifs, notamment les Web Components, les API JavaScript modernes comme Fetch et les modules ES, et les fonctionnalités des navigateurs comme le Shadow DOM, aient considérablement progressé, les frameworks restent largement utilisés pour leur capacité à améliorer la productivité des développeurs, à proposer des modèles structurés pour les applications à grande échelle, à simplifier la gestion des cas particuliers et à fournir des outils d'optimisation des performances.
Les frameworks peuvent introduire des couches d'abstraction susceptibles d'alourdir les performances, d'augmenter la taille des bundles et de complexifier le code. Les frameworks modernes, tels que React 18 et Vue 3, relèvent ces défis grâce à des fonctionnalités comme le rendu concurrent, l'élimination du code mort (tree-shaking) et l'hydratation sélective. Bien que ces avancées améliorent l'efficacité du rendu et la gestion des ressources, leurs avantages dépendent de l'application et du contexte d'implémentation. Les frameworks légers, tels que Svelte et Preact, adoptent des approches architecturales différentes : Svelte élimine complètement le DOM virtuel au profit de la compilation des composants en code JavaScript optimisé, tandis que Preact offre une alternative minimale et compatible à React. Le choix du framework dépend des exigences de l'application, notamment de l'expertise de l'équipe, des objectifs de performance et des priorités de développement.
Une nouvelle catégorie de frameworks web, incluant enhance.dev, Astro et Fresh, exploite les standards web natifs tout en minimisant les abstractions et les outils de développement. Ces solutions privilégient l'amélioration progressive , le rendu côté serveur et l'optimisation des performances. Astro génère par défaut le HTML statique et n'hydrate que les parties interactives. Fresh se concentre sur le rendu côté serveur sans surcharge d'exécution. Enhance.dev privilégie les modèles d'amélioration progressive via les Web Components. Bien que ces outils réduisent la dépendance au JavaScript côté client en déportant la logique vers une exécution au moment de la compilation ou côté serveur, ils utilisent toujours JavaScript lorsque cela est nécessaire pour l'interactivité. Cette approche les rend particulièrement adaptés aux applications critiques en termes de performances et axées sur le contenu.
Caractéristiques
Les frameworks définissent généralement le flux de contrôle d'un programme et permettent à l'utilisateur de s'y connecter en exposant divers événements. Ce modèle de conception d'« inversion de contrôle » est considéré comme un principe fondamental des frameworks ; il améliore la qualité du code en imposant un flux commun à l'équipe, que chacun peut personnaliser de manière similaire. Par exemple, certains microframeworks populaires, tels que Sinatra de Ruby (qui a inspiré Express.js ), permettent l'ajout de fonctions intermédiaires avant et après les requêtes HTTP. Ces fonctions intermédiaires peuvent être de nature diverse et permettent à l'utilisateur de définir la journalisation, l'authentification, la gestion des sessions et les redirections.
système de modèles Web
Certains frameworks minimisent la configuration des applications web grâce à l' introspection et/ou au respect de conventions établies. Par exemple, de nombreux frameworks Java utilisent Hibernate comme couche de persistance, capable de générer à l'exécution un schéma de base de données permettant de conserver les informations nécessaires. Le concepteur d'applications peut ainsi concevoir des objets métier sans avoir à définir explicitement un schéma de base de données. Des frameworks tels que Ruby on Rails peuvent également fonctionner en sens inverse, c'est-à-dire définir à l'exécution les propriétés des objets du modèle à partir d'un schéma de base de données.
D'autres fonctionnalités que les frameworks web peuvent fournir incluent la prise en charge transactionnelle et les outils de migration de bases de données .
mappage d'URL
En raison de la complexité de la programmation Ajax en JavaScript, de nombreux frameworks Ajax sont dédiés à la prise en charge d'Ajax. Certains sont même intégrés à des frameworks plus vastes. Par exemple, la bibliothèque JavaScript jQuery est incluse dans Ruby on Rails.d'applications web riches « Web 2.0 » , la complexité de la programmation directe en Ajax et JavaScript est devenue si manifeste que les compilateurs ont émergé, permettant aux développeurs de coder dans des langages de haut niveau tels que Java, Python et Ruby. Le premier de ces compilateurs fut Morfik , suivi de Google Web Toolkit , puis de versions pour Python et Ruby sous les noms de Pyjs et RubyJS. Ces compilateurs et leurs bibliothèques de widgets associées rendent le développement d'applications Ajax riches en contenu beaucoup plus proche de celui des applications de bureau.RESTful Web 2.0 plus récents fournissent désormais une infrastructure d'architecture orientée ressources (ROA) pour la construction de collections de ressources dans une sorte d' ontologie Web sémantique , basée sur des concepts du Resource Description Framework (RDF).
Plus d articles de Worldlex Wiki
Revenez a l index pour explorer davantage de pages sur l histoire, la science, la culture, la geographie et la societe en francais.
Explorer l index