MAXdev Italia
Quali sono i prossimi passi?
Stefan Köhler
stefan@maxdev.com
http://www.maxdev.de

La prima versione di MDPro è disponibile. Si tratta di una versione alpha, comunque basata sulle versioni stabili di Envolution (1.2.5FLS) e Postnuke (.726).

Ci sono, tuttavia, ancora diverse cose non finite o che possono essere modificate. Lo sviluppo non è terminato. Per produrre uno dei migliori sistemi di gestione dei contenuti Open Source sul mercato è necessario che il sistema diventi
  • più stabile
  • più sicuro
  • più veloce
  • più omogeneo
  • più semplice da utilizzare
  • più flessibile
  • più uniforme nell'aspetto
  • più completo
  • Questi sono i punti che fanno parte del processo di sviluppo presente e futuro e sono altrettanti compiti per tutti gli utenti MDPro, per l?intera comunità. Tutti possono partecipare e aiutare, come e quando possono.

    Nella prossima sezione di questo documento spiegherò come vedo i prossimi passi da compiere. Tutti questi compiti possono essere portati avanti in parallelo. Non vanno interpretati come una tabella di marcia, ma come un manuale per gestire quanto c?è da fare..



Cosa significa MDPro

Questo ci spinge a prendere le parti migliori di ambedue i sistemi per unirli in un sistema chiamato MDPro. Ma non è tutto. Per ottenere un CMS completo e perfetto per le molteplici situazioni, sarà necessario trovare e ottenere delle distribuzioni speciali, ispirandosi a quelle realizzate in altri progetti, come Linux.

I punti che seguono spiegano i passi necessari per raggiungere questo obiettivo.
  1. Dobbiamo ridurre il codice attualmente presente nell?applicazione per fare in modo che il core sia snello e visibile. Ora come ora, sia Envolution che Postnuke sono troppo ?gonfiati?. Ci sono troppi moduli inclusi nelle versioni di base, che servono esclusivamente a pochi utenti. Sarebbe meglio potere offrire un pacchetto piccolo ma che permetta di aggiungere moduli (Add-ons) per ottenere un sistema completo. Maxdev non vuole essere una nuova fork di eNvolution o di Postnuke, per il momento. Ambedue i gruppi di programmatori di questi progetti hanno lavorato sodo (e lo faranno ancora in futuro) per eliminare il codice obsoleto, per correggere i bug, per renderli più veloci e più sicuri. Possiamo in parte approfittare di questo lavoro. Per questo non dobbiamo sviluppare un nuovo core. Cosa possiamo fare è aiutarli a mantenere il core pulito e stabile segnalando eventuali bug e codice non necessario. Questo è tutto per ora. (Spiegherò cosa intendo per ?core? in seguito).

  2. ? MDPro offre la possibilità di creare un package personalizzato. Questo significa:
  3. Per espandere questo pacchetto standard l'utente può installare i moduli che preferisce o utilizzare uno dei nostri"pacchetti di distribuzione. Tutti questi pacchetti contengono uno o più moduli ottimizzati per MDPro. Ecco alcuni esempi di Add-ons:

Il nostro problema è trovare i migliori moduli per la nostra distribuzione. Ad esempio: vi sono diversi e ottimi sistemi di forum in fase di sviluppo (Arena, phpBB, Phorum, ecc.). La cosa più importante, tuttavia, è che il forum scelto deve essere perfettamente integrabile come modulo all'interno di MDPro.
In questo caso per noi è semplice integrare il forum di PNphpBB2, soluzione adottata da Postnuke. Non vi è alcuna necessità di offrire più di un forum, più di un sistema di shopping elettronico, più di un calendario, ecc

Come si può notare, dobbiamo dividere la nostra distribuzione completa in tre parti distinte:

  1. The core
  2. Add-Ons
  3. Un sistema di elebaorazione-creazione temi



Il core - un mini CMS

Parliamo ora di quelle che sono le parti importanti di un CMS utile. Le caratteristiche assolutamente necessarie per un sistema di base non sono poi così tante quanto si potrebbe pensare.

  1. Per immagazzinare informazioni di sistema importanti, design dello schermo e contenuti dello'utente, è necessario creare un database (es. MySQL). Un CMS ha bisogno di un meccanismo che consenta la di connettersi e lavorare con un database.
  2. Un secondo elemento è rappresentato dai contenuti che si devono pubblicare dal lato web. Per scrivere articoli esistono due possibilità: pagine HTML statiche e pagine dinamiche depositate in un database. Le pagine dinamiche sono più flessibili e facili da modificare. Inoltre non solo l'amministratore e un abile co-admin possono creare queste pagine; ogni iscritto al sito può partecipare e ottenere la possibilità di inviare i propri articoli.
  3. Un terzo elemento è dato dalla gestione delle impostazioni riguardanti la registrazione degli utenti e i settaggi dei permessi.
  4. Ultimo, ma non meno importante, un buon CMS ha bisogno di un sistema di modelli facile da usare per poter creare pagine con un output adeguato e un perfetto design sullo schermo.

Cosa significa questo per  MDPro?
La maggior parte dei CMS sul mercato (è indifferente che siano open source o commerciali) offre soluzioni complete preconfezionate che contengono una miriade di accessori, creando quindi distribuzioni di dimensioni notevoli, non facili da installare né da amministrare.

Se vogliamo offrire un  CMS veramente a portata di utente è necessario essere più
flessibili, ad esempio:

Detto questo, lasciatemi spiegare come si può trovare una soluzione migliore.


Per una buona funzionalità,  MDPro viene rilasciato in due parti:

  1. Un kernel che includa
  2. Addons

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).


Un'altra serie di buone ragioni è data dalla documentazione e dallo sviluppo del tema.

  1. Documentazione
  2. Temi [skins, modelli]

Il linguaggio di supporto deve essere l'inglese. E' di grande importanza che questo pacchetto linguistico sia completo al 100% e privo di errori.
Anche questo pacchetto di lingua inglese è parte del kernel e fonte di tutte le altre traduzioni.

Nota:
So bene che non è così semplice come sembra dividere e ristrutturare una versione base di MDPro. Vi sono troppe ragioni storiche che infrangono le regole. Ma uno dei nostri primi compiti è ripulire il codice. Ora è il momento migliore per farlo.  




Add-ons - Gli equipaggiamenti personali

Dopo aver definito il nostro kernel possiamo creare la nostra distribuzione principale. Come ho detto nel capitolo 3 una distribuzione include:

  1. Il kernel
  2. Acluni addons
  3. uno skin di  Autotheme bello e potente

La definizione per la nostra distribuzione principale si chiajma "MDPro [versione no.]". Questo pacchetto comprende la maggior parte delle funzionalità conosciute dalle precedenti versioni di altri progetti come  Envolution e PN. Ma ricordate cosa ho detto prima: questa distribuzione include più di un pacchetto.

Come si può fare?
Prima di tutto l'utente deve scaricare e installare il pacchetto base. Questo pacchetto comprende una routine di installazione completa. Il programma di installazione dà all'utente la possibilità di selezionare i moduli che vuole installare, quali impostazioni ha bisogno per il suo sito e quali contenuti principali vuole pubblicare. E' una procedura passo passo come quella attuale, ma più  flessibile.
Per ogni addon selezionato l'utente deve considere qualche dettaglio in più:

Come ognuno sa, è impossibile includere tutti i moduli desiderati e le migliorie in un solo pacchetto. Vi sono troppi sviluppatori in giro per il mondo. Ma il kernel di MDPro è molto flessibile e l'utente può selezionare e utilizzare molti di questi  moduli (quasi il 98%) codificati per  PN, Envolution e/o MDPro.
Quando pensiamo a tutti i professionisti che vogliono usare MDPro, possiamo predefinire alcuni pacchetti per rendere loro più facile avere i migliori addons compatibili al 100% con MDPro.

Dal punto di vista degli sviluppatori si può agire in questo modo:

Un'altra possiblità  è quella di includere programmi esterni, ad esempio PostWrap. Ma questa non è una soluzione di sviluppo, è solo un aggirare il problema.


Tutti i moduli trovati e ritenuti utili valide estenioni di  MDPro avranno lo status "certificato per MDPro". Questo garantisce che lavorino in maniera corretta e che sono supportati dal team Maxdev  (o dallo sviluppatore originale che lo ha sviluppato per MDPro, too).
Per rendere le cose più semplici possiamo incorporare alcuni moduli per vari pacchetti di distribuzione come:

  1. mdCommerce (sistema di shopping)
  2. mdGroupware (phprojekt + Mantis)
  3. mdLearning (spaghetti, claroline, moodle, mimerdesk, etc.)
  4. mdCommunity (mailinglists, chat, forum, etc.)
  5. mdWebadmin (ServerTools, advStats, etc.)
  6. Misc (Sondaggi, FormCreator, Punteggi, etc.)

Si possono trovare più prodotti per una distribuzione (es. Arena Forum, pnPHPBB2). Meglio sarebbe tuttavia basarsi su uno solo (il migliore.

Lo stesso dobbiamo fare con i blocchi (che non sono parti di un modulo), scripts (es. Javascript menu), applets e altre funzioni non direttamente parte del CMS.

Tuttavia dobbiamo considerare anche le parti esterne, la parti terze e gli scripts che non toccano il kernel. MDPro deve funzionare correttamente con o senza queste distrubuzioni ed estensioni.
Ancora, deve essere possibile sostituire un addon con un altro migliore (es. cambiare  dal modulo forum Arena al modulo forum phpBB2).

Per implementare parte o tutto il pacchetto di distribuzione, dobbiamo codificare una piccola routine di installazione. Questo può essere fatto sia come versione singola sia come parte di una procedura di installazione generale.




Strumenti per lo sviluppo e la condivisione di documenti

The information in the section is intended for all developers also. It will be updated by our developers as decisions are made regarding the future direction of MDPro and corresponding documentation is written.

MAXdev developer documentation - under construction

API  - API documentation

pnHTML  - pnHTML documentation

Mod  - modules development documentation

Standards - standards for all developers for MDPro, including third party developers


The information in this section is for members of the MD team only although it is not so sensitive as to necessitate being hidden from public view.

CVS  - CVS access information

 




Ripulire - ottimizzare - velocizzare

... a seguire

2003 ©  MAXdev Italia