Per una buona funzionalità, MDPro viene rilasciato in due parti:
Un kernel che includa
un meccanismo per il database (ADODB)
Un sistema API globale per le interazioni generali del sistema (inizializzazione, DB, impostazioni, classi, variabili)
Un modulo News per editare contenuti (lato sia utente che admin)
Un modulo commenti per poter commentare le news pubblicate
Un modulo registrazione utente
Un sistema di permessi (admin, utenti e gruppi)
Strumenti di amministrazione per le ipostazioni generali del sistema
Un meccanismo di creazione temi (Autotheme, Encompass, ecc.) o un tema leggero per un output uniforme
Un punto centralizzato di raccolta per icone, smilies, pulsanti, scripts, funzioni
Addons
Maggiori accessori o caratteristiche codificate come moduli separati, blocchi o librerie
un maggior numero di temi complessi (skins)
Pacchetti per le le altre lingue (l'inglese fa parte del kernel ed è base per tutte le altre lingue)
API caricate temporaneamente per determinati moduli
una "collezione" di API aggiuntive per funzioni varie ("scatole nere" come uno strumento di selezione di colori, uno strumento per scegliere le date, ecc.)
per offire il nostro MDPro a differenti gruppi di utenti secondo le loro esigenze, si possono creare diverse distribuzioni. Tutte queste distribuzioni includeranno il kernel più una selezione di addons.
Cosa questo significhi lo spiegherò nel prossimo capitolo.
Come avete pototuo leggere sopra, dobbiamo cambiare il nostro modo di pensare. Dobbiamo suddividere il pacchetto attuale di MDPro in diverse parti. Ma lo sviluppo nel suo complesso sarà più visibile e meglio organizzato.
Inoltre, una maggior pulizia del codice aiuta lo sviluppo di base perché il kernel è piccolo e si adegua perfettamente solo a quelle parti che sono assolutamente necessarie per un sistema funzionale. la maggior parte di tutti i problemi e bug possono essere trovati e risolti nel kernel. Lo sviluppo di base può concentrare le proprie attività e non ha bisogno di pensare a cosa accadrebbe con il modulo tale o il blocco talaltro se si cambia il codice.
Dopo aver definito cosa sia un kernel e cosa sono gli addons ogni sviluppatore può trovare il proprio posto all'interno dell'intero progetto, dove può dare il suo contributo migliore.
Gli sviluppatori di moduli possono usare il kernel come una "cassetta degli atrezzi". Possono prendere tutte le API che servono per i loro moduli. Possono codificare i moduli con un aspetto omgoeneo alle altre parti di MDPro. Quantomeno non hanno bisogno di codificare di nuovo alcune funzioni perché possono trovarle già pronte nelle API.
Se suddividiamo MDPro, sarà più facile cambiare o modificare alcune parti delle distribuzioni perché queste parti sono codificate come moduli separati e non faranno crescere il kernel (ad es. la mia idea del modulo news che è al 100% compatibile API e rimpiazza il vecchio modulo "Invia_News", "AddStory" e Commenti è separata come modulo che usa hooks (lett. agganci), molto flessibile).