Upload
dotnetmarche
View
995
Download
3
Embed Size (px)
DESCRIPTION
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.
Citation preview
Open Web Studioun altro modo per sviluppare “rapidamente” con
DotNetNuke
Roberto [email protected]
sabato 28 maggio 2011
Cos’e’ OWS
• Un modulo di DotNetNuke
• Un ambiente di sviluppo Rad
• Un framework estendibile
sabato 28 maggio 2011
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
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
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
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
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
Ecco com’e’...
sabato 28 maggio 2011
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
Configuration
• General settings
• Code Tree
• Actions (azioni, template...)
• Script, Variables, Formatters
• persistite nel DB con serializzazione JSON
• con versioning !!
sabato 28 maggio 2011
Actions
• Actions
• eseguono comandi
• deteminano il flusso di esecuzione
• input / output
• esempi : QUERY, INPUT, IF, LOOP...
sabato 28 maggio 2011
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
Script
• Azioni o comandi da eseguire nei template
• sintassi { ... }
• tranne [FORMAT,,{...}]
sabato 28 maggio 2011
Formatters
• Trasformano un valore in un altro...
• si applicano allo script
• [FORMAT,valore,{formatter}]
sabato 28 maggio 2011
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
L’ambiente : Actions
sabato 28 maggio 2011
Home
• Operazioni sulle configurazioni
• new, open..
• Import / Export (JSON)
• Publish
sabato 28 maggio 2011
General
sabato 28 maggio 2011
Tools
• Gestisce il Repository del codice
• possibilità di Revert & Rollback
• Debugger & Event Viewer
sabato 28 maggio 2011
iniziamo...
sabato 28 maggio 2011
DEMO
• un modulo per editare le pagine in blocco
• 1) autonomo...
• 2) uso del query builder....
sabato 28 maggio 2011
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
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
Ajax
• Chiamate Ajax built-in
• ows.fetch( ModuleId, TabId, ‘querystring’ [, container] )
• due modalità
• Ajax
• Ajax Enhancement Interaction
sabato 28 maggio 2011
Debugger
sabato 28 maggio 2011
Estendibilità
• è possibile creare custom Action, Formatters, Query...
• openwebstudio.dotnetnuke_extensions.config
sabato 28 maggio 2011
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
FILEDOWNLOAD :
• Custom Query
• DEMO
sabato 28 maggio 2011
BookingEngine :
• Custom Query + DNN Scheduler
• DEMO
sabato 28 maggio 2011
BookingEngine :
• Custom Query + DNN Scheduler
• DEMO
sabato 28 maggio 2011
BookingEngine :
• Custom Query + DNN Scheduler
• DEMO
sabato 28 maggio 2011
BookingEngine :
• Custom Query + DNN Scheduler
• DEMO
sabato 28 maggio 2011
BookingEngine :
• Custom Query + DNN Scheduler
• DEMO
sabato 28 maggio 2011
Conclusioni
• Rapidità di sviluppo
• Online, adatto alla condivisione
• Potente, estendibile, veloce
sabato 28 maggio 2011