Che cosa è un 'Framework'?

Un framework, termine della lingua inglese che può essere tradotto come intelaiatura o struttura, in informatica e specificatamente nello sviluppo software, è un'architettura logica di supporto (spesso un'implementazione logica di un particolare design pattern) su cui un software può essere progettato e realizzato, spesso facilitandone lo sviluppo da parte del programmatore.

Caratteristiche

Un framework è definito da un insieme di classi astratte e dalle relazioni tra esse. Istanziare un framework significa fornire un'implementazione delle classi astratte. L'insieme delle classi concrete, definite ereditando il framework, eredita le relazioni tra le classi; si ottiene in questo modo un insieme di classi concrete con un insieme di relazioni tra classi.

Alla base di un framework c'è sempre una serie di librerie di codice utilizzabili in fase di linking con uno o più linguaggi di programmazione, spesso corredate da una serie di strumenti di supporto allo sviluppo del software, come ad esempio un IDE, un debugger o altri strumenti ideati per aumentare la velocità di sviluppo del prodotto finito. L'utilizzo di un framework impone dunque al programmatore una precisa metodologia di sviluppo del software.

Scopi di utilizzo

La sua funzione è quella di creare una infrastruttura generale, lasciando al programmatore il contenuto vero e proprio dell'applicazione. Lo scopo di un framework è infatti quello di risparmiare allo sviluppatore la riscrittura di codice già scritto in precedenza per compiti simili. Questa circostanza si è presentata sempre più spesso man mano che le interfacce utente sono diventate sempre più complesse, o, più in generale, man mano che è aumentata la quantità di software con funzionalità secondarie simili.

Ad esempio, il tipo di interazione con l'utente offerto da un menu a tendina sarà sempre la stessa indipendentemente dall'applicazione cui il menu appartiene (o almeno questo è ciò che l'utente si aspetta); in casi come questo un framework, che permette di aggiungere la funzionalità di una finestra con un menu a tendina con poche righe di codice sorgente a carico del programmatore, o magari permettendogli di disegnare comodamente il tutto in un ambiente di sviluppo, permetterà al programmatore di concentrarsi sulle vere funzionalità dell'applicazione, senza doversi far carico di scrivere codice "di contorno".

Relazione con le librerie di run-time

Un framework può essere visto come (e in alcuni casi è) un sovrainsieme o un'aggiunta alle librerie di run-time di un linguaggio. Per fare qualche esempio:

  • Il C++ ha, oltre alla libreria standard C++, un proprio framework non grafico, la Standard Template Library (STL); tuttavia, esistono numerosi framework che estendono o, in parte, sostituiscono la STL, tra cui l'Active Template Library (ATL) e le Microsoft Foundation Classes (MFC) di Microsoft, Qt di Digia, e wxWidgets. Microsoft ha inoltre sviluppato un'implementazione del C++ (ora standard dell'ECMA: C++/CLI) che si appoggia integralmente al Framework .NET.
  • Anche il C ha una propria libreria di run-time, la libreria standard del C, nota anche come libc (in ambiente Unix) o CRT (in ambiente Microsoft, da C Run-Time); tuttavia vi sono parecchi framework per il C, fra cui il GIMP Toolkit (GTK).
  • Per il linguaggio C#, che non ha una propria libreria di run-time, il Framework .NET svolge anche questa funzione. Lo stesso vale per Visual Basic .NET, che è stato concepito in maniera analoga.
  • Tutto il software scritto in Delphi di Borland si appoggia sulla Visual Component Library (VCL), sempre di Borland; questa libreria di fatto è un framework, poiché si prende carico di una gran quantità di servizi software non essenziali (tra i quali, appunto, la gestione dell'interfaccia grafica). Come Microsoft con il C++, anche Borland ha realizzato una versione di Delphi che si appoggia al Framework .NET .
  • Sono per Java i framework Cocoon e Struts di Apache, tutti e due orientati allo sviluppo di applicazioni per Internet.
  • Programmando in PHP è possibile fare uso di prodotti quali Symfony, Zend Framework, yii, Seagull, Jamp, CodeIgniter o molti altri.
  • In Perl esiste il framework Catalyst, nel quale il codice viene generato a partire dallo schema di un database sottostante.
  • Programmando in RPG è possibile fare uso di prodotti quali Jeniux framework, WebFacing, GUI/400 e molti altri.
  • In Python esiste il framework Twisted che utilizza il paradigma di programmazione orientato agli eventi per lo sviluppo di applicazioni Internet.

Utilizzi

A volte si utilizzano framework proprietari progettati ex-novo oppure che estendono framework già esistenti; trattandosi di fatto di importazione di librerie è anche possibile combinare più framework, ciascuno utilizzato per diverse parti dell'applicazione da realizzare.

RITORNO

  • 1 Utenti hanno trovato utile questa risposta
Hai trovato utile questa risposta?

Articoli Correlati

Che cosa è un dominio Internet?

A domain name is an identification string that defines a realm of administrative autonomy,...

Che cosa è un social media?

Social media, in italiano media sociali , è un termine generico che indica tecnologie e...

Che cos'è il DNS?

Il sistema dei nomi di dominio (in inglese: Domain Name System, DNS), è un sistema utilizzato...

Qual è la nuvola informatica?

Con il termine inglese cloud computing (in italiano nuvola informatica) si indica un paradigma...

Qual è il protocollo Internet IPv6?

IPv6 è la versione dell'Internet Protocol designata come successore dell'IPv4. Tale protocollo...

Powered by WHMCompleteSolution