Xpages
Cosa ci sarà in questa nuova tecnologia




                Autore: DanieleGrillo
       Professione: Domino Develo...
domino   point day2009




                         Agenda
  •Cosa sono le Xpages
  •Da dove arrivano
  •Componenti fondam...
domino   point day2009




               Cosa sono le Xpages
  • Un componente aggiuntivo di Lotus Designer
  • Un framew...
domino   point day2009




                Xpages   +   Dojo




                                    4
domino   point day2009




                       Modello MVC
Le Xpages utilizzano il concetto di Model View Control

• L’...
domino   point day2009



                   MVC a confronto
                                                    Control
 ...
domino   point day2009




                 Da dove arrivano
  • Progetto IBM Workplace nato nel 2002 ed
    abbandonato n...
domino   point day2009




            Da cosa sono composte
  • Controlli ( Core, Container, Altri)
  • Componenti ( bloc...
domino   point day2009



                    I Controlli
Oggetti già pronti all’uso
 che si inseriscono nella
 Xpages con...
domino   point day2009



          Controlli personalizzati
Rappresentano
  blocchi applicativi
  riusabili.

Esempio: Fo...
domino     point day2009



                         Sorgente dati
Rappresenta la
   sorgente dati alla
   quale ci si col...
domino   point day2009




   Codice X/HTML nel sorgente XML




                                    12
domino   point day2009




                         I TEMI
Meta fogli di stile che vengono applicati al
  rendering delle ...
domino   point day2009




                         14
domino    point day2009




                          Variabili Scope
Permettono finalmente di utilizzare variabili d’ambi...
domino   point day2009




                    3 elementi...
  • View Component
  • Repeater Component
  • Core Component
...
domino   point day2009




                 View Component
  • Ha le funzioni 1:1 vista Domino ( checkbox,
    ordinamenti...
domino   point day2009



             View Component




                              18
domino   point day2009




               Repeater Component
Un componente (fantastico! N.d.r) che può scorrere i seguenti...
domino   point day2009



           Repeater Component




                                20
domino      point day2009




                     Core Component
  Nome Componente            Binding Domino
  EditBox   ...
domino   point day2009




               Core Component




                                22
domino      point day2009




               Come agire sui controlli...
In tutte le proprietà di un componente programmab...
domino     point day2009




             JSS ( javascript server side)
Non stravolge il modo di programmare Lotus, in qua...
domino   point day2009




                 Demo – catalog.nsf
Obiettivo: Un catalogo delle applicazioni alimentato dai BP...
domino   point day2009




                         26
domino   point day2009




                     Demo Live!


                    Link Applicazione




                   ...
domino   point day2009




             Da cosa è composta
  Lato Domino ( back-End)
  - FormBP
  - Form Applicazione
  - ...
domino       point day2009



 BP           type
 CodeBP       [text]
 NameBP       [text]
 AddressBP    [text]           ...
domino         point day2009


             Pagina di partenza + layout
                                   4 Custom Contro...
domino   point day2009




                         31
domino   point day2009




                         Output
                         Xpages




    Code Source


         ...
domino   point day2009




    InitApplication ( Homepage.xsp)




                                      33
domino   point day2009




             Login Dojo ( Controllo)




                                       34
domino   point day2009




                         35
domino   point day2009




                         36
domino   point day2009




           Come funziona Ajax login...
Esempio proposto da Jake Howlett blogger di CodeStore e ...
domino   point day2009




                         38
domino            point day2009


                   Layer nascosto into source code...
<div dojoType="dijit.Dialog" id="l...
domino   point day2009




                         var a="<a
                         href="javascript:dijit.byId('lo
   ...
domino   point day2009




    Colonna dinamica in una vista
         Il logo e le informazioni del BP di una particolare
...
domino   point day2009



                Codice colonna




                                 42
domino   point day2009




          Proprietà
         CategoryFilt
             er




                         ViewScop...
domino   point day2009




                 Validare i campi
  E’ tutto più facile con i componenti




                  ...
domino    point day2009




                 Debug applicazione...
Per avere un debugger verboso e non il classico errore ...
domino   point day2009




                Novità con la 8.5.1
  • Migliorate le performance!
  • Xpages eseguibili dal cl...
domino   point day2009




                   Gzipping Html

  Tramite Proprierties dell’applicazione




                ...
domino   point day2009




                       Vantaggi Xpages
  • Possibilità di “relazionare” in unica pagina dati pr...
domino   point day2009




                  Svantaggi Xpages
  • Il packaging di Dojo (meno request=performance migliori)...
domino   point day2009




            Cosa ci sarà nelle Rnext?
  • Binding diretto con Database relazionali
  • Come ann...
domino   point day2009




                  Documentazione...
  http://www.qtzar.com/blogs/qtzar.nsf/htdocs/LearningXPage...
domino   point day2009




   Platinum Sponsor




   Gold Sponsor
Upcoming SlideShare
Loading in …5
×

Xpages, cosa ci sarà in questa nuova tecnologia

2,413 views

Published on

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.

Published in: Technology, Business
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
2,413
On SlideShare
0
From Embeds
0
Number of Embeds
109
Actions
Shares
0
Downloads
29
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Xpages, cosa ci sarà in questa nuova tecnologia

  1. 1. Xpages Cosa ci sarà in questa nuova tecnologia Autore: DanieleGrillo Professione: Domino Developer
  2. 2. domino point day2009 Agenda •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? 2
  3. 3. 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
  4. 4. domino point day2009 Xpages + Dojo 4
  5. 5. 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
  6. 6. domino point day2009 MVC a confronto Control Control Lotusscript + @formulas Javascrip ( server-side + front side) +Agenti View View Sono le Xpages Sono le Form, Viste, Navigatori, Frameset, Pages, Agent Model Sono le Form di Notes Model ( per ora) Sono le Form di Notes XPAGES DOMINO CLASSICO 6
  7. 7. 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
  8. 8. 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
  9. 9. domino point day2009 I Controlli Oggetti già pronti all’uso che si inseriscono nella Xpages con semplici trascinamenti sulla pagina ( drag&drop) 9
  10. 10. domino point day2009 Controlli personalizzati Rappresentano blocchi applicativi riusabili. Esempio: Footer, Header..etc.. 10
  11. 11. domino point day2009 Sorgente dati 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 11
  12. 12. domino point day2009 Codice X/HTML nel sorgente XML 12
  13. 13. 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
  14. 14. domino point day2009 14
  15. 15. 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
  16. 16. domino point day2009 3 elementi... • View Component • Repeater Component • Core Component 16
  17. 17. 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
  18. 18. domino point day2009 View Component 18
  19. 19. 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
  20. 20. domino point day2009 Repeater Component 20
  21. 21. domino point day2009 Core Component 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 21
  22. 22. domino point day2009 Core Component 22
  23. 23. domino point day2009 Come agire sui controlli... 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 23
  24. 24. 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
  25. 25. 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
  26. 26. domino point day2009 26
  27. 27. domino point day2009 Demo Live! Link Applicazione 27
  28. 28. domino point day2009 Da cosa è composta Lato Domino ( back-End) - FormBP - Form Applicazione - Form Configurazione Lato Xpages ( front-End) - HomePage - ApplicationByCategory - BusinessPartner - Application 28
  29. 29. domino point day2009 BP type CodeBP [text] NameBP [text] AddressBP [text] 1:n Application type CodeBP [text] CapBP [text] ApplicationDate [date/time] CityBP [text] ApplicationName [text] ReferenceB [text] P ApplicationCategory [listbox] URL Web [text] ApplicationDescription [richtext] Site ApplicationLogo [richtext] LogoBP [richtext] ApplicationScrenShot [richtext] Username [names] ApplicationBrochure [richtext] Ogni Bp registrato potrà inserire N applicazioni nel sistema 29
  30. 30. domino point day2009 Pagina di partenza + layout 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 --> Template html <div id="centerbody"> BODY OUTPUT </div> <!--centerbody --> </div> <!--end wrapper --> <div id="footer"> FOOTER </div> <!--end footer --> </div> <!--end content --> 30
  31. 31. domino point day2009 31
  32. 32. domino point day2009 Output Xpages Code Source 32
  33. 33. domino point day2009 InitApplication ( Homepage.xsp) 33
  34. 34. domino point day2009 Login Dojo ( Controllo) 34
  35. 35. domino point day2009 35
  36. 36. domino point day2009 36
  37. 37. 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
  38. 38. domino point day2009 38
  39. 39. domino point day2009 Layer nascosto into source code... <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> 39
  40. 40. domino point day2009 var a="<a href="javascript:dijit.byId('lo ginDialog').show()">Log in Ajax</a>"; return a; 40
  41. 41. domino point day2009 Colonna dinamica in una vista Il logo e le informazioni del BP di una particolare applicazione viene tirato su dinamicamente eseguendo codice JSS di esempio 41
  42. 42. domino point day2009 Codice colonna 42
  43. 43. domino point day2009 Proprietà CategoryFilt er ViewScope 43
  44. 44. domino point day2009 Validare i campi E’ tutto più facile con i componenti 44
  45. 45. domino point day2009 Debug applicazione... Per avere un debugger verboso e non il classico errore 500 ... 45
  46. 46. 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
  47. 47. domino point day2009 Gzipping Html Tramite Proprierties dell’applicazione 47
  48. 48. 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
  49. 49. 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
  50. 50. 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
  51. 51. 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
  52. 52. domino point day2009 Platinum Sponsor Gold Sponsor

×