Xpages, cosa ci sarà in questa nuova tecnologia

52
Xpages Cosa ci sarà in questa nuova tecnologia Autore: Daniele Grillo Professione: Domino Developer

description

Ho iniziato tre anni fa a parlare di Ajax, per poi affrontare il framework Dojo... ed ora cosa ci aspetta per il futuro? Quante cose nuove dovremo imparare per le nostre applicazioni Web?Le Xpages permettono di realizzare le applicazioni Web con estrema facilità e con una maggiore semplicità manutentiva rispetto al passato.La sessione mostrerà l'utilizzo di questa tecnologia partendo da un'applicazione demo che verrà "smontata" e spiegata nel dettaglio.

Transcript of Xpages, cosa ci sarà in questa nuova tecnologia

Page 1: Xpages, cosa ci sarà in questa nuova tecnologia

Xpages Cosa ci sarà in questa nuova tecnologia

Autore: Daniele Grillo

Professione: Domino Developer

Page 2: Xpages, cosa ci sarà in questa nuova tecnologia

domino point day2009

2

•Cosa sono le Xpages

•Da dove arrivano

•Componenti fondamentali

•Linguaggio di sviluppo ( Client Side / Server Side)

•Esempio Applicazione ( Catalog.nsf)

•Utilizzo in locale ( novità della 8.5.1)

•Suggerimenti

•Cosa ci aspetta per il futuro?

Agenda

Page 3: Xpages, cosa ci sarà in questa nuova tecnologia

domino point day2009

Cosa sono le Xpages

• Un componente aggiuntivo di Lotus Designer

• Un framework di sviluppo basato su componenti ( come i più

comuni linguaggi visuali di programmazione)

• Tecnologia JSF ( java server faces)

• Sfruttano il back-end dei dati Lotus Domino (per ora...)

• Una soluzione Easy per lo sviluppo di applicazioni Web

• Estensione engine HTTP di Domino

• Nascono con la R 8.5 ( meglio usarle nella 8.5.1)

3

Page 4: Xpages, cosa ci sarà in questa nuova tecnologia

domino point day2009

4

Xpages Dojo Dojo +

Page 5: Xpages, cosa ci sarà in questa nuova tecnologia

domino point day2009

Modello MVC

Le Xpages utilizzano il concetto di Model View Control

• L’MVC è la separazione della base dati, dalla logica applicativa di

un’applicazione e dall’interfaccia .

• Impone al programmatore ( ed è un bene) a separare

nettamente la logica applicativa dall’interfaccia e i dati.

• E’ Più facile mantenere nel tempo l’applicazione

• E’ un concetto...

5

Page 6: Xpages, cosa ci sarà in questa nuova tecnologia

domino point day2009

MVC a confronto

6

Model

Sono le Form di Notes

( per ora)

Model

Sono le Form di Notes

( per ora)

View

Sono le Xpages

View

Sono le Xpages

Control Javascrip ( server-side + front side)

Control Javascrip ( server-side + front side)

XPAGES

Model

Sono le Form di Notes

Model

Sono le Form di Notes

View Sono le Form, Viste, Navigatori,

Frameset, Pages, Agent

View Sono le Form, Viste, Navigatori,

Frameset, Pages, Agent

Control

Lotusscript + @formulas

+Agenti

Control

Lotusscript + @formulas

+Agenti

DOMINO CLASSICO

Page 7: Xpages, cosa ci sarà in questa nuova tecnologia

domino point day2009

Da dove arrivano

• Progetto IBM Workplace nato nel 2002 ed

abbandonato nel 2007

• Xpages sono la Lotus Component Designer

• Component Designer Runtime diventa XSP

Runtime

7

Page 8: Xpages, cosa ci sarà in questa nuova tecnologia

domino point day2009

Da cosa sono composte

• Controlli ( Core, Container, Altri)

• Componenti ( blocchi di codice riutilizzabili,

concetto simile alle sub.form)

• Sorgente dati ( per ora Form di domino e

viste)

• Altro ( CSS, codice X/HTML aggiuntivo, JS)

8

Page 9: Xpages, cosa ci sarà in questa nuova tecnologia

domino point day2009

I Controlli

9

Oggetti già pronti all’uso

che si inseriscono nella

Xpages con semplici

trascinamenti sulla

pagina ( drag&drop)

Page 10: Xpages, cosa ci sarà in questa nuova tecnologia

domino point day2009

Controlli personalizzati

10

Rappresentano

blocchi applicativi

riusabili.

Esempio: Footer,

Header..etc..

Page 11: Xpages, cosa ci sarà in questa nuova tecnologia

domino point day2009

Sorgente dati

11

Rappresenta la

sorgente dati alla

quale ci si collega

per gestire il

binding dei dati

dalla Xpages al

back-end.

Il bindig è l’associazione con la sorgente dati....non è

più “ovvia” la relazione FORM/CAMPO

Page 12: Xpages, cosa ci sarà in questa nuova tecnologia

domino point day2009

Codice X/HTML nel sorgente XML

12

Page 13: Xpages, cosa ci sarà in questa nuova tecnologia

domino point day2009

I TEMI

Meta fogli di stile che vengono applicati al

rendering delle xpages prima che vengano

applicati i fogli di stile delle stesse.

Prima ancora di essere mandato al browser viene

applicato il tema che può eseguire codice JSS

per decidere cosa servire...esempio in base

Browser utilizzato nell’header di una richiesta

13

Page 14: Xpages, cosa ci sarà in questa nuova tecnologia

domino point day2009

14

Page 15: Xpages, cosa ci sarà in questa nuova tecnologia

domino point day2009

Variabili Scope

Permettono finalmente di utilizzare variabili d’ambiente senza utilizzare campi,

documenti profilo o workaround vari (cookies etc..)

• SessionScope: variabili di sessione validi per ogni sessione istanziata da ogni

utente collegato ( vive all’apertura della sessione e muore alla chiusura)

• ApplicationScope variabile globale fin tanto che è aperta l’applicazione è

globale a qualunque sessione utente

• ViewScope variabile valida localmente nella componente View corrente

• RequestScope variabile che esiste per la pagina corrente

15

Page 16: Xpages, cosa ci sarà in questa nuova tecnologia

domino point day2009

3 elementi...

• View Component

• Repeater Component

• Core Component

16

Page 17: Xpages, cosa ci sarà in questa nuova tecnologia

domino point day2009

View Component

• Ha le funzioni 1:1 vista Domino ( checkbox,

ordinamenti, valori)

• E’ personalizzabile

• Ha diverse proprietà per effettuare ricerche,

filterbyCategory

• Ha un pager di navigazione personalizzabile

• Valore colonne programmabili dinamicamente

17

Page 18: Xpages, cosa ci sarà in questa nuova tecnologia

domino point day2009

View Component

18

Page 19: Xpages, cosa ci sarà in questa nuova tecnologia

domino point day2009

Repeater Component

Un componente (fantastico! N.d.r) che può scorrere i seguenti

oggetti ( come un ciclo FOR)

• Viste

• DocumentCollection

• Array (es. La risultante di una @dbcolumn)

• Vettore (un elemento a dimensione dinamica )

n.b. La variabile del repeater è case sensitive, e dobbiamo stare

attenti a generare il codice HTML corretto in funzione del repeat

19

Page 20: Xpages, cosa ci sarà in questa nuova tecnologia

domino point day2009

Repeater Component

20

Page 21: Xpages, cosa ci sarà in questa nuova tecnologia

domino point day2009

Core Component

21

Nome Componente Binding Domino

EditBox Text/Number Field

Date Time Picker Date Time Field

Label Computed Text

RichText RichText Field

File Upload RichText Filed

File Download RichText Field

ListBox ListBox Field

CheckBox CheckBox Field

RadioButton RadioButton Field

Button Button

Page 22: Xpages, cosa ci sarà in questa nuova tecnologia

domino point day2009

Core Component

22

Page 23: Xpages, cosa ci sarà in questa nuova tecnologia

domino point day2009

Come agire sui controlli...

23

In tutte le proprietà di un componente programmabili ( se appare un rombo azzurro a

fianco della proprietà allora è possibile manipolare la stessa) è possibile agire con JSS

(javascript server side) per manipolare per esempio:

• Visibilità

• Default Value

• URL ( componente link o immagine)

• e tutte le proprietà programmabili

Page 24: Xpages, cosa ci sarà in questa nuova tecnologia

domino point day2009

JSS ( javascript server side)

Non stravolge il modo di programmare Lotus, in quanto sono state messe a

disposizione tutte le classi Domino (identiche a quelle LotusScript) e oltre il

90% delle @formulas con la stessa nomenclatura di metodi e proprietà!

Inoltre JSS da la possibilità di utilizzare estensioni Java

(Esempio: John Mackey ha utilizzato la libreria JDBC per mettere insieme DB

relazionali insieme ai dati Domino sulla stessa pagina)

24

Page 25: Xpages, cosa ci sarà in questa nuova tecnologia

domino point day2009

Demo – catalog.nsf

Obiettivo: Un catalogo delle applicazioni alimentato dai BP

accreditati consultabile dagli utenti web

Ruolo BP: Avere un pannello di controllo per inserire nuove

applicazioni

Ruolo Utente: Accesso anomimo che sfoglia le applicazioni per

categoria o per data

25

Page 26: Xpages, cosa ci sarà in questa nuova tecnologia

domino point day2009

26

Page 27: Xpages, cosa ci sarà in questa nuova tecnologia

domino point day2009

Demo Live!

Link Applicazione

27

Page 28: Xpages, cosa ci sarà in questa nuova tecnologia

domino point day2009

Da cosa è composta

28

Lato Domino ( back-End)

- FormBP

- Form Applicazione

- Form Configurazione

Lato Xpages ( front-End)

- HomePage

- ApplicationByCategory

- BusinessPartner

- Application

Page 29: Xpages, cosa ci sarà in questa nuova tecnologia

domino point day2009

29

BP type

CodeBP [text]

NameBP [text]

AddressBP [text]

CapBP [text]

CityBP [text]

ReferenceB

P

[text]

URL Web

Site

[text]

LogoBP [richtext]

Username [names]

Application type

CodeBP [text]

ApplicationDate [date/time]

ApplicationName [text]

ApplicationCategory [listbox]

ApplicationDescription [richtext]

ApplicationLogo [richtext]

ApplicationScrenShot [richtext]

ApplicationBrochure [richtext]

1:n

Ogni Bp registrato potrà inserire N applicazioni nel sistema

Page 30: Xpages, cosa ci sarà in questa nuova tecnologia

domino point day2009

Pagina di partenza + layout

30

4 Custom Control collegati:

BannerDojo

MenuBar

ViewHomePage

FooterApplication

4 Custom Control collegati:

BannerDojo

MenuBar

ViewHomePage

FooterApplication

<div id="content">

<div id="header">

</div> <!--end header -->

<div id="menu">

</div> <!--- end menubar -->

<div id="wrapper">

<div id="menusx">

MENU ACTION

</div> <!--end menusx -->

<div id="centerbody">

BODY OUTPUT

</div> <!--centerbody -->

</div> <!--end wrapper -->

<div id="footer">

FOOTER

</div> <!--end footer -->

</div> <!--end content -->

Template html

Page 31: Xpages, cosa ci sarà in questa nuova tecnologia

domino point day2009

31

Page 32: Xpages, cosa ci sarà in questa nuova tecnologia

domino point day2009

32

Output

Xpages

Output

Xpages

Code Source Code Source

Page 33: Xpages, cosa ci sarà in questa nuova tecnologia

domino point day2009

InitApplication ( Homepage.xsp)

33

Page 34: Xpages, cosa ci sarà in questa nuova tecnologia

domino point day2009

Login Dojo ( Controllo)

34

Page 35: Xpages, cosa ci sarà in questa nuova tecnologia

domino point day2009

35

Page 36: Xpages, cosa ci sarà in questa nuova tecnologia

domino point day2009

36

Page 37: Xpages, cosa ci sarà in questa nuova tecnologia

domino point day2009

Come funziona Ajax login...

Esempio proposto da Jake Howlett blogger di CodeStore e codice

scritto da Declan Lynch nel suo tutorial delle Xpages.

Utilizza la dijit.Dialog di Dojo per la finestra di inserimento delle

credenziali

Effettua una chiama xhr.Post di Dojo ( ajax posting) per inviare le

credenziali

37

Page 38: Xpages, cosa ci sarà in questa nuova tecnologia

domino point day2009

38

Page 39: Xpages, cosa ci sarà in questa nuova tecnologia

domino point day2009

Layer nascosto into source code...

39

<div dojoType="dijit.Dialog" id="loginDialog" title="Effettuare il login"

execute="dominoLogin(arguments[0]);" style="display:none">

<table>

<tr>

<td>

<label for="username">Username:</label>

</td>

<td>

<input dojoType="dijit.form.TextBox" type="text" name="username"

id="username" />

</td>

</tr>

<tr>

<td>

<label for="password">Password:</label>

</td>

<td>

<input dojoType="dijit.form.TextBox" type="password" name="password"

id="password" />

</td>

</tr>

<tr>

<td colspan="2" align="center">

<input dojoType="dijit.form.TextBox" type="hidden" name="RedirectTo"

id="RedirectTo" value="/icons/view.gif" />

<button dojoType="dijit.form.Button" type="submit"> OK</button>

</td>

</tr>

</table>

</div>

<div dojoType="dijit.Dialog" id="loginDialog" title="Effettuare il login"

execute="dominoLogin(arguments[0]);" style="display:none">

<table>

<tr>

<td>

<label for="username">Username:</label>

</td>

<td>

<input dojoType="dijit.form.TextBox" type="text" name="username"

id="username" />

</td>

</tr>

<tr>

<td>

<label for="password">Password:</label>

</td>

<td>

<input dojoType="dijit.form.TextBox" type="password" name="password"

id="password" />

</td>

</tr>

<tr>

<td colspan="2" align="center">

<input dojoType="dijit.form.TextBox" type="hidden" name="RedirectTo"

id="RedirectTo" value="/icons/view.gif" />

<button dojoType="dijit.form.Button" type="submit"> OK</button>

</td>

</tr>

</table>

</div>

Page 40: Xpages, cosa ci sarà in questa nuova tecnologia

domino point day2009

40

var a="<a

href=\"javascript:dijit.byId(\'lo

ginDialog\').show()\">Log in

Ajax</a>";

return a;

var a="<a

href=\"javascript:dijit.byId(\'lo

ginDialog\').show()\">Log in

Ajax</a>";

return a;

Page 41: Xpages, cosa ci sarà in questa nuova tecnologia

domino point day2009

Colonna dinamica in una vista

41

Il logo e le informazioni del BP di una particolare

applicazione viene tirato su dinamicamente

eseguendo codice JSS di esempio

Page 42: Xpages, cosa ci sarà in questa nuova tecnologia

domino point day2009

Codice colonna

42

Page 43: Xpages, cosa ci sarà in questa nuova tecnologia

domino point day2009

43

Proprietà

CategoryFilt

er

Proprietà

CategoryFilt

er

ViewScope ViewScope

Page 44: Xpages, cosa ci sarà in questa nuova tecnologia

domino point day2009

Validare i campi

44

E’ tutto più facile con i componenti

Page 45: Xpages, cosa ci sarà in questa nuova tecnologia

domino point day2009

Debug applicazione...

45

Per avere un debugger verboso e non il classico errore 500 ...

Page 46: Xpages, cosa ci sarà in questa nuova tecnologia

domino point day2009

Novità con la 8.5.1

• Migliorate le performance!

• Xpages eseguibili dal client Notes ( Xul Runner

embeddato basata sull’engine Firefox 1.5)

• SSO credenziali nel client

• Editor JSS migliorato

• Maggior stabilità ( nessun crash nello sviluppo

applicativo!)

• Dojo 1.3.2

46

Page 47: Xpages, cosa ci sarà in questa nuova tecnologia

domino point day2009

Gzipping Html

47

Tramite Proprierties dell’applicazione

Page 48: Xpages, cosa ci sarà in questa nuova tecnologia

domino point day2009

Vantaggi Xpages

• Possibilità di “relazionare” in unica pagina dati proveniente da diverse

sorgenti dati

• Utilizzare le variabili Scopes

• Utilizzare @formulas ( Sintassi Javascript)

• Utilizzare tutte le classi Domino ( JS )

• Richiamare le classi Java

• Supporto Cross-browser ( grazie a Dojo)

• Utilizzare widget dojo non implementati dai componenti esistenti

• Temi

• Inserire codice HTML nel Sorgente XML

48

Page 49: Xpages, cosa ci sarà in questa nuova tecnologia

domino point day2009

Svantaggi Xpages

• Il packaging di Dojo (meno request=performance migliori)

• La libertà di controllare l’output dei controlli ( Output SEO

compliance)

• Performance Java vs Agenti LS ( nella 8.5.1 è migliorato molto)

• Il motore lato client è due generazioni indietro rispetto a

quello Web ( Firefox 1.5)

• Widget di Notes usano IE ( se devo fare una Xpages che sia

usata come Widget devo far fronte a IE)

49

Page 50: Xpages, cosa ci sarà in questa nuova tecnologia

domino point day2009

Cosa ci sarà nelle Rnext?

• Binding diretto con Database relazionali

• Come annunciato a Lotussphere ’09 supporto

per Mobile Blackberry ( firmware 5.x)

• Miglioramento di Dojo Package?

• Miglioramento perfomance

50

Page 51: Xpages, cosa ci sarà in questa nuova tecnologia

domino point day2009

Documentazione...

http://www.qtzar.com/blogs/qtzar.nsf/htdocs/LearningXPages.htm

http://xpagesblog.com/

http://www-10.lotus.com/ldd/ddwiki.nsf

http://www.jmackey.net/

http://www.planetlotus.org ( cercate Xpages)

51

Page 52: Xpages, cosa ci sarà in questa nuova tecnologia

domino point day2009

Platinum Sponsor

Gold Sponsor