Struttura
Nella programmazione di computer , un framework (noto anche come infrastruttura software , sviluppo di infrastrutture , ambiente di sviluppo , base di applicazioni , per applicazioni o framework software ) indica un insieme coerente di componenti software Strutturali, utilizzati per creare le basi e il contorno di tutti o parte di un software ( architettura ). Un framework differisce da una semplice libreria software principalmente per:
- il suo carattere generico, debolmente specializzato, a differenza di alcune biblioteche; come tale, un framework può essere costituito da più librerie, ciascuna specializzata in un dominio. Un quadro può tuttavia essere specializzata, su un particolare linguaggio , una specifica piattaforma , un dominio particolare: la comunicazione dei dati , la mappatura dei dati , etc. ;
- il framework che impone per la sua stessa costruzione, guidando l' architettura del software o addirittura portando lo sviluppatore a rispettare determinati modelli di progettazione ; le biblioteche che lo costituiscono sono poi organizzate secondo lo stesso paradigma .
I framework sono quindi progettati e utilizzati per modellare l' architettura del software applicativo , delle applicazioni web , del middleware e dei componenti software . I framework vengono acquisiti da computer e incorporati in applicazioni software in commercio, sono quindi raramente acquistati e installati separatamente da un utente finale.
Descrizione
Un framework è un insieme di strumenti e componenti software organizzati secondo un piano architettonico e modelli , il tutto forma o promuove uno "scheletro" di programma, una tela. Viene spesso fornito sotto forma di una libreria software e accompagnato dal piano dell'architettura di destinazione del framework .
Un framework è progettato per aiutare i programmatori nel loro lavoro. L'organizzazione del framework mira alla massima produttività del programmatore che lo utilizzerà - garanzia di minori costi di costruzione e manutenzione del programma. Il contenuto esatto del framework è dettato dal tipo di programma e dall'architettura di destinazione per cui è progettato.
Esistono diversi tipi di framework :
-
framework infrastruttura di sistema: per sviluppare sistemi operativi, interfacce grafiche , strumenti di comunicazione (esempio: .Net Framework , Struts );
-
framework di middleware di integrazione( middleware ) per federare applicazioni eterogenee. Fornire diverse tecnologie sotto forma di un'unica interfaccia;
-
framework di business: per sviluppare applicazioni specifiche per il settore di business del business;
-
quadri di gestione dei contenuti : sono le basi di un sistema di gestione dei contenuti - per la creazione, raccolta, classificazione, archiviazione e pubblicazione di "proprietà scansionate".
I principali vantaggi di questi framework sono il riutilizzo del loro codice, la standardizzazione del ciclo di vita del software (specifica, sviluppo, manutenzione, evoluzione), permettono di formalizzare un'architettura adattata alle esigenze dell'azienda. Si basano sull'esperienza degli sviluppi precedenti.
Oggetti
Nella programmazione orientata agli oggetti , un framework è tipicamente composto da classi madri che verranno derivate ed estese per ereditarietà in base alle esigenze specifiche di ogni software che utilizza il framework . Con un framework orientato agli oggetti, il programmatore che utilizza il framework sarà in grado di personalizzare gli elementi principali del programma per estensione, utilizzando il meccanismo di ereditarietà : creare nuove classi che contengano tutte le funzionalità che il framework implementa , e in più le proprie funzionalità, create dal programmatore secondo le specifiche esigenze del suo programma. Il meccanismo di ereditarietà consente inoltre di trasformare le funzionalità esistenti nelle classi del framework .
Inversione di controllo
Mentre le librerie di classi sono tipicamente passive: le operazioni di classe vengono eseguite su richiesta dal programma che le utilizza, i framework sono tipicamente attivi: il flusso di operazioni in un programma è diretto dal framework che utilizza, da meccanismi come callback ed eventi , basati su il "non chiamarmi, ti chiamo io". "
L'inversione del controllo fa parte dell'architettura tipica di un framework .
traduzione in francese
Nella programmazione di computer , un framework si traduce in struttura software, sebbene il termine framework sia ancora utilizzato principalmente. Sono stati fatti altri tentativi di francizzare il termine; così a volte si trova in ambiente di sviluppo , raccomandato dalla Commissione per l'arricchimento della lingua francese , e per le applicazioni , la base dell'applicazione o il framework del software raccomandato dall'Ufficio della lingua francese in Quebec .
Si noti che un framework non deve essere considerato come una piattaforma , in quanto non integra un sistema o un ambiente di esecuzione dell'applicazione.
Esempi
Qualche esempio
Nome
|
Uso
|
Architettura di destinazione
|
Linguaggio
|
Autore
|
Licenza
|
---|
Fonderia di ActionScript
|
applicazione web
|
Adobe flex
|
ActionScript e Java
|
ServeBox
|
|
---|
Apache Cocoon
|
applicazione web - servlet
|
?
|
Java , XML
|
Software Apache
|
Software gratis
|
---|
Primavera
|
applicazione web
|
Cross-platform
|
Giava
|
Fonte di primavera
|
Software gratis
|
---|
Apache Struts
|
applicazione web
|
Model-View-Controller
|
Giava
|
Software Apache
|
Software gratis
|
---|
Twitter Bootstrap
|
applicazione web
|
Model-View-Controller
|
HTML / CSS / JAVASCRIPT
|
Twitter
|
Licenza MIT
|
---|
Catalizzatore
|
software applicativo
|
Model-View-Controller
|
Perl
|
|
Software gratis
|
---|
Cacao
|
software applicativo
|
Cacao
|
Obiettivo C
|
Mela
|
|
---|
CubicWeb
|
Piattaforma di sviluppo web semantico
|
Cross-platform
|
Pitone
|
Logilab
|
LGPL
|
---|
Django
|
applicazione web
|
Model-View-Controller
|
Pitone
|
Django Software Foundation
|
Software gratis
|
---|
Dojo
|
applet
|
AJAX
|
Javascript
|
Fondazione Dojo
|
---|
Eclipse Modeling Framework (*) |
modellazione dei dati
|
Cross-platform
|
(Aperto)
|
Fondazione Eclipse
|
Software gratis
|
---|
Eclipse RCP
|
Piattaforma Rich Client
|
Piattaforma IDE Eclipse , multipiattaforma
|
(Aperto)
|
Fondazione Eclipse
|
Software gratis
|
---|
eZ Publish
|
applicazione web
|
sistema di gestione dei contenuti
|
PHP
|
eZ Systems AS
|
Software gratis
|
---|
JavaServer Faces
|
applicazione web
|
Componente
|
Giava
|
|
Software gratis
|
---|
FxEngine Framework
|
elaborazione del segnale digitale , plug-in
|
Filtri e tubi
|
C ++
|
SMProcess
|
|
---|
Graal
|
applicazione web
|
Model-View-Controller
|
Groovy
|
Graeme Rocher, Guillaume Laforge, Marc Palmer, Dierk Koenig e Steven Devijver
|
|
---|
Google Guice
|
applicazione web
|
Cross-platform
|
Giava
|
Bob Lee, Kevin B, Jesse Wilson, Christian Gruber
|
Software gratis
|
---|
Ibernazione
|
persistenza e mappatura
|
API Java Persistence
|
Giava
|
JBoss
|
Software gratis
|
---|
Java SE (**) |
framework generico per Rich Client Platform
|
Cross-platform
|
Java Scala JScheme , implementazione di Scheme Clojure (dialetto Lisp) JRuby Jython Rhino (motore JavaScript)
|
Sun Microsystems poi Oracle Corporation
|
Software gratis
|
---|
Java EE (**) |
framework professionale con supporto distribuito
|
---|
Java ME (**) |
framework per applicazioni mobili
|
---|
JavaFX (**) |
framework per Rich Internet Application
|
---|
Kivy
|
framework per applicazioni mobili
|
Cross-platform
|
Python Cython
|
Organizzazione Kivy
|
Software gratis
|
---|
Laravel
|
applicazioni web
|
Multipiattaforma , Model-View-Controller
|
PHP
|
Team di sviluppo Laravel
|
Licenza MIT
|
---|
MARF
|
elaborazione del segnale e del linguaggio
|
tubatura
|
Giava
|
Sergei Mokhov, Stephen Sinclair
|
|
---|
Microsoft Foundation Class
|
software applicativo
|
Model-View-Controller
|
C ++
|
Microsoft
|
Proprietario
|
---|
.Net (**) |
software applicativi , applicazioni web , componente software
|
ASP.NET
|
C # , Visual Basic .NET
|
Microsoft
|
Proprietario
|
---|
Ruby on Rails
|
applicazione web
|
Model-View-Controller
|
Rubino
|
David Heinemeier Hansson e
|
Software gratis
|
---|
Symfony
|
applicazione web
|
Model-View-Controller
|
PHP
|
Sensio Labs
|
Software gratis
|
---|
SoJo FrameWork
|
applicazione web
|
Model-View-Controller
|
HTML / CSS
|
InGamesStudio
|
Software gratis
|
---|
TopLink
|
persistenza e mappatura
|
API Java Persistence
|
Giava
|
Oracle Corporation
|
---|
W3.CSS
|
applicazione web
|
Google Material Design
|
CSS
|
W3Schools
|
Software gratis
|
---|
Zend Framework
|
applicazione web
|
Model-View-Controller
|
PHP
|
Zend Technologies
|
Software gratis
|
---|
Zope
|
Gestione dei contenuti
|
Zope
|
Pitone
|
Zope Corporation
|
Software gratis
|
---|
(*) Alcuni framework come Eclipse costituiscono più meta- framework , o framework di framework , nella misura in cui consentono, a seconda dei moduli che vengono installati su di essi, di riorientarsi verso diverse attività IT.
(**) Microsoft .NET e le piattaforme Java possono essere viste indifferentemente come framework , oppure come piattaforme software a seconda che si considerino le loro uniche librerie di sviluppo, o il loro ambiente di esecuzione.
Note e riferimenti
-
" Framework o infrastruttura software: definizione e traduzione ", JDN ,23 aprile 2018( leggi online , consultato il 24 giugno 2018 )
-
Sandy Hacyan, " The framework: a Structuring Development Base " , su journaldunet.com , Le Journal du Net ,3 aprile 2008(accesso 2 maggio 2017 )
-
Commissione per l'arricchimento della lingua francese , " l'ambiente di sviluppo " , FranceTerme , Ministero della Cultura (accessibile 22 gennaio 2020 ) .
-
" framework of applications " , Le Grand Dictionnaire terminologique , Office québécois de la langue française (accesso 22 gennaio 2020 ) .
-
(it) Ken Chazotte, Build Your Own Framework con Visual FoxPro , Hentzenwerke, 2004 ( ISBN 9.781.930,919532 millions ) .
-
(in) RJ Townsend Foundation Drupal 7: Scopri come utilizzare Drupal Framework per creare rapidamente siti Web ricchi di funzionalità , Apress - 2010 ( ISBN 9781430228080 )
-
(in) Nicolas Guelfi, Egidio Astesiano e Gianna Reggio Ingegneria scientifica per applicazioni Java distribuite , Springer - 2003 ( ISBN 9783540006794 )
-
(in) Douglas C. Schmidt e Stephen D. Huston, C ++ Network Programming: Systematic reuse with ACE and Frameworks , Addison-Wesley - 2003 ( ISBN 9780201795257 )
-
(in) Stephen D. Huston, James Johnson CE, Umar Syyid, The ACE programmer's guide: practice design patterns for network and systems programming , Addison-Wesley - 2004 ( ISBN 9780201699715 )
Vedi anche
Articoli Correlati
Link esterno