Lanalisi e le scelte nello sviluppo di un plugin
-
Upload
federicobernardin -
Category
Technology
-
view
510 -
download
0
Transcript of Lanalisi e le scelte nello sviluppo di un plugin
L'analisi e le scelte nello sviluppo di un pluginScelta degli strumenti e delle metodologie per migliorare i tempi e la qualità del software. Conoscere le potenzialità che TYPO3 ci offre sia con le modalità di sviluppo classico (tslib_pibase), sia con lo sviluppo MVC (ExtBase).
Federico Bernardin <[email protected]>
T3Camp ItaliaL’evento italiano dedicato a
Bologna 27/28 Ottobre 2011
T3Camp ItaliaL’evento italiano dedicato a
FLOW3Federico Bernardin
About me
About me
Mi occupo di progettazione e dello sviluppo di siti web con TYPO3 dal 2004, ho all’attivo alcuni plugin, tra cui xflextemplate, da Aprile 2010 sono TYPO3 Certified Integrator.
Sono libero professionista e mi occupo di consulenza informatica.
In particolare seguo i progetti web per l’agenzia Pallino & Co. di Padova, dove coordino il team di sviluppatori su
T3Camp ItaliaL’evento italiano dedicato a
FLOW3Federico Bernardin
Obiettivi
T3Camp ItaliaL’evento italiano dedicato a
FLOW3Federico Bernardin
Obiettivi
Possibilità di riportarmi ad una versione precedente alle ultime modifiche.
T3Camp ItaliaL’evento italiano dedicato a
FLOW3Federico Bernardin
Obiettivi
Possibilità di riportarmi ad una versione precedente alle ultime modifiche.
Possibilità di lavoro in team, dove più persone modificano lo stesso file (non le stesse righe).
T3Camp ItaliaL’evento italiano dedicato a
FLOW3Federico Bernardin
Obiettivi
Possibilità di riportarmi ad una versione precedente alle ultime modifiche.
Possibilità di lavoro in team, dove più persone modificano lo stesso file (non le stesse righe).
Comodità nella scrittura del codice, aiuto nella scrittura delle funzioni.
T3Camp ItaliaL’evento italiano dedicato a
FLOW3Federico Bernardin
Obiettivi
Possibilità di riportarmi ad una versione precedente alle ultime modifiche.
Possibilità di lavoro in team, dove più persone modificano lo stesso file (non le stesse righe).
Comodità nella scrittura del codice, aiuto nella scrittura delle funzioni.
Sistemi di controllo della sintassi.
T3Camp ItaliaL’evento italiano dedicato a
FLOW3Federico Bernardin
Obiettivi
Possibilità di riportarmi ad una versione precedente alle ultime modifiche.
Possibilità di lavoro in team, dove più persone modificano lo stesso file (non le stesse righe).
Comodità nella scrittura del codice, aiuto nella scrittura delle funzioni.
Sistemi di controllo della sintassi.
Integrazione con FTP o gestione di cartelle remote.
T3Camp ItaliaL’evento italiano dedicato a
FLOW3Federico Bernardin
Obiettivi
T3Camp ItaliaL’evento italiano dedicato a
FLOW3Federico Bernardin
Obiettivi
Processo di controllo della pubblicazione e dello sviluppo mediante task control, features e milestone.
T3Camp ItaliaL’evento italiano dedicato a
FLOW3Federico Bernardin
Obiettivi
Processo di controllo della pubblicazione e dello sviluppo mediante task control, features e milestone.
Aiuto nell'analisi del plugin.
T3Camp ItaliaL’evento italiano dedicato a
FLOW3Federico Bernardin
Obiettivi
Processo di controllo della pubblicazione e dello sviluppo mediante task control, features e milestone.
Aiuto nell'analisi del plugin.
Sistemi di refactoring.
T3Camp ItaliaL’evento italiano dedicato a
FLOW3Federico Bernardin
Obiettivi
Processo di controllo della pubblicazione e dello sviluppo mediante task control, features e milestone.
Aiuto nell'analisi del plugin.
Sistemi di refactoring.
Sistemi di test e controllo.
T3Camp ItaliaL’evento italiano dedicato a
FLOW3Federico Bernardin
Obiettivi
Processo di controllo della pubblicazione e dello sviluppo mediante task control, features e milestone.
Aiuto nell'analisi del plugin.
Sistemi di refactoring.
Sistemi di test e controllo.
Utilizzo delle funzioni integrate in TYPO3.
T3Camp ItaliaL’evento italiano dedicato a
FLOW3Federico Bernardin
Analisi e briefing
T3Camp ItaliaL’evento italiano dedicato a
FLOW3Federico Bernardin
Analisi e briefing
La prima operazione e forse la più complessa e delicata è la raccolta delle informazioni per sviluppare un’estensione effettivamente attinente alle richieste del cliente.
T3Camp ItaliaL’evento italiano dedicato a
FLOW3Federico Bernardin
Analisi e briefing
La prima operazione e forse la più complessa e delicata è la raccolta delle informazioni per sviluppare un’estensione effettivamente attinente alle richieste del cliente.
Errori in questa fase si ripercuotono poi in maniera altamente traumatica sulla fase di sviluppo, richiedendo a volte la necessità di un refactoring dell’applicazione.
T3Camp ItaliaL’evento italiano dedicato a
FLOW3Federico Bernardin
Strumenti
T3Camp ItaliaL’evento italiano dedicato a
FLOW3Federico Bernardin
Strumenti
IDE (Integrated Development Environment) è l’applicazione con cui lavoriamo principalmente durante lo sviluppo e che ci deve fornite tutte le funzioni di cui abbiamo bisogno durante la scrittura del codice.
T3Camp ItaliaL’evento italiano dedicato a
FLOW3Federico Bernardin
Strumenti
IDE (Integrated Development Environment) è l’applicazione con cui lavoriamo principalmente durante lo sviluppo e che ci deve fornite tutte le funzioni di cui abbiamo bisogno durante la scrittura del codice.
Sistema di versioning. Questa applicazione ci deve dare tutte le funzioni per poter gestire il versionamento del codice, soprattutto in una modalità multi utente.
T3Camp ItaliaL’evento italiano dedicato a
FLOW3Federico Bernardin
Strumenti
IDE (Integrated Development Environment) è l’applicazione con cui lavoriamo principalmente durante lo sviluppo e che ci deve fornite tutte le funzioni di cui abbiamo bisogno durante la scrittura del codice.
Sistema di versioning. Questa applicazione ci deve dare tutte le funzioni per poter gestire il versionamento del codice, soprattutto in una modalità multi utente.
Sistema di gestione del processo con task, bugs, features, con integrazione del processo di versionamento e pubblicazioni delle modifiche.
T3Camp ItaliaL’evento italiano dedicato a
FLOW3Federico Bernardin
Strumenti
T3Camp ItaliaL’evento italiano dedicato a
FLOW3Federico Bernardin
Strumenti
Sistema di test e controlli, per poter ridurre il carico di lavoro in caso di modifiche al codice.
T3Camp ItaliaL’evento italiano dedicato a
FLOW3Federico Bernardin
Strumenti
Sistema di test e controlli, per poter ridurre il carico di lavoro in caso di modifiche al codice.
Sistema di pubblicazione mediante protocollo FTP dell’applicazione su server remoti.
T3Camp ItaliaL’evento italiano dedicato a
FLOW3Federico Bernardin
Subversion definizione e vantaggi
T3Camp ItaliaL’evento italiano dedicato a
FLOW3Federico Bernardin
Subversion definizione e vantaggi
Subversion è un’applicazione server per la gestione multi utente del versionamento.
T3Camp ItaliaL’evento italiano dedicato a
FLOW3Federico Bernardin
Subversion definizione e vantaggi
Subversion è un’applicazione server per la gestione multi utente del versionamento.
SVN garantisce la possibilità di riportarsi ad una qualsiasi versione salvata precedentemente o confrontare due revisioni.
T3Camp ItaliaL’evento italiano dedicato a
FLOW3Federico Bernardin
Subversion definizione e vantaggi
Subversion è un’applicazione server per la gestione multi utente del versionamento.
SVN garantisce la possibilità di riportarsi ad una qualsiasi versione salvata precedentemente o confrontare due revisioni.
SVN garantisce la possibilità di effettuare la fusione (merge) del codice, magari sviluppato da persone diverse.
T3Camp ItaliaL’evento italiano dedicato a
FLOW3Federico Bernardin
Subversion definizione e vantaggi
Subversion è un’applicazione server per la gestione multi utente del versionamento.
SVN garantisce la possibilità di riportarsi ad una qualsiasi versione salvata precedentemente o confrontare due revisioni.
SVN garantisce la possibilità di effettuare la fusione (merge) del codice, magari sviluppato da persone diverse.
SVN permette di creare delle patch che permettono l’aggiornamento del codice da una revisione a quella attuale.
T3Camp ItaliaL’evento italiano dedicato a
FLOW3Federico Bernardin
SVN: un esempio
T3Camp ItaliaL’evento italiano dedicato a
FLOW3Federico Bernardin
SVN: un esempio
T3Camp ItaliaL’evento italiano dedicato a
FLOW3Federico Bernardin
SVN: un esempio
T3Camp ItaliaL’evento italiano dedicato a
FLOW3Federico Bernardin
Eclipse-Aptana definizione e vantaggi
T3Camp ItaliaL’evento italiano dedicato a
FLOW3Federico Bernardin
Eclipse-Aptana definizione e vantaggi
Eclipse è uno strumento inizialmente sviluppato da IBM per JAVA. Oggi è un IDE ottimizzato per l’uso di svariati linguaggi, come ad esempio PHP.
T3Camp ItaliaL’evento italiano dedicato a
FLOW3Federico Bernardin
Eclipse-Aptana definizione e vantaggi
Eclipse è uno strumento inizialmente sviluppato da IBM per JAVA. Oggi è un IDE ottimizzato per l’uso di svariati linguaggi, come ad esempio PHP.
Aptana è un plugin di Eclipse che permette di utilizzare FTP, e di avere un editor PHP integrato con SVN e Mylyn plugin.
T3Camp ItaliaL’evento italiano dedicato a
FLOW3Federico Bernardin
Eclipse-Aptana definizione e vantaggi
Eclipse è uno strumento inizialmente sviluppato da IBM per JAVA. Oggi è un IDE ottimizzato per l’uso di svariati linguaggi, come ad esempio PHP.
Aptana è un plugin di Eclipse che permette di utilizzare FTP, e di avere un editor PHP integrato con SVN e Mylyn plugin.
Aptana e il suo editor PHP (PDT) permettono la gestione del template e dell’autocomplete, rendendo meno gravoso la scrittura del codice da parte dell’utente.
T3Camp ItaliaL’evento italiano dedicato a
FLOW3Federico Bernardin
Eclipse-Aptana definizione e vantaggi
Eclipse è uno strumento inizialmente sviluppato da IBM per JAVA. Oggi è un IDE ottimizzato per l’uso di svariati linguaggi, come ad esempio PHP.
Aptana è un plugin di Eclipse che permette di utilizzare FTP, e di avere un editor PHP integrato con SVN e Mylyn plugin.
Aptana e il suo editor PHP (PDT) permettono la gestione del template e dell’autocomplete, rendendo meno gravoso la scrittura del codice da parte dell’utente.
Aptana (Eclipse) possiede moltissimi plugin che estendono le funzionalità base come ad esempio il debugger e la gestione del refactoring.
T3Camp ItaliaL’evento italiano dedicato a
FLOW3Federico Bernardin
Eclipse-Aptana: diamogli un occhio
T3Camp ItaliaL’evento italiano dedicato a
FLOW3Federico Bernardin
Eclipse-Aptana: diamogli un occhio
T3Camp ItaliaL’evento italiano dedicato a
FLOW3Federico Bernardin
TYPO3 Forge definizione e vantaggi
T3Camp ItaliaL’evento italiano dedicato a
FLOW3Federico Bernardin
TYPO3 Forge definizione e vantaggi
Forge raggiungibile all’indirizzo http://forge.typo3.org è un servizio che l’associazione mette a disposizione per poter avere un ambiente dove sviluppare e mantenere le proprie estensioni pubbliche.
T3Camp ItaliaL’evento italiano dedicato a
FLOW3Federico Bernardin
TYPO3 Forge definizione e vantaggi
Forge raggiungibile all’indirizzo http://forge.typo3.org è un servizio che l’associazione mette a disposizione per poter avere un ambiente dove sviluppare e mantenere le proprie estensioni pubbliche.
Forge si basa su Redmine un application project framework per la gestione dei progetti scritto in ruby on rails.
T3Camp ItaliaL’evento italiano dedicato a
FLOW3Federico Bernardin
TYPO3 Forge definizione e vantaggi
Forge raggiungibile all’indirizzo http://forge.typo3.org è un servizio che l’associazione mette a disposizione per poter avere un ambiente dove sviluppare e mantenere le proprie estensioni pubbliche.
Forge si basa su Redmine un application project framework per la gestione dei progetti scritto in ruby on rails.
Automaticamente viene creato un’ambiente pronto per mantenere le nostre estensioni con un repository svn compreso.
T3Camp ItaliaL’evento italiano dedicato a
FLOW3Federico Bernardin
TYPO3 Forge definizione e vantaggi
Forge raggiungibile all’indirizzo http://forge.typo3.org è un servizio che l’associazione mette a disposizione per poter avere un ambiente dove sviluppare e mantenere le proprie estensioni pubbliche.
Forge si basa su Redmine un application project framework per la gestione dei progetti scritto in ruby on rails.
Automaticamente viene creato un’ambiente pronto per mantenere le nostre estensioni con un repository svn compreso.
E’ possibile gestire nuove richieste per bug fixing, features e task.
T3Camp ItaliaL’evento italiano dedicato a
FLOW3Federico Bernardin
TYPO3 Forge definizione e vantaggi
Forge raggiungibile all’indirizzo http://forge.typo3.org è un servizio che l’associazione mette a disposizione per poter avere un ambiente dove sviluppare e mantenere le proprie estensioni pubbliche.
Forge si basa su Redmine un application project framework per la gestione dei progetti scritto in ruby on rails.
Automaticamente viene creato un’ambiente pronto per mantenere le nostre estensioni con un repository svn compreso.
E’ possibile gestire nuove richieste per bug fixing, features e task.
Il sistema si integra perfettamente con Eclipse potendo recuperare la lista delle segnalazioni da remoto tramite il plugin Mylyn.
T3Camp ItaliaL’evento italiano dedicato a
FLOW3Federico Bernardin
TYPO3 Forge
T3Camp ItaliaL’evento italiano dedicato a
FLOW3Federico Bernardin
TYPO3 Forge
T3Camp ItaliaL’evento italiano dedicato a
FLOW3Federico Bernardin
TYPO3 Forge
T3Camp ItaliaL’evento italiano dedicato a
FLOW3Federico Bernardin
TYPO3 Forge
T3Camp ItaliaL’evento italiano dedicato a
FLOW3Federico Bernardin
TYPO3 Forge
T3Camp ItaliaL’evento italiano dedicato a
FLOW3Federico Bernardin
TYPO3 Forge
T3Camp ItaliaL’evento italiano dedicato a
FLOW3Federico Bernardin
TYPO3 come framework
T3Camp ItaliaL’evento italiano dedicato a
FLOW3Federico Bernardin
TYPO3 come framework
TYPO3 non è solo un CMS ma bensì un framework, fornendo una serie di librerie che aiutano a gestire le varie funzionalità, senza la necessità di scrivere ridondanti funzioni.
T3Camp ItaliaL’evento italiano dedicato a
FLOW3Federico Bernardin
TYPO3 come framework
TYPO3 non è solo un CMS ma bensì un framework, fornendo una serie di librerie che aiutano a gestire le varie funzionalità, senza la necessità di scrivere ridondanti funzioni.
L’estensione extdeveval, permette di aggiungere nella barra superiore di TYPO3 un’icona che permette di vedere le varie classi e funzioni che TYPO3 mette a disposizione per gli sviluppatori
T3Camp ItaliaL’evento italiano dedicato a
FLOW3Federico Bernardin
TYPO3 come framework
TYPO3 non è solo un CMS ma bensì un framework, fornendo una serie di librerie che aiutano a gestire le varie funzionalità, senza la necessità di scrivere ridondanti funzioni.
L’estensione extdeveval, permette di aggiungere nella barra superiore di TYPO3 un’icona che permette di vedere le varie classi e funzioni che TYPO3 mette a disposizione per gli sviluppatori
Un’alternativa è andare ad api.typo3.org, dove potete trovare la lista completa delle funzioni all’interno del sistema.
T3Camp ItaliaL’evento italiano dedicato a
FLOW3Federico Bernardin
I test
T3Camp ItaliaL’evento italiano dedicato a
FLOW3Federico Bernardin
I test
Una delle parti più complesse e importanti dello sviluppo di un plugin sono i test.
T3Camp ItaliaL’evento italiano dedicato a
FLOW3Federico Bernardin
I test
Una delle parti più complesse e importanti dello sviluppo di un plugin sono i test.
In genere in PHP esiste PHP Unit Test che fornisce una serie di librerie per poter effettuare dei test sul software realizzato.
T3Camp ItaliaL’evento italiano dedicato a
FLOW3Federico Bernardin
I test
Una delle parti più complesse e importanti dello sviluppo di un plugin sono i test.
In genere in PHP esiste PHP Unit Test che fornisce una serie di librerie per poter effettuare dei test sul software realizzato.
L’estensione PHP Unit (<phpunit>) di TYPO3 ci da la possibilità di testare e verificare i nostri test case.
T3Camp ItaliaL’evento italiano dedicato a
FLOW3Federico Bernardin
I test
Una delle parti più complesse e importanti dello sviluppo di un plugin sono i test.
In genere in PHP esiste PHP Unit Test che fornisce una serie di librerie per poter effettuare dei test sul software realizzato.
L’estensione PHP Unit (<phpunit>) di TYPO3 ci da la possibilità di testare e verificare i nostri test case.
I test diventano importanti nei casi in cui un piccolo refactor potrebbe modificare il comportamento del codice, riducendo fortemente i tempi di test.
T3Camp ItaliaL’evento italiano dedicato a
FLOW3Federico Bernardin
Scelta del paradigma
T3Camp ItaliaL’evento italiano dedicato a
FLOW3Federico Bernardin
Scelta del paradigma
In TYPO3 abbiamo due soluzioni fondamentali (incorporate direttamente del sistema) per sviluppare il nostro plugin.
T3Camp ItaliaL’evento italiano dedicato a
FLOW3Federico Bernardin
Scelta del paradigma
In TYPO3 abbiamo due soluzioni fondamentali (incorporate direttamente del sistema) per sviluppare il nostro plugin.
Effettuando l’extend della classe tslib_pibase possiamo sviluppare un plugin con il paradigma OOP (Object Oriented Programming). Questa classe ci fornisce una serie di funzionalità base utili per implementare la nostra estensione.
T3Camp ItaliaL’evento italiano dedicato a
FLOW3Federico Bernardin
Scelta del paradigma
In TYPO3 abbiamo due soluzioni fondamentali (incorporate direttamente del sistema) per sviluppare il nostro plugin.
Effettuando l’extend della classe tslib_pibase possiamo sviluppare un plugin con il paradigma OOP (Object Oriented Programming). Questa classe ci fornisce una serie di funzionalità base utili per implementare la nostra estensione.
Un’alternativa più nuova è sicuramente l’utilizzo di un paradigma MVC (model view controller). L’associazione ha creato un’estensione (<extbase>) che permette di utilizzare il paradigma MVC dentro la nostra estensione.
T3Camp ItaliaL’evento italiano dedicato a
FLOW3Federico Bernardin
Scelta del paradigma
In TYPO3 abbiamo due soluzioni fondamentali (incorporate direttamente del sistema) per sviluppare il nostro plugin.
Effettuando l’extend della classe tslib_pibase possiamo sviluppare un plugin con il paradigma OOP (Object Oriented Programming). Questa classe ci fornisce una serie di funzionalità base utili per implementare la nostra estensione.
Un’alternativa più nuova è sicuramente l’utilizzo di un paradigma MVC (model view controller). L’associazione ha creato un’estensione (<extbase>) che permette di utilizzare il paradigma MVC dentro la nostra estensione.
Extbase è nata per permettere di creare applicazioni MVC FLOW3-compatibili.
T3Camp ItaliaL’evento italiano dedicato a
FLOW3Federico Bernardin
Documentazione
T3Camp ItaliaL’evento italiano dedicato a
FLOW3Federico Bernardin
Documentazione
Lo sviluppo di un’estensione deve essere sempre accompagnata da documentazione che descrive il funzionamento tecnico del codice e soprattutto di documentazione di utilizzo.
T3Camp ItaliaL’evento italiano dedicato a
FLOW3Federico Bernardin
Documentazione
Lo sviluppo di un’estensione deve essere sempre accompagnata da documentazione che descrive il funzionamento tecnico del codice e soprattutto di documentazione di utilizzo.
Tramite il sito typo3.org è possibile scaricare l’estensione (<doc_template>) che contiene il manuale che dovrebbe essere poi usato per scrivere la documentazione di utilizzo della nostra estensione.
T3Camp ItaliaL’evento italiano dedicato a
FLOW3Federico Bernardin
Documentazione
Lo sviluppo di un’estensione deve essere sempre accompagnata da documentazione che descrive il funzionamento tecnico del codice e soprattutto di documentazione di utilizzo.
Tramite il sito typo3.org è possibile scaricare l’estensione (<doc_template>) che contiene il manuale che dovrebbe essere poi usato per scrivere la documentazione di utilizzo della nostra estensione.
Un’estensione senza manuale è un’estensione inutile e nel futuro potrebbero essere eliminate le estensioni senza manuale d’uso.
T3Camp ItaliaL’evento italiano dedicato a
FLOW3Federico Bernardin
Documentazione
Lo sviluppo di un’estensione deve essere sempre accompagnata da documentazione che descrive il funzionamento tecnico del codice e soprattutto di documentazione di utilizzo.
Tramite il sito typo3.org è possibile scaricare l’estensione (<doc_template>) che contiene il manuale che dovrebbe essere poi usato per scrivere la documentazione di utilizzo della nostra estensione.
Un’estensione senza manuale è un’estensione inutile e nel futuro potrebbero essere eliminate le estensioni senza manuale d’uso.
Il manuale dovrebbe essere scritto, anche in minima parte, ancor prima di scrivere il codice
T3Camp ItaliaL’evento italiano dedicato a
FLOW3Federico Bernardin
Alcuni consigli
T3Camp ItaliaL’evento italiano dedicato a
FLOW3Federico Bernardin
Alcuni consigli
Fare un’analisi molto dettagliata, non lasciando troppe incognite che richiedano poi un rifacimento dell’analisi.
T3Camp ItaliaL’evento italiano dedicato a
FLOW3Federico Bernardin
Alcuni consigli
Fare un’analisi molto dettagliata, non lasciando troppe incognite che richiedano poi un rifacimento dell’analisi.
Stabilire sulla base dell’applicazione il paradigma da usare: OOP come tslib_pibase oppure MVC con extbase, valutando attentamente i pro e i contro.
T3Camp ItaliaL’evento italiano dedicato a
FLOW3Federico Bernardin
Alcuni consigli
Fare un’analisi molto dettagliata, non lasciando troppe incognite che richiedano poi un rifacimento dell’analisi.
Stabilire sulla base dell’applicazione il paradigma da usare: OOP come tslib_pibase oppure MVC con extbase, valutando attentamente i pro e i contro.
Cercare sempre sul TER se esistono estensioni già sviluppate ed affidabili che possano essere usate estendendole così da evitare di scrivere codice.
T3Camp ItaliaL’evento italiano dedicato a
FLOW3Federico Bernardin
Alcuni consigli
Fare un’analisi molto dettagliata, non lasciando troppe incognite che richiedano poi un rifacimento dell’analisi.
Stabilire sulla base dell’applicazione il paradigma da usare: OOP come tslib_pibase oppure MVC con extbase, valutando attentamente i pro e i contro.
Cercare sempre sul TER se esistono estensioni già sviluppate ed affidabili che possano essere usate estendendole così da evitare di scrivere codice.
Creare il codice in modo che possano essere usate le unit test per effettuare i test dell’applicazione.
T3Camp ItaliaL’evento italiano dedicato a
FLOW3Federico Bernardin
Alcuni consigli
Fare un’analisi molto dettagliata, non lasciando troppe incognite che richiedano poi un rifacimento dell’analisi.
Stabilire sulla base dell’applicazione il paradigma da usare: OOP come tslib_pibase oppure MVC con extbase, valutando attentamente i pro e i contro.
Cercare sempre sul TER se esistono estensioni già sviluppate ed affidabili che possano essere usate estendendole così da evitare di scrivere codice.
Creare il codice in modo che possano essere usate le unit test per effettuare i test dell’applicazione.
Inserire i commenti javadoc per essere poi usati da applicazioni di analisi dei commenti.
T3Camp ItaliaL’evento italiano dedicato a
FLOW3Federico Bernardin
T3Camp ItaliaL’evento italiano dedicato a
FLOW3Federico Bernardin
Buon sviluppo a tuttisia in OOP che in MVC!!