Nooku Framework, il futuro dello sviluppo su Joomla

Il Framework Nooku, nome in codice Koowa, è un framework di sviluppo PHP per la creazione di applicazioni basate sul Web, nato in casa JoomlaTools, azienda belga che si occupa di Joomla e Web Development. Un framework è un insieme di classi e codice che fornisce funzionalità di vario tipo.

Ho già segnalato in passato l'esistenza di questo framework, ma non sono mai entrato nei dettagli del suo utilizzo.

In questi ultimi giorni, deciso a compiere i primi passi con questo nuovo approccio allo sviluppo su Joomla, ho iniziato lo sviluppo di una nuova web application usando il Nooku Framework come base.

Devo dire che i risultati sono impressionanti. Johan Janssens (già Lead Architect di Joomla 1.5) e Mathias Verraes sono riusciti a creare un framework RAD che consente al programmatore/progettista di risparmiare, secondo la mia esperienza, più del 50% del codice e dei file necessari per creare una estensione Joomla.

Prendendosi cura dei dettagli ininfluenti nel flow dell'applicazione, è possibile concentrarsi su quello chc si vuole realizzare.

Il Framework Nooku, secondo me, è quello che avrebbe dovuto essere Joomla, la sua naturale evoluzione, in continuo sviluppo ma estremamente stabile e veloce: astrazione del database (ovvero possiamo aggiungere campi a piacere senza dover modificare il codice), Model Driven Development, Namespaces, Command Chain, Event Handler, piena implementazione di molti design pattern.. e molte altre cose che devo ancora scoprire!

Dopo due anni di sviluppo di estensioni per il CMS Joomla 1.5, è stato molto semplice entrare nell'ottica di sviluppo per il Framework Nooku, mentre sarà difficile tornare indietro: visto cosa c'è "al di là della porta" è semitragico sviluppare "old style".

Con Nooku sono già stati realizzati svariati progetti, tra quelli pubblicati possiamo citare Anahita Social Engine, progetto Open Source commerciale, ed una prima versione alpha di NinjaBoard 1.0, estensione per la realizzazione di un forum, creata da NinjaForge.

Perchè usare Joomla come base per lo sviluppo?

Joomla è stato sempre pubblicizzato come CMS, per cui molte persone mostrano scetticismo quando si parla di realizzare applicazioni usando Joomla come base.

Non è così, in effetti. Joomla, a differenza di altri CMS Open Source come Drupal e WordPress,  in realtà è un framework (parlo di Joomla 1.5) su cui è stata realizzata l'applicazione CMS. Questo significa che possiamo eliminare gran parte delle funzioni che siamo soliti vedere (Article Manager, gestione contatti ecc) e lasciare soltanto l'infrastruttura necessaria per la creazione della nostra idea, sfruttando il framework di Joomla per semplificarci il lavoro. Ancora meglio, possiamo installare il Framework Nooku ed avere un ulteriore layer di astrazione e semplificazione.

Abbiamo di più: a differenza di altri framework di sviluppo web, come Ruby on Rails, Symphony, cakePHP, usando Joomla come base abbiamo già a disposizione moltepici funzionalità: un semplice e potente template engine (e migliaia di template disponibili), la gestione delle estensioni, il sistema dei menu e della presentazione dei moduli, un sistema per la gestione degli utenti e dei loro parametri.

Nooku va oltre Joomla

Il Framework Nooku interagisce con Joomla tramite un adapter, ed è già stato testato usando Joomla 1.6 in versione alpha. La compatibilità futura è garantita.

Quello che stupisce è che Nooku è stato facilmente installato con successo anche su WordPress. A quando Drupal?

Essere indipendenti dalla tecnologia sottostante è davvero fantastico, e nel futuro la roadmap di Nooku prevede proprio questo: essere tanto indipendente da non aver bisogno di alcun supporto, essere standalone.


Bookmark and Share

17 Commenti al post “Nooku Framework, il futuro dello sviluppo su Joomla”

Barra Says:

Sbav, mi hai fatto venire voglia di testare questo framework, stavo per mettermi sotto con lo studio di gantry, differenze tra i 2?

Flavio Says:

Ciao, Gantry è rivolto ai template, mentre Nooku è un Framework per lo sviluppo di estensioni/applicazioni.. non si possono confrontare, sono due cose diverse.

odino Says:

ciao flavio, ma come mai dici che joomla è diverso da drupal in quanto framework? sono curioso :)

Cristiano Says:

@odino
Joomla non è un framework…Joomla è un CMS sviluppato attraverso l’utilizzo di un framework, sviluppato dalla stessa community di Joomla.
Il framework viene utilizzato per lo sviluppo di applicazioni (nell’attuale distribuzione 1.5 sono presenti le applicazioni per CMS frontend, CMS backend, CMS installation e server XML-RPC).
In più, grazie al framework, gli sviluppatori sono molto agevolati nello sviluppo di proprie estensioni. In Drupal un programmatore non ha vita facile ed è anche per questo che il numero delle estensioni Joomla è notevolmente superiore a quelle Drupal ;)

Ho avuto modo anch’io di usare Nooku e devo dire che è uno strumento davvero interessante! Realizzare dei piccoli gestionali richiede pochissime righe di codice (a fronte ovviamente di una buona progettazione)!

Flavio Says:

Come dicono sul post di Anahita che ho linkato, il fattore “Framework” di Joomla è stato penalizzato perchè è stato troppo pubblicizzato come CMS.

Sia Nooku sia Joomla possono persino far girare programmi da riga di comando, basati sulla loro API!

Nonostante si dica spesso “Drupal è per gli sviluppatori”.. io credo sia un luogo comune.

odino Says:

@cristiano nono, joomla! è anche un framework, su questo non si discute ;-) poco potente, ma comunque un framework

@flavio come mai secondo te è un luogo comune? integra facilmente feature di livello come gli unit-test ( e simpletest, proprio suo ) ed utilizza un integrazione di patch ed estensioni 3rd party di qualità superiore a quella di Joomla!…secondo me, tra i 2, non c’è proprio paragone…

Federico Capoano Says:

Io non mi spingerei nel fare confronti con framework quali Symfony e Ruby On Rails, perchè qui, mi dispiace dirlo, Joomla non regge il confronto neanche minimamente.

Joomla è un CMS basato su un framework, sì è vero, ma il framework su cui si basa Joomla non sarà mai ai livelli di Ruby On Rails, Symfony o Django, non tanto perchè quei framework lì chissà cosa fanno di magico (anche se io direi che di magie ne fanno parecchie), ma perchè la maggior parte degli utenti che utilizzano Joomla non contribuisce all’evoluzione del framework, moltissimi non sarebbero neanche in grado di farlo dato che non conoscono neanche l’HTML.
Gli altri framework invece ricevono contributi dagli utenti stessi, che al contrario degli utenti di Joomla sono utenti esperti in programmazione ed informatica.

Flavio Says:

Nessun confronto con questi due framework Federico, ma le potenzialità di Rapid Application Development dell’accoppiata Joomla+Nooku (non solo Joomla, chiaro) sono eccezionali.

Per fare un esempio qualche giorno fa in 40 minuti cronometrati ho creato da zero un basilare sistema di blog, con blog multipli, post e commenti.. il tutto usando Nooku, basandomi sulla gestione utenti/login, il sistema di menu e dei template di Joomla. Senza dover reinventare la ruota.

Togli a Joomla quei 4-5 componenti inutili (anche com_content può essere eliminato, ad esempio in favore di K2) ed hai un grande strumento tra le mani.

Nooku Framework compie 2 anni Says:

[...] già parlato in passato di Nooku Framework, uno strumento per sviluppatori a mio avviso eccezionale per efficenza e [...]

Alex Says:

Salve

ma Nooku è disponibile?…..inoltre è gratuito?

grazie

Flavio Says:

Ciao Alex, si è disponibile e gratuito, in una parola FOSS.

Nico Says:

“…Questo significa che possiamo eliminare gran parte delle funzioni che siamo soliti vedere (Article Manager, gestione contatti ecc) e lasciare soltanto l’infrastruttura necessaria per la creazione della nostra idea…”

Davvero si può fare ? Rimuovere com_content (per sostituirlo con ZOO2.0) ? E rimuovere com_banners e com_contact e com_polls ? Se davvero si può fare ti imploro messia, mostrami il cammino :) .

Flavio Says:

Si può si può :)

I vari com_weblinks, com_banner, com_contact, com_polls li elimino da ogni sito prima di iniziare a lavorarci.. elimini le cartelle da frontend e backend, quindi vai nella cartella com_components ed elimini tutti i riferimenti.

Per quanto riguarda com_content non l’ho mai eliminato perchè può sempre servire, ma se intendi sostituirlo con ZOO il procedimento è lo stesso.

Nico Says:

Gr8 :) … proverò asap e magari di do un feedback sulla mia esperienza. Grazie mille.

Nico Says:

Grandioso, finalmente ho la mia versione “essential” di joomla perfettamente composta con quello che mi serve senza altro. Una piccola nota per chi volesse fare lo stesso, nella tua risposta hai scritto “quindi vai nella cartella com_components ed elimini tutti i riferimenti…” credo tu intendessi dire la tabella jos_component da cui eliminare tutti i riferimenti. Ok. Adesso sto lavorando per elimare residui e ottimizzare il tutto. Hai suggeriementi in merito. Comuqneu grazie ancora per avermi messo su questa strada. Ho anche potuto notare l’assenza totale di documentazione in merito. Strano vista la grandezza della comunità di Joomla. Però mi ha anche fatto pensare che si potrebbe scrivere una bella guida. Grazie ancora e … keep up the good work!

Nico Says:

La mia installazione personalizzata di joomla è davvero velocissima. Tutto funziona alla perfezione inclusi gli aggiornamenti automatici con j_updateman (se rimuovete correttamente le tabelle che fanno capo ai componenti rimossi). Niente da aggiungere, un ultimo test sul db (perfetto agli occhi dei test su phpmyadmin) e poi si potrà scrivere il mini how-to.
Ti ringrazio ancora per avermi fatto scoprire cosa realmente sia joomla.

n.b.
Perdona gli errori ortografici del precedente messaggio, scritto troppo in fretta.

Flavio Says:

Bel lavoro Nico!

Concordo con te, Joomla dovrebbe distribuire anche una versione framework-only!

Lascia un commento

Nome (obbligatorio)

Mail (non sarà pubblicata) (obbligatoria)

Sito web