Framework 24318 31842881 2008-07-24T08:39:12Z Deep silence 126287 Restauration des [[Projet:Restauration des ancres brisées|ancres brisées]] {{Wiktionnaire}} En informatique, un '''framework''' est un espace de travail modulaire. C'est un ensemble de [[Bibliothèque logicielle|bibliothèques]], d'outils et de conventions permettant le développement d'applications. Il fournit suffisamment de briques [[logiciel]]les et impose suffisamment de rigueur pour pouvoir produire une application aboutie et facile à maintenir. Ces composants sont organisés pour être utilisés en interaction les uns avec les autres (voir [[urbanisation (informatique)|urbanisation]]). Des tentatives de francisation du terme ont été faites. On trouve ainsi parfois les termes '''cadre d'applications''', proposé par l'[[Office québécois de la langue française]]<ref>[http://w3.olf.gouv.qc.ca/terminologie/fiches/8872480.htm Fiche terminologique de l'Office québécois de la langue française]</ref> ou '''cadriciel'''<ref>terme en usage depuis au moins [[1997]]{{référence nécessaire}}</ref>. ==Description== Un framework fournit un ensemble de fonctions facilitant la création de tout ou d'une partie d'un système logiciel, ainsi qu'un guide architectural en partitionnant le domaine visé en modules. Un framework est habituellement implémenté à l'aide d'un langage à objets, bien que cela ne soit pas strictement nécessaire : un framework objet fournit ainsi un guide architectural en partitionnant le domaine visé en [[classe|classes]] et en définissant les responsabilités de chacune ainsi que les collaborations entre classes. Un sous-ensemble de ces classes peuvent être des [[classe abstraite|classes abstraites]]. Le déploiement à grande échelle de bibliothèques d'objets exige un framework ; celui-ci fournit un contexte où les composants sont ré-utilisés. Si l'utilisation du terme [[Bibliothèque logicielle|bibliothèque]] est limitée à l'ensemble des fonctions du système, le terme de framework peut être employé par extension pour inclure également l'[[architecture logicielle]] préconisée pour cette bibliothèque (organisation en couches, utilisation du modèle [[Modèle-Vue-Contrôleur|MVC]], etc), voire l'environnement de développement bâti autour ([[Microsoft .NET]] + [[Visual Studio]], etc) même si celui-ci est capable de gérer différents frameworks. On trouve différents types de frameworks : #Framework d'infrastructure système : pour développer des [[systèmes d'exploitation]], des [[Environnement graphique|interfaces graphiques]], des outils de communication. (exemple : [[Microsoft .NET|Framework .Net]], [[Eclipse (environnement de développement)|Eclipse]], [[NetBeans]], [[Apache Struts|Struts]]) #Framework d'intégration [[intergiciel]]le : pour fédérer des applications hétérogènes. Pour mettre à dispositions différentes technologies sous la forme d'une interface unique. (exemple : Ampoliros avec ses interfaces RPC, SOAP, XML) #Frameworks d'entreprise : pour développer des applications spécifiques au secteur d'activité de l'entreprise. #Frameworks orientés [[Système de gestion de contenu]] Les principaux avantages de ces frameworks sont la réutilisation de leur code, la standardisation du [[Conception de logiciel|cycle de vie du logiciel]] (Spécification, développement, maintenance, évolution), ils permettent de formaliser une architecture adaptée au besoin de l'entreprise. Ils tirent parti de l'expérience des développements antérieurs. Ces frameworks sont en quelque sorte des [[progiciel]]s extrêmement souples et évolutifs. ==Exemples de frameworks== {{Voir aussi|Liste de frameworks PHP}} {{Voir aussi|Liste de frameworks Java}} * [[Apache Cocoon]] — un environnement [[servlet]] de développement [[Java (langage)|JAVA]]/[[Extensible Markup Language|XML]] pour le [[web]], fondation [[Apache Software Foundation|Apache Software]] * [[Apache Struts]] — de la fondation [[Apache Software Foundation|Apache Software]] * [[Catalyst (logiciel)]] — framework [[web application|web]] [[open-source]] écrit en [[Perl (langage)|langage de programmation Perl]] * [[Cocoa (Apple)|Cocoa]] — de la société [[Apple, Inc.|Apple]] * [[Django (framework)|Django]] — framework [[web application|web]] [[open-source]] écrit en [[Python (langage)|langage de programmation Python]] * [[Dojo Toolkit|Dojo]] — développement rapide d'applications en Javascript exécutées côté client et communiquant avec le serveur avec une granularité inférieure à la page grâce à Ajax. * [[Eclipse (environnement de développement)|Eclipse]] — [[open-source]] de la fondation [[Eclipse Foundation Software]] * [http://hoa-project.net/ Hoa Framework] — framework PHP 5 léger, moderne et complet. * [http://www.jelix.org/ Jelix] — framework PHP5 moderne, Il propose : MVC, templates, générateurs de sorties (HTML, XUL, …), services web (xml-rpc, json-rpc), authentification, gestion de droits, localisation etc… * [[MARF]] — un framework Java [[open-source]] pour le traitement d'audio du MARF Research and Development Group * [[Microsoft .NET]] — de la société [[Microsoft]] * [[Microsoft XNA]] — framework de [[jeu vidéo]] écrit en C#. Il permet le développement d'application pour plateformes [[Xbox 360]] & [[Compatible PC|PC]] * [[MIReG]] — framework de [[métadonnée]]s de l'[[Union européenne]] * [[Nuxeo]] — framework et plateforme de gestion de contenu d'entreprise * [[Ruby on Rails]] — un framework [[web application|web]] [[open-source]] écrit en [[Ruby|langage de programmation Ruby]] * [[Rich Internet Application Toolkit]] (Rialto) - framework [[web application|web]] [[open-source]] de développement d'applications en [[Javascript]] côté client orienté vers les applications de gestion ([[licence Apache]]). * [[Seaside (framework)|Seaside]] — un framework [[web application|web]] [[open-source]] écrit en [[Smalltalk]] * [[Symfony]] — un framework [[web application|web]] [[open-source]] écrit en [[PHP]] version 5 * [[codeIgniter]] — un framework [[web application|web]] [[open-source]] écrit en [[PHP]] version 4 et 5 * [[TurboGears]] — un framework [[web application|web]] [[open-source]] écrit en [[Python (langage)|langage de programmation Python]] * [[Zope]] — un framework [[web application|web]] [[open-source]] écrit en [[Python (langage)|langage de programmation Python]] * [[EvolanFramework]] — framework d'application bancaires web J2EE. Il permet le développement complet d'un IHM d'application bancaire de grande envergure uniquement à partir de descriptions XML. Ce Framework est la propriété de [[sopra|SopraGroup]]. Voir la gamme de produit éponyme [[Evolan]]. * [http://framework.zend.com/ Zend Framework] — un framework [[web application|web]] [[open-source]] composé de nombreuses librairies PHP. * [http://code.google.com/p/indigoframework/ Indigo Framework] - un framework basé sur IOC (injection de contrôle) open-source pour Flash, Flex et AIR. == Lien externe == * [http://dublincore.org/groups/government/mireg-metadata-20010828.shtml MIReG metadata framework] * [http://www.breek.fr/le-lab/frameworks Comparatif de Django, Ruby on Rails & CakePHP] == Voir aussi == *[[Liste de frameworks PHP]] *[[Liste de frameworks Java]] *[[Bibliothèque logicielle]] *[[Liste de systèmes de gestion de contenu#Frameworks orientés gestion de contenu]] (CMS: [[Système de gestion de contenu]]) ==Notes & référence== <references /> {{Portail informatique}} <!-- Mettre cet article au début de la catégorie:bibliothèque logicielle --> [[Catégorie:Environnement de développement intégré|*]] [[bn:ফ্রেমওয়ার্ক]] [[ca:Framework]] [[cs:Framework]] [[de:Framework]] [[en:Software framework]] [[es:Framework]] [[fi:Ohjelmistokehys]] [[he:שלד תוכנה]] [[it:Framework]] [[ko:뼈대]] [[nl:Framework]] [[pl:Framework]] [[pt:Framework]] [[ru:Framework]] [[simple:Framework]] [[th:โครงร่างซอฟต์แวร์]] [[uk:Фреймворк]]