E’ incredibile come al giorno d’oggi sia diventato facile produrre del software. Questo è un vantaggio, e non a caso, contribuisce a colmare il digital divide che interessa la maggior parte degli utenti non “addetti ai lavori” ma allo stesso tempo, presenta un grosso limite dal punto di vista dell’architettura software. Spesso avviene che programmatori dalla comprovata professionalità tralascino nel loro lavoro l’importante aspetto della progettazione, per concentrarsi solo ed esclusivamente sull’usabilità apparente (spesso a causa dei ristretti tempi di sviluppo), ovvero sull’immediata disponibilità di utilizzo del loro prodotto, a danno della qualità del software.
Quando si parla di qualità del software allora si parla di correttezza, affidabilità, robustezza, efficienza, usabilità, scalabilità, fault tolerance.
Produrre del software non significa produrre del “buon software”. Un software ben progettato e’ piu’ stabile, mantenibile e architetturalmente espandibile.
L’obiettivo che mi sono posto nel creare Solution è proprio quello di fornire uno strumento che possa essere di supporto allo sviluppo di “buon software” rispettando quindi i canoni di qualità e conservando il vantaggio della velocità di implementazione.
Solution promette questi risultati sfruttando un insieme di librerie che evitando operazioni ripetitive e velocizzandole permette di focalizzare l’attenzione sulla progettualità più che sulla sola implementazione. Solution Framework e' una libreria di classi multipiattaforma, disegnato per fornire un'infrastruttura sulla quale verticalizzare soluzioni. Un framework è una struttura di supporto su cui un software può essere organizzato e progettato. Alla base 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 ideati per aumentare la velocità di sviluppo del prodotto finito. Lo scopo di un framework è di risparmiare allo sviluppatore la riscrittura di codice già steso in precedenza per compiti simili. Questa circostanza si è presentata sempre più spesso man mano che è aumentata la quantità di software con funzionalità secondarie simili.
Questo permette al programmatore di concentrarsi sulle vere funzionalità dell'applicazione, senza doversi far carico di scrivere codice "di contorno". Il termine framework quindi può essere tradotto come “struttura” a sottolineare che al programmatore rimane solo da creare il contenuto vero e proprio dell'applicazione. 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.
La libreria di classi Solution Framework è un insieme di tipi riutilizzabili che si integrano strettamente con Common Language Runtime. La libreria di classi è orientata a oggetti e fornisce tipi dai quali il codice gestito può derivare le funzionalità. In questo modo non solo viene semplificato l'utilizzo dei tipi Solution Framework
ma viene anche ridotto il tempo necessario all'apprendimento delle nuove funzionalità di Solution Framework. È inoltre possibile integrare senza problemi i componenti di altri produttori nelle classi in Solution Framework. Come è ovvio per una libreria di classi orientata a oggetti, i tipi Solution Framework consentono di effettuare una gamma di attività comuni di programmazione, incluse operazioni quali la gestione di stringhe, la raccolta di dati, la connettività al database e l'accesso a file. Oltre a queste attività comuni, la libreria di classi include tipi che supportano vari scenari di sviluppo specializzati. È possibile utilizzare Solution Framework per sviluppare i seguenti tipi di applicazioni e servizi:
Solution Framework risulta essere compatibile con il progetto Mono, sponsorizzato da Novell.