La necessità di aggiornare TiP, il framework web sviluppato internamente, ha portato alla ridefinizione delle priorità della eNTiDi. Per i nuovi siti era necessario passare ad un framework basato su un sistema LEMP che avesse già una comunità di sviluppatori attiva alle spalle.
Silverstripe
Un framework web e un CMS
A seguito di una estensiva ricerca, effettuata nel 2010 a tempo perso nell'arco di parecchi mesi, sono stati formulati i seguenti postulati che hanno aiutato a scegliere il framework ideale per le nostre esigenze.
- Non scegliere un framework in base alle prestazioni; meglio ancora, non considerarle nemmeno.
- Ogni framework è perfetto per i propri fedelissimi.
- La quantità di dichiarazioni superficiali travolge quelle serie; in breve, non credere ai commenti ma verificare (per quanto possibile) i fatti.
- Quando una scelta è opinabile, rifiutare le dichiarazioni assolute (tipo il PHP è un template engine).
- I pattern di programmazione sono dettagli implementativi; usare un approccio MVC e implementare il codice usando l'OOP non sono da annoverare nei "vantaggi" di un framework (anzi: diffidare da chi lo fa).
- Il CMS è il banco di prova ideale di un framework: questo è un enorme vantaggio, dato che offre un perfetto esempio d'uso di una certa complessità.
Il punto che ha aiutato a scremare è stato soprattutto il 6: se non esiste alcun CMS serio basato sul framework in considerazione allora il framework è da scartare. Dopo una interminabile ricerca e parecchie prove si è deciso di passare a silverstripe-framework (precedentemente chiamato sapphire), il framework alla base del CMS Silverstripe.
In breve: perché Silverstripe?
Lungi dall'essere perfetto, Silverstripe consente di implementare un sito base in tempi rapidi tramite il CMS (indispensabile per sviluppare siti web) mentre il framework fornisce quella estensibilità su cui far leva per personalizzare profondamente il codice HTML generato (necessaria invece per lo sviluppo di webapp).
- Struttura modulare basata su composer.
- CMS e framework separati (si può considerare il CMS come un comune modulo di silverstripe-framework).
- Suddivisione netta tra sviluppatore, web design ed editore: Silverstripe è stato progettato fin dall'inizio considerando che tali compiti venissero svolti da tre persone diverse.
- Interfaccia utente del CMS relativamente pulita, probabilmente grazie al punto precedente.
- Comunità di sviluppatori attiva.
- Usando i nostri canoni, il progetto sta migliorando.
I lati negativi citati pubblicamente spesso possono essere condensati in un unico punto: Silverstripe ha bisogno di un programmatore PHP per poter essere usato decentemente. Di seguito il nostro personale elenco di lati negativi:
- È scritto in PHP. In realtà non c'è molta altra scelta... questo è un problema generico del web, non specifico di Silverstripe.
- Codice overengineered, ossia ci sono troppe funzioni pubbliche che fanno cose simili. Questo aspetto sta lentamente migliorando.
- Lo svantaggio principale: sindrome NIH. Questo aspetto è stato notevolmente ridimensionato col rilascio della versione 3 di Silverstripe e l'uso di composer, tanto da non essere più rilevante.
Nei vari anni la eNTiDi ha sviluppato alcune estensioni di uso comune che sono state rilasciate sotto licenza opensource. La lista dei progetti pubblici è disponibile su GitHub.