Roberto presenterà l'ambiente di sviluppo OpenWebStudio (OWS), che nel mondo dello sviluppo Rad per DotNetNuke ha rappresentato senz'altro una svolta in quanto a potenza e produttività che puo' garantire. Verranno presentati gli aspetti fondamentali della programmazione OWS, la sua particolare filosofia, il sistema di templating, le action, le caratterische legate alla programmazione Ajax ed alla creazione e consumo di servizi web. Verranno inoltre accennate le possibilità di estensione del framework, il tutto corredato da una serie di esempi pratici.
Domain Model e SOA (Service Oriented Architecture)
Open Web Studio (Roberto Caporale)
1. Open Web Studio
un altro modo per sviluppare “rapidamente” con
DotNetNuke
Roberto Caporale
roberto@bizcomit.it
sabato 28 maggio 2011
2. Cos’e’ OWS
• Un modulo di DotNetNuke
• Un ambiente di sviluppo Rad
• Un framework estendibile
sabato 28 maggio 2011
3. Cos’era ?
• Un modulo a pagamento del marketplace
DNN
• Si chiamava ListX categoria dei “form
builder”... “data driven apps”...
• E’ stato reingegnerizzato da quando è
divenuto OpenSource, circa 3 anni fa
sabato 28 maggio 2011
4. Vantaggi
• E’ il sistema più rapido che io conosca per
sviluppare moduli DNN
• ed anche per ASP.NET....
• Combina esigenze di designers e di coding
• Se non “basta” si estende...
• E’ Free e OpenSource ;)
sabato 28 maggio 2011
5. Nello specifico
• Ottimo per moduli di presentation layer
• Fantastico per applicazioni Ajax
• Super per integrarsi con Webservice e
servizi remoti via WS, REST, XML..
• Fichissimo per sviluppare, debuggare LIVE
(è tutto online..!)
sabato 28 maggio 2011
6. Contro...
• Curva di apprendimento non super easy
• Necessità di un cambio di paradigma
nell’approccio allo sviluppo
• Poca documentazione..
• Occhio allo spaghetti-code (che poi code
non è ... :)
sabato 28 maggio 2011
7. Installazione
• http://sourceforge.net/projects/
r2iopenwebstudi/files/r2iopenwebstudio/
• sito ufficiale : www.openwebstudio.com
• si installa come un normale modulo
DotNetNuke (PA module)
sabato 28 maggio 2011
9. Concetti base
• Ogni “programma” in OWS è una
“Configuration”
• Ogni istanza del modulo OWS viene
piazzato in una pagina ed associato ad una
Configuration
sabato 28 maggio 2011
10. Configuration
• General settings
• Code Tree
• Actions (azioni, template...)
• Script,Variables, Formatters
• persistite nel DB con serializzazione JSON
• con versioning !!
sabato 28 maggio 2011
11. Actions
• Actions
• eseguono comandi
• deteminano il flusso di esecuzione
• input / output
• esempi : QUERY, INPUT, IF, LOOP...
sabato 28 maggio 2011
12. Template
• Sorgente dati : Query Template
• Presentazione dati
• header, footer, detail template....
• no results, no query....
• Un solo template “settato” per
configurazione
sabato 28 maggio 2011
13. Script
• Azioni o comandi da eseguire nei template
• sintassi { ... }
• tranne [FORMAT,,{...}]
sabato 28 maggio 2011
14. Formatters
• Trasformano un valore in un altro...
• si applicano allo script
• [FORMAT,valore,{formatter}]
sabato 28 maggio 2011
15. Variables
• Sintassi [nomevariabile, Collection]
• Alcuni namespaces (abbreviato) :
• System (*) , es [*TabId]
• Session , QueryString (Q) ,Form (F)
• Action (A) : variabili custom..
• @variable : tipi speciali per le query
parametriche
sabato 28 maggio 2011
21. DEMO
• un modulo per editare le pagine in blocco
• 1) autonomo...
• 2) uso del query builder....
sabato 28 maggio 2011
22. Presentazione
• Query Template (query in senso lato)
• header (multiply... group by...)
• detail
• footer
• no result
• No Query (per tutto il resto... :)
sabato 28 maggio 2011
23. Comandi al DB
• Action QUERY
• tutto è template....
• accetta @variable (x Sql Injection)
• query SQL o altro...
• iteratore automatico..
• crea [xxx,collection]
• sotto sotto tutto è DataTable
sabato 28 maggio 2011
26. Estendibilità
• è possibile creare custom Action, Formatters,
Query...
• openwebstudio.dotnetnuke_extensions.config
sabato 28 maggio 2011
27. Esempi :
• FILEDOWNLOAD
• estendere un limite della ACTION INPUT
• Esempio Live
• www.nelsalento.com
• chiamate asincrone ad un BookingEngine esposto
via webservice
sabato 28 maggio 2011