17 dicembre 2014

Cos'è un framework

Nello sviluppare un’applicazione complessa, ci si ritrova spesso a implementare funzionalità molto simili tra loro e complicate, è quindi consigliato l’utilizzo di un framework per velocizzare i tempi, ridurre gli errori e avere altri benefici. Spesso sono confusi i concetti di framework e IDE (ambiente di sviluppo integrato) per il semplice motivo che entrambi aiutano gli sviluppatori a realizzare applicazioni software. Mentre un IDE è un software che consiste di un editor di codice sorgente, un compilatore o interprete e di un debugger, un framework è una raccolta di funzionalità software. É un’architettura generica che costituisce l’infrastruttura per lo sviluppo di applicazioni in una determinata area tecnologica basata su classi e librerie specifiche che ci consentono di realizzare applicazioni senza dover partire da zero fornendo allo sviluppatore una soluzione parziale, ma molto riusabile, a un problema generale. 

Ad esempio un framework potrebbe contenere alcuni meccanismi per realizzare delle form e quindi dei moduli, scrivendo poche righe di codice o senza scrivere nessuna riga di codice. In questo modo si può costruire un’applicazione in brevissimo tempo. Il concetto di framework è così definito dall’enciclopedia online Wikipedia: 
“Nella produzione del software, il framework è una struttura di supporto su cui un software può essere organizzato e progettato. Alla base di un framework c’è sempre una serie di librerie di codice utilizzabili 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.” 

Utilizzare un framework significa anche attenersi a una specifica architettura ed estendere delle classi del framework. La disponibilità di un framework valido permette di poter affrontare rapidamente diversi problemi, che occorrono solitamente durante lo sviluppo web, risparmiando allo sviluppatore la riscrittura di codice già steso in precedenza per compiti analoghi. Il suo utilizzo comporta un aumento della produttività, soluzioni ai problemi comuni già pronte, una migliore manutenzione perché facilita l’apporto di modifiche al sistema realizzato e scalabilità, poiché un software realizzato con un framework può essere adattato a diversi contesti senza riprogettare lo stesso sistema. Nonostante esistano molteplici framework, con notevoli differenze tra loro, di base essi risolvono questioni quali: persistenza dei dati e relativi strumenti di accesso, autenticazione, sicurezza, gestione degli errori, gestione degli utenti.