DuckCorp

DuckCorp Dico

(RFC 2229 compliant dictionary server)

Found one definition

  1.                 From fr.wikipedia.org:
                    

    [en] [Framework (homonymie)]

    En programmation informatique, un _[EN]_ (appelé aussi INFRASTRUCTURE LOGICIELLE[1], INFRASTRUCTURE DE DÉVELOPPEMENT[2], ENVIRONNEMENT DE DÉVELOPPEMENT[3], SOCLE D'APPLICATIONS[4], CADRE D'APPLICATIONS<ref name="GDT"/> ou CADRICIEL<ref name="GDT"/>) est un ensemble cohérent de composants logiciels structurels qui sert à créer les fondations ainsi que les grandes lignes de tout ou partie d'un logiciel, c'est-à-dire une architecture.

    Un _[en]_ se distingue d'une simple bibliothèque logicielle principalement, d'une part par son caractère générique, faiblement spécialisé, contrairement à certaines bibliothèques ; un _[en]_ peut à ce titre être constitué de plusieurs bibliothèques, chacune spécialisée dans un domaine. Un _[en]_ peut néanmoins être spécialisé dans un langage particulier, une plateforme spécifique, un domaine particulier : communication de données, data mapping[etc.] D'autre part, il impose un cadre de travail, en raison de sa construction même, guidant l'architecture logicielle voire conduisant le développeur à respecter certains patrons de conception ; les bibliothèques le constituant sont alors organisées selon le même paradigme.

    Les _[en]_ sont donc conçus et utilisés pour modeler l'architecture des logiciels applicatifs, des applications web, des _[en]_ et des composants logiciels. Les _[en]_ sont acquis par les informaticiens, puis incorporés dans des logiciels applicatifs mis sur le marché, ils sont par conséquent rarement achetés et installés séparément par un utilisateur final.

    ** Description

    Un _[en]_ est un ensemble d'outils et de composants logiciels organisés conformément à un plan d'architecture et des _patterns_, l'ensemble formant ou promouvant un « squelette » de programme, un canevas. Il est souvent fourni sous la forme d'une bibliothèque logicielle et accompagné du plan de l'architecture cible du _[en]_[5].

    Un _[en]_ est conçu en vue d'aider les programmeurs dans leur travail. L'organisation du _[en]_ vise la productivité maximale du programmeur qui va l'utiliser — gage de baisse des coûts de construction et maintenance du programme. Le contenu exact du _[en]_ est dicté par le type de programme et l'architecture cible pour lequel il est conçu<ref name="FoxPro" />.

    On trouve différents types de _[en]_ :

    - _[en]_ d'infrastructure système : pour développer des systèmes d'exploitation , des interfaces graphiques , des outils de communication (exemple : Framework .Net , Struts ) ; - _[en]_ d'intégration intergiciel le ( _[en]_ ) : pour fédérer des applications hétérogènes. Pour mettre à disposition différentes technologies sous la forme d'une interface unique ; - _[en]_ d'entreprise : pour développer des applications spécifiques au secteur d'activité de l'entreprise ; - _[en]_ de gestion de contenu : sont les fondations d'un système de gestion de contenu [6] — pour la création, la collecte, le classement, le stockage et la publication de « biens numérisés ». Les principaux avantages de ces _[en]_ sont la réutilisation de leur code, la standardisation du 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.

    *** Objets

    En programmation orientée objet, un _[en]_ est typiquement composé de classes mères qui seront dérivées et étendues par héritage en fonction des besoins spécifiques à chaque logiciel qui l'utilise[7]. Avec un _[en]_ orienté objets, le programmeur qui l'utilise pourra personnaliser les éléments principaux du programme par extension, en utilisant le mécanisme d'héritage : créer des nouvelles classes qui contiennent toutes les fonctionnalités que met en place le _[en]_, ajoutées à ses fonctionnalités propres, créées par le programmeur en fonction des besoins spécifiques à son programme. Le mécanisme d'héritage permet également de transformer des fonctionnalités existant dans les classes du _[en]_[8].

    *** Inversion de contrôle

    [Inversion de contrôle]

    Alors que les bibliothèques de classes sont typiquement passives (les opérations des classes sont exécutées sur demande du programme qui les utilise), les _[en]_ sont typiquement actifs : le déroulement des opérations dans un programme est dirigé par le _[en]_ qu'il utilise, par des mécanismes tels que les fonctions de rappel et les événements, selon le principe [ne m'appelez pas, je vous appellerai]. L'inversion de contrôle fait partie de l'architecture typique d'un _[en]_[9].

    ** Traduction française

    En programmation informatique, le terme [langue=en] se traduit par « structure logicielle », bien que le terme anglais reste majoritairement utilisé. D'autres tentatives de francisation du terme ont été faites ; on trouve ainsi parfois les termes ENVIRONNEMENT DE DÉVELOPPEMENT, recommandé par la Commission d’enrichissement de la langue française<ref name="FranceTerme"/>, et CADRE D'APPLICATIONS, SOCLE D’APPLICATIONS ou CADRICIEL recommandés par l'Office québécois de la langue française<ref name="GDT"/>.

    Un framework est distinct d'une plateforme, dans la mesure où il n'intègre pas d'environnement d'exécution système ou applicatif.

    ** Exemples

    {| class="wikitable sortable" width="100%" |+ Quelques exemples ! scope=col | Nom ! scope=col | Usage ! scope=col | Architecture cible ! scope=col | Langage ! scope=col | Auteur ! scope=col | Licence |- ! scope=row | ActionScript Foundry | application web | Adobe Flex | ActionScript et Java | ServeBox | |- ! scope=row | Apache Cocoon |application web - servlet |? |Java, XML |Apache Software |Logiciel libre |- ! scope=row | Spring |application web |Multiplateforme |Java |Spring Source |Logiciel libre |- ! scope=row | Apache Struts |application web |Modèle-Vue-Contrôleur |Java |Apache Software |Logiciel libre |- ! scope=row | Twitter Bootstrap |application web |Modèle-Vue-Contrôleur |HTML/CSS/Javascript |Twitter |Licence MIT |- ! scope=row | Catalyst |logiciel applicatif |Modèle-Vue-Contrôleur |Perl | |Logiciel libre |- ! scope=row | Cocoa |logiciel applicatif |Cocoa |Objective C |Apple | |- ! scope=row | CubicWeb |Plateforme de développement web sémantique |Multiplateforme |Python |Logilab |LGPL |- ! scope=row | Django |application web |Modèle-Vue-Contrôleur |Python |Django Software Foundation |Logiciel libre |- ! scope=row | Dojo |applet |AJAX |JavaScript |Fondation Dojo |- ! scope=row | Eclipse Modeling Framework<sup> (*)</sup> |modélisation des données |Multiplateforme |_(ouvert)_ |Fondation Eclipse |Logiciel libre |- ! scope=row | Eclipse RCP |Rich Client Platform |IDE Eclipse Platform, Multiplateforme |_(ouvert)_ |Fondation Eclipse |Logiciel libre |- ! scope=row | eZ Publish |application web |système de gestion de contenu |PHP |eZ Systems AS |Logiciel libre |- ! scope=row | JavaServer Faces |application web |Composant |Java | |Logiciel libre |- ! scope=row | FxEngine Framework |traitement numérique du signal, plugin |Filtres et tubes |C++ |SMProcess | |- ! scope=row | Grails |application web |Modèle-Vue-Contrôleur |Groovy |Graeme Rocher, Guillaume Laforge, Marc Palmer, Dierk Koenig et Steven Devijver | |- ! scope=row | Google Guice |application web |Multiplateforme |Java |Bob Lee, Kevin B, Jesse Wilson, Christian Gruber |Logiciel libre |- ! scope=row | Hibernate |persistance & mapping |Java Persistance API |Java |JBoss |Logiciel libre |- ! scope=row | Java SE<sup> (**)</sup> |framework générique pour Rich Client Platform |rowspan="4"|Multiplateforme |rowspan="4"|Java<br>Scala<br>JScheme, implémentation de Scheme<br>Clojure (dialecte de Lisp)<br>JRuby<br>Jython<br>Rhino (moteur JavaScript)

    |rowspan="4"|Sun Microsystems puis Oracle Corporation |rowspan="4"|Logiciel libre |- ! scope=row | Java EE<sup> (**)</sup> |framework professionnel avec support du distribué |- ! scope=row | Java ME<sup> (**)</sup> |framework pour application mobile |- ! scope=row | JavaFX<sup> (**)</sup> |framework pour Rich Internet Application |- ! scope=row | Kivy |framework pour application mobile |Multiplateforme |Python<br>Cython |Kivy organization |Logiciel libre |- ! scope=row | Laravel |applications web |Multiplateforme,<br> Modèle-Vue-Contrôleur |PHP |Équipe de développement Laravel |Licence MIT |- ! scope=row | MARF |traitement du signal et des langues |pipeline |Java |Serguei Mokhov, Stephen Sinclair | |- ! scope=row | Microsoft Foundation Class |logiciel applicatif |Modèle-Vue-Contrôleur |C++ |Microsoft |Propriétaire |- ! scope=row | .Net<sup> (**)</sup> | logiciel applicatif, application web, composant logiciel | ASP.NET | C#, Visual Basic .NET | Microsoft | Propriétaire |- ! scope=row | Ruby on Rails |application web |Modèle-Vue-Contrôleur |Ruby |David Heinemeier Hansson et |Logiciel libre |- ! scope=row | Symfony |application web |Modèle-Vue-Contrôleur |PHP | Sensio Labs |Logiciel libre |- ! scope=row | SoJo FrameWork |application web |Modèle-Vue-Contrôleur |HTML/CSS | InGamesStudio |Logiciel libre |- ! scope=row | TopLink |persistance & mapping |Java Persistance API |Java |Oracle Corporation |- ! scope=row | W3.CSS |application web |Google Material Design |CSS | W3Schools |Logiciel libre |- ! scope=row | Zend Framework |application web |Modèle-Vue-Contrôleur |PHP |Zend Technologies |Logiciel libre |- ! scope=row | Zope |gestion de contenu |Zope |Python |Zope Corporation |Logiciel libre |} (*) Certains _[en]_ comme Eclipse constituent davantage des méta-_[en]_, ou _[en]_ de _[en]_, dans la mesure où ils permettent, selon les modules qui en sont installés, de se réorienter vers différentes activités informatiques.

    (**) Microsoft .NET et les _Java Platforms_ peuvent être vus indifféremment comme des _[en]_ ou comme des plateformes logicielles, selon que l'on considère leurs seules bibliothèques de développement ou leur environnement d'exécution. [contenu=D’autres exemples de _[en]_ peuvent être trouvés dans la page relative à l' inversion de contrôle .]

    ** Notes et références

    [Références]

    ** Voir aussi

    {{Autres projets

    |wiktionary = framework

    }}

    *** Articles connexes

    - :Catégorie:Framework de programmation - Liste de frameworks PHP - Liste de frameworks Java - Cadre d'application AJAX - Liste de systèmes de gestion de contenu#Frameworks orientés gestion de contenu (CMS : système de gestion de contenu ) - Liste des frameworks de test unitaire - CSPro

    *** Liens externes

    [liens]

    - MIReG metadata framework (see http://dublincore.org/groups/government/mireg-metadata-20010828.shtml) {{Palette | Programmation informatique | Frameworks web | Domaines de l'informatique }} [programmation informatique]

    * Catégorie:Terminologie de l'informatique