In questo talk si parlerà dell’integrazione della libreria javascript Dojo Toolkit nello Zend Framework e di come sia possibile sviluppare applicazioni RIA direttamente da PHP senza dover scrivere codice in javascript.In particolare verranno presentati i seguenti argomenti: integrare le widget Dijit con Zend_View, Form 2.0 con Zend_Form e Dojo e creare un datastore remoto con Zend_Dojo_Data.
Drupal 8 - dal download del core alla pubblicazione in produzionesparkfabrik
Inizializzare una nuova installazione Drupal è una procedura un po' più tricky rispetto al passato. Cos'è cambiato? Cos'è il Configuration Management e come dovremo scrivere le nostre Feature? Di cosa dobbiamo tenere conto nello scrivere i nostri moduli? Una volta risposto a queste domande c'è da portare tutto in stage e successivamente in produzione in maniera sicura ed indolore magari automatizzando il tutto, se possibile.
Drupal 8 - dal download del core alla pubblicazione in produzionesparkfabrik
Inizializzare una nuova installazione Drupal è una procedura un po' più tricky rispetto al passato. Cos'è cambiato? Cos'è il Configuration Management e come dovremo scrivere le nostre Feature? Di cosa dobbiamo tenere conto nello scrivere i nostri moduli? Una volta risposto a queste domande c'è da portare tutto in stage e successivamente in produzione in maniera sicura ed indolore magari automatizzando il tutto, se possibile.
Blazor è un framework per la creazione di Single Page Application (SPA) tramite l’utilizzo di C#.
Creato da Steve Sanderson e successivamente inserito in .NET Core come esperimento.
Visto l’enorme successo avuto sulla community è stato poi deciso di renderlo parte integrante dell’ecosistema .NET
Offre tutti i vantaggi di un framework front-end scrivendo codice interamente in C#.
Sviluppo Web con React e Delphi - Seminario Delphi Day 2016, PiacenzaMarco Breveglieri
Slide del seminario sull'uso di React con Delphi e confronto con altre tecnologie (es. ExtJS) per lo sviluppo Web, tenuto al Delphi Day 2016 a Piacenza.
I sorgenti sono disponibili qui:
https://github.com/marcobreveglieri/conferences/tree/master/2016/delphi_day_2016
I linguaggi del web - seconda edizione (3° giornata)Diego La Monica
Modulo 4 – AJAX
- Interazioni client/server
- Framework a confronto:
- jQuery
- Mootools
- YUI
- JAST
Modulo 5 – ARIA e l’accessibilità lato client
- Prendere un po' di ARIA
- Le tecnologie assistive
- Ruoli, stati e proprietà
- Strumenti per lo sviluppo accessibile
Una panoramica dei principali sistemi di storage offerti dai browser a supporto delle Progressive Web Application e non solo. In particolar modo ci concentrammo su Web Storage and IndexedDB.
Teaching about:
- Web Standards
- HTML/XHTML and CSS
- Javascript
- DOM
- Frameworks,
- AJAX,
- Cross-Browser Developement
- Web Accessibility and WAI-ARIA,
- Developing and testing tools
Una panoramica sulle diverse possibilità offerte da Spring per applicazioni RIA realizzate in Flex: Spring sul server per l'implementazione di un backend con serializzazione nativa AMF3 con Spring BlazeDS integration, Spring sul client con Spring ActionScript e Spring come usato dallo streaming server opensource Red5 per la realizzazione di applicazioni video. Presentazione tenuta allo Spring Framework Meeting di Settembre 2009 a Cagliari.
In questa presentazione verrà introdotto brevemente il concetto di RIA (Rich Internet Application), di Framework e fondendo i due concetti verranno presentati alcuni dei più conosciuti Framework per la realizzazione di RIA. Visualizza la presentazione.
Piccole, medie e grandi strategie per la presentazione, l'interazione e la manipolazione delle pagine web tramite fogli di stile, client-scripting e uso del DOM.
Community Tour 2009, Microsoft Italia e UGIAL.NET
Questo seminario web, originariamente ideato da Matthew Weier O'Phinney, Team Leader del progetto Zend Framework, fornisce una panoramica di questi pattern, li identifica e tratta le interfacce coinvolte e i casi d'uso concreti. Enrico Zimuel, Senior PHP Architect italiano, che recentemente si è unito al team di sviluppo dello Zend Framework, mostrerà come sia possibile creare le proprie implementazioni e come effettuarne lo slip-stream nelle applicazioni. Fra i pattern discussi: eventi, broker e dispatcher.
REST è lo stile architetturale a cui aderisce quello che oggi noi chiamiamo Web. Uno dei problemi storici della programmazione di applicazioni web è l’impendance mismatch fra vari modelli computazionali e di dati (REST, Object Oriented, Relational Model, ecc…). Questa sessione ha lo scopo di evidenziare la problematica con relativi esempi, soluzioni e risultati ottenuti con l’utilizzo di PHP.
Drupal può essere considerato un CMS che permette una rapida creazione di portali con funzionalità abbastanza standard, ma può anche essere considerato uno strumento usato per la creazione ditrumento usato per la creazione di siti usando le potenzialità di framework che lo strumento presenta.
In questo intervento verranno presentate le API del sistema che permettono una ampia espandibilità e velocità di scrittura di codice. Inoltre verrà descritta l’anatomia di un modulo presentandone la struttura e come questo interagisca con il sistema di base.
L’intervento chiuderà con una carrellata di vantaggi e svantaggi dell’uso di Drupal mettendone in evidenza la differenza dai classici framework
Blazor è un framework per la creazione di Single Page Application (SPA) tramite l’utilizzo di C#.
Creato da Steve Sanderson e successivamente inserito in .NET Core come esperimento.
Visto l’enorme successo avuto sulla community è stato poi deciso di renderlo parte integrante dell’ecosistema .NET
Offre tutti i vantaggi di un framework front-end scrivendo codice interamente in C#.
Sviluppo Web con React e Delphi - Seminario Delphi Day 2016, PiacenzaMarco Breveglieri
Slide del seminario sull'uso di React con Delphi e confronto con altre tecnologie (es. ExtJS) per lo sviluppo Web, tenuto al Delphi Day 2016 a Piacenza.
I sorgenti sono disponibili qui:
https://github.com/marcobreveglieri/conferences/tree/master/2016/delphi_day_2016
I linguaggi del web - seconda edizione (3° giornata)Diego La Monica
Modulo 4 – AJAX
- Interazioni client/server
- Framework a confronto:
- jQuery
- Mootools
- YUI
- JAST
Modulo 5 – ARIA e l’accessibilità lato client
- Prendere un po' di ARIA
- Le tecnologie assistive
- Ruoli, stati e proprietà
- Strumenti per lo sviluppo accessibile
Una panoramica dei principali sistemi di storage offerti dai browser a supporto delle Progressive Web Application e non solo. In particolar modo ci concentrammo su Web Storage and IndexedDB.
Teaching about:
- Web Standards
- HTML/XHTML and CSS
- Javascript
- DOM
- Frameworks,
- AJAX,
- Cross-Browser Developement
- Web Accessibility and WAI-ARIA,
- Developing and testing tools
Una panoramica sulle diverse possibilità offerte da Spring per applicazioni RIA realizzate in Flex: Spring sul server per l'implementazione di un backend con serializzazione nativa AMF3 con Spring BlazeDS integration, Spring sul client con Spring ActionScript e Spring come usato dallo streaming server opensource Red5 per la realizzazione di applicazioni video. Presentazione tenuta allo Spring Framework Meeting di Settembre 2009 a Cagliari.
In questa presentazione verrà introdotto brevemente il concetto di RIA (Rich Internet Application), di Framework e fondendo i due concetti verranno presentati alcuni dei più conosciuti Framework per la realizzazione di RIA. Visualizza la presentazione.
Piccole, medie e grandi strategie per la presentazione, l'interazione e la manipolazione delle pagine web tramite fogli di stile, client-scripting e uso del DOM.
Community Tour 2009, Microsoft Italia e UGIAL.NET
Questo seminario web, originariamente ideato da Matthew Weier O'Phinney, Team Leader del progetto Zend Framework, fornisce una panoramica di questi pattern, li identifica e tratta le interfacce coinvolte e i casi d'uso concreti. Enrico Zimuel, Senior PHP Architect italiano, che recentemente si è unito al team di sviluppo dello Zend Framework, mostrerà come sia possibile creare le proprie implementazioni e come effettuarne lo slip-stream nelle applicazioni. Fra i pattern discussi: eventi, broker e dispatcher.
REST è lo stile architetturale a cui aderisce quello che oggi noi chiamiamo Web. Uno dei problemi storici della programmazione di applicazioni web è l’impendance mismatch fra vari modelli computazionali e di dati (REST, Object Oriented, Relational Model, ecc…). Questa sessione ha lo scopo di evidenziare la problematica con relativi esempi, soluzioni e risultati ottenuti con l’utilizzo di PHP.
Drupal può essere considerato un CMS che permette una rapida creazione di portali con funzionalità abbastanza standard, ma può anche essere considerato uno strumento usato per la creazione ditrumento usato per la creazione di siti usando le potenzialità di framework che lo strumento presenta.
In questo intervento verranno presentate le API del sistema che permettono una ampia espandibilità e velocità di scrittura di codice. Inoltre verrà descritta l’anatomia di un modulo presentandone la struttura e come questo interagisca con il sistema di base.
L’intervento chiuderà con una carrellata di vantaggi e svantaggi dell’uso di Drupal mettendone in evidenza la differenza dai classici framework
Il pagamento è un momento critico che può fare la differenza tra un sito di successo ed uno che non genera abbastanza business.
Attraverso vari strumenti PayPal offre la possibilità di poter gestire in tutta sicurezza gli incassi nel mondo online. In questo intervento verranno presentate le differenti modalità di integrazione dei prodotti PayPal illustrando i vari step (dalla sandbox al rilascio in produzione) necessari a creare rapidamente un’integrazione di successo.
Zend Server Community Edition (CE) è un Web Application Server gratuito semplice da istallare e facile da usare. E’ la
soluzione ideale ed è l’ideale per le applicazioni PHP semplici o solo per sperimentare.
Zend Server è un Web Application Server completo e di livello enterprise, concepito per gestire le applicazioni PHP
che necessitano un alto livello di affidabilità, prestazioni e sicurezza. Chi usa Zend Server può beneficiare del
supporto tecnico di Zend ed ottenere velocemente gli aggiornamenti, le correzioni ai bug, le patch relative alla
sicurezza.
La tecnica di programmazione ad eventi ormai è diventata sempre più diffusa ed utilizzata in molti linguaggi di programmazione, si vuole quindi analizzare come questo tipo di programmazione viene utilizzata nei diversi linguaggi di programmazione. Poichè php ancora non supporta questo tipo di programmazione si mostrerà come in realtà è molto semplice implementare un oggetto che utilizzi la programmazione ad eventi. Verranno quindi messi in evidenza i vantaggi di questa tecnica in termini di riusabilità del codice scritto. Una volta compreso il meccanismo della programmazione ad eventi verrà presentata una semplice classe per la gestione di una generica coda di messaggi. Una volta presentata la teoria, quindi si vedrà come si possono mettere in pratica queste tecniche apprese, per lo sviluppo di una semplice applicazione web, che utilizzi sia la coda dei messaggi, sia gli eventi.
Joomla! 1.5: CMS a mani tese verso gli sviluppatoriGrUSP
Joomla! è un CMS ritenuto troppo spesso una soluzione esclusivamente for dummies : in questo intervento cercheremo di sfatare questa convinzione andando ad analizzare le feature che la versione 1.5 ha “introdotto” a favore degli sviluppatori.
Verranno proposte, per ogni capitolo del talk, slide introduttive e di approfondimento, concludendo con un case study per ogni tematica proposta.
Obiettivo del talk sarà quello di comprendere quanto Joomla! sia una soluzione che offre grandi vantaggi fondendo abbattimento di costi, elevata relazionabilità con il cliente finale e buona estendibilità per le esigenze dello sviluppatore.
Symfony 2.0 is a major step forward for the symfony project. This new version introduces new concepts and new components, and make the framework even more decoupled and flexible than before. As an added bonus, the framework is also more lightweight and much faster. This session will give you a feeling of the power of Symfony 2.0 by introducing the main new components of the framework.
I test unitari sono sempre più utilizzati per verificare la correttezza del codice che scriviamo.
Ci si trova però a volte di fronte a codice scritto in maniera poco "disaccoppiata". Questo può impedirci di sostituire a runtime dei Dependent-on Object con dei Mock Object o degli Stub. Nel talk descriverò un plugin scritto per symfony (ma utilizzabile anche in altri ambiti) che permette di sostituire delle classi a runtime ridefinendole e configurandole all'interno dei test, creando un ambiente che isola il codice da verificare.
Il talk prevederà degli esempi pratici di utilizzo dello strumento descritto.
2. Sommario
• Che cos'è lo Zend Framework (ZF)?
• Che cos'è Dojo?
• L'architettura di Dojo
• Configurare l'ambiente Dojo in ZF: il view
helper dojo()
• Utilizzo dei widgets Dijit nello Zend_View
• Form 2.0 con Zend_Form e Dojo
3. Zend Framework
• Framework PHP open source
Semplicità di utilizzo
Architettura flessibile
Funzionalità Web 2.0
• Web services
• Ajax (integrazione Dojo, Adobe Flex)
Codice di qualità (testato con PHPUnit)
• Scritto in PHP 5, Object Oriented, MVC
• Versione 1.8.1, download ed info:
http://framework.zend.com/
Name of this section | | 3
May 15, 2009
4. Dojo
• Dojo è una libreria JavaScript open
source per la realizzazione di Rich Internet
Applications (RIA)
• Caratteristiche principali:
performance;
affidabilità;
ampia disponibilità funzioni:
http://dojotoolkit.org/
manipolazione DOM, animazioni, Ajax,
gestione Eventi e normalizzazione
keyboard
Supporto multi-browser (Firefox, IE,
Safari, Opera, etc)
internazionalizzazione (i18n) e
accessibilità (a11y)
| | 4
May 15, 2009
5. Dojo: curiosità
• Dōjō, è un termine giapponese che significa
etimologicamente luogo (jō) dove si segue la via (dō)
道場
| | 5
May 15, 2009
7. Dojo: esempi
http://demos.dojotoolkit.org
| | 7
May 15, 2009
8. Zend Framework e Dojo
• Disponibile a partire dalla versione 1.6 dello Zend
Framework
• Dojo view helper per la gestione dell'ambiente
Dojo
• View helpers di tipo Dijit per la creazione di form
ed elementi
• Gestione delle strutture dojo.data con la classe
Zend_Dojo_Data
• JSON-RPC implementazione server
| | 8
May 15, 2009
9. Supporto Dijit
• Supporto della maggior parte dei componenti dijits
(Dojo widgets)
• Utilizzo di view helpers per il rendering dei dijits
I dijits sono generati automaticamente (default)
Possibilità di specificare lo stile di generazione
• Form decorators per i layout ed i form dijits
Utilizzo di layout dijit decorators specifici per
forms, sub forms e gruppi di visualizzazione
• Gestione degli elementi di un form dijits
Mappatura con i dijit view helpers
| | 9
May 15, 2009
12. dojo.data Payload
• dojo.data è una struttura dati utilizzata dai
componenti Dojo
• Zend_Dojo_Data gestisce la generazione di
strutture dati compatibili con dojo.data
• Possibilità di gestire ogni oggetto (arrays,
Iterators, etc.) tramite un identificatore utilizzato
poi per la creazione di una struttura JSON
(JavaScript Object Notation).
• JSON è un formato adatto per lo scambio dei dati
in applicazioni client-server
| | 12
May 15, 2009
13. Esempio di struttura dati in JSON
{
quot;typequot;: quot;menuquot;,
quot;valuequot;: quot;Filequot;,
quot;itemsquot;: [
{quot;valuequot;: quot;Newquot;, quot;actionquot;: quot;CreateNewDocquot;},
{quot;valuequot;: quot;Openquot;, quot;actionquot;: quot;OpenDocquot;},
{quot;valuequot;: quot;Closequot;, quot;actionquot;: quot;CloseDocquot;}
]
}
• Formato: { “etichetta” : “valore” }
| | 13
May 15, 2009
14. Supporto JSON-RPC
• JSON-RPC è un protocollo di Remote Procedure
Call che utilizza JSON per la serializzazione dei
messaggi
• Lo schema JSON specifica il Service Mapping
Description (SMD) per la definizione dei metodi
disponibili
• Zend_Json_Server implementa un server di tipo
JSON-RPC con il supporto SMD
• Utilizzato principalmente nello sviluppo di
applicazioni client “pesanti” dove il codice client
è incluso in una View del modello MVC
| | 14
May 15, 2009
15. dojo() View Helper
• Impostazione dell'ambiente dojo
$view->addHelperPath('Zend/Dojo/View/Helper/',
'Zend_Dojo_View_Helper');
• Percorso delle librerie javascript (CDN o locale)
$view->dojo()->setLocalPath('...')
• Impostazione dei paths per I moduli personalizzati
$view->dojo()->registerModulePath('...')
• Impostazione del dojo.require per l'inclusione
arbitraria di moduli dojo
$view->dojo()->requireModule('...')
• Impostazione dell'evento onLoad
| | 15
May 15, 2009
16. dojo() View Helper - temi
• Dojo consente la creazione di temi personalizzati per
i dijits (widgets).
$view->dojo()->
addStylesheetModule('dijit.themes.tundra');
• Il path del tema è ricostruito sostituendo al '.' il
separatore di directory ed utilizzando l'ultimo valore
come nome del file .CSS.
• dijit.themes.tundra -> dijit/themes/tundra/tundra.css
• Quando si utilizza un tema è necessario impostarlo
nel file HTML, il metodo più sicuro è includerlo nel
body: <body class=”tundra”>
| | 16
May 15, 2009
17. Dijit-Specific View Helpers
• “Dijit è un sistema di elementi grafici (widget)
sviluppato sulla base di dojo” (manuale Dojo)
• Zend Framework fornisce un insieme di view helper
per l'utilizzo di dijit, essi si suddividono in tre
categorie:
Layout Containers
Form Dijit
Form Elements
| | 17
May 15, 2009
18. Using Layers (custom builds)
• Ogni dojo.require effettua una richiesta al server per il
download del relativo file javascript
• Se sono presenti più dijits si avranno numerose
richieste al server con evidenti rallentamenti!!!
• In Dojo c'è la possibilità di creare custom builds
tramite le utils fornite con la libreria
• I file vengono raggruppati in layers (un singolo file JS).
| | 18
May 15, 2009
20. Riferimenti
• Matthew A.Russell “Dojo, the definitive guide”
O'Reilly (2008)
• Rawld Gill, Craig Riecke, Alex Russell “Mastering
Dojo. JavaScript and Ajax Tools for Great Web
Experiences” The Pragmatic Bookshelf (2008)
• Frank Zammetti “Practical Dojo Projects” Apress
(2008)
• Peter Svensson “Learning Dojo” Packt Publishing
(2008)
| | 20
May 15, 2009