Open Web Studio (Roberto Caporale)

Post on 01-Dec-2014

992 views 3 download

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.

transcript

Open Web Studioun altro modo per sviluppare “rapidamente” con

DotNetNuke

Roberto Caporaleroberto@bizcomit.it

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

Roberto Caporalehttp://www.bizcomit.itroberto@bizcomit.it

DOMANDE?

sabato 28 maggio 2011