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.
February 3rd, 2010 at 12:20
Sbav, mi hai fatto venire voglia di testare questo framework, stavo per mettermi sotto con lo studio di gantry, differenze tra i 2?
February 3rd, 2010 at 12:53
Ciao, Gantry è rivolto ai template, mentre Nooku è un Framework per lo sviluppo di estensioni/applicazioni.. non si possono confrontare, sono due cose diverse.
February 3rd, 2010 at 14:30
ciao flavio, ma come mai dici che joomla è diverso da drupal in quanto framework? sono curioso
February 3rd, 2010 at 14:56
@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)!
February 3rd, 2010 at 17:39
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.
February 5th, 2010 at 15:51
@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…
February 10th, 2010 at 16:55
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.
February 11th, 2010 at 08:35
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.
April 20th, 2010 at 09:55
[...] già parlato in passato di Nooku Framework, uno strumento per sviluppatori a mio avviso eccezionale per efficenza e [...]
June 25th, 2010 at 10:32
“…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
.
June 25th, 2010 at 11:03
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.
June 25th, 2010 at 11:22
Gr8
… proverò asap e magari di do un feedback sulla mia esperienza. Grazie mille.
June 26th, 2010 at 10:54
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!
June 28th, 2010 at 18:36
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.
June 28th, 2010 at 18:43
Bel lavoro Nico!
Concordo con te, Joomla dovrebbe distribuire anche una versione framework-only!
Lascia un commento
-
Feeds
Segui il feed RSS e Twitter per restare sempre aggiornato!
Ricevi gli aggiornamenti via email: -
-
Ultimi commenti
- strumenti musicali chitarra: IL SITO DI JOOMLA
- giulio: È una potenza.
- Fabio: Avete risolto il problema di inserire due moduli nella stessa pagina? Se si come?
- lobo: …è solo una sola come tutti gli altri template “vuoti” di J. come i tutorial per costruirli,...
- Daniele: Salve, OTTIMO TUTORIAL,GRAZIE. Volevo chiedere un cosa dato che non e’ molto che lavoro con joomla. Ma...
-
Ultimi post

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